使用AlpineLinux搭建k8s (web/ap/db服务器) 〜创建用于外部公开的Ingress章节〜
目标
为了使Kubernetes内部应用程序可以从外部进行通信确认,
创建一个用于外部公开的Ingress。
在进行通信时,如果将端口号设置为HTTP的默认端口,
可能会受到以默认端口为目标的安全攻击,
因此,将配置为不使用HTTP和HTTPS的默认端口的服务。
(在后面的说明中,端口号将不会公开。)
请参考以下链接了解开放端口的含义及其安全影响:https://bs-square.jp/blog/index.php/2022/05/26/what-is-an-open-port-what-are-the-security-implications/
建设准备和预先工作
定义一个端口。
-
- port:★httpdのDockerで起動するhttpdのリッスンポート★
-
- targetPort: ★デフォルトでは利便性のため、portに書き換わる★
-
- ※特段なんでもいいのですが、変えてもいいと思います。
- nodePort: ★コンテナホスト側のポート★
参考:https://kubernetes.io/ja/docs/concepts/services-networking/service/
换句话说,该机制即为通过节点IP:节点端口连接到Kubernetes内部的端口。
- apache-deployment.yml
apiVersion: v1
kind: Service
metadata:
name: apache-service
spec:
selector:
app: apache
ports:
- name: http
port: ★適当★
targetPort: ★httpdのDockerで解放しているポート★
nodePort: ★コンテナホスト側のポート★
type: LoadBalancer
执行内容
执行结果相当简单。
[root@t_kyn029 apachedocker]# kubectl apply -f apache-deployment.yml
service/apache-service created
[root@t_kyn029 apachedocker]#
确认信息已传达
由于无法进行通信确认,在此省略该步骤。但一旦确认,您将能够知道服务是否已启动。
[root@t_kyn029 apachedocker]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
apache-service LoadBalancer 10.98.214.9 <pending> 【nodePort★コンテナホスト側のポート★】:【port★適当★】/TCP 114s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 77d
[root@t_kyn029 apachedocker]#
我将在接下来的(web/ap/db服务器)中使用AlphineLinux搭建k8s环境,这一部分将涵盖Apache的镜像构建和DeploymentPod的创建。
完成工作之后
无论哪个都可以,但如果要删除的话,
将执行以下命令:kubectl delete -f apache-deployment.yml。
[root@t_kyn029 apachedocker]# kubectl delete -f apache-deployment.yml
service "apache-service" deleted
[root@t_kyn029 apachedocker]#
以上是。