控制面板:创建 nginx 服务
# 带 命名空间、Service 的完整版参见:https://gitlab.xuxiaowei.com.cn/xuxiaowei-cloud/xuxiaowei-cloud/-/blob/main/docs/deployment/nginx-deployment.yaml
cat > nginx.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.23.2
ports:
- containerPort: 80
EOF
cat nginx.yaml
kubectl apply -f nginx.yaml
# 编辑
# kubectl edit deployment nginx-deployment
kubectl get pods --all-namespaces -o wide
[root@k8s ~]# kubectl get pods --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default nginx-deployment-86956f97b8-nfv2l 0/1 ContainerCreating 0 15s <none> centos-7-9-16 <none> <none>
default nginx-deployment-86956f97b8-x26kx 0/1 ContainerCreating 0 15s <none> centos-7-9-16 <none> <none>
kube-system calico-kube-controllers-f79f7749d-rkqgw 1/1 Running 2 (6m22s ago) 23m 172.16.77.9 k8s <none> <none>
kube-system calico-node-7698p 0/1 Running 2 (6m22s ago) 23m 192.168.80.60 k8s <none> <none>
kube-system calico-node-tvhnb 0/1 Running 0 23m 192.168.80.16 centos-7-9-16 <none> <none>
kube-system coredns-c676cc86f-4lncg 1/1 Running 2 (6m22s ago) 31m 172.16.77.8 k8s <none> <none>
kube-system coredns-c676cc86f-7n9wv 1/1 Running 2 (6m22s ago) 31m 172.16.77.7 k8s <none> <none>
kube-system etcd-k8s 1/1 Running 2 (6m22s ago) 31m 192.168.80.60 k8s <none> <none>
kube-system kube-apiserver-k8s 1/1 Running 2 (6m22s ago) 31m 192.168.80.60 k8s <none> <none>
kube-system kube-controller-manager-k8s 1/1 Running 2 (6m22s ago) 31m 192.168.80.60 k8s <none> <none>
kube-system kube-proxy-87lx5 1/1 Running 1 (<invalid> ago) 29m 192.168.80.16 centos-7-9-16 <none> <none>
kube-system kube-proxy-rctn6 1/1 Running 2 (6m22s ago) 31m 192.168.80.60 k8s <none> <none>
kube-system kube-scheduler-k8s 1/1 Running 2 (6m22s ago) 31m 192.168.80.60 k8s <none> <none>
[root@k8s ~]#
kubectl get pods -o wide
[root@k8s ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deployment-86956f97b8-nfv2l 0/1 ContainerCreating 0 35s <none> centos-7-9-16 <none> <none>
nginx-deployment-86956f97b8-x26kx 0/1 ContainerCreating 0 35s <none> centos-7-9-16 <none> <none>
[root@k8s ~]#
控制面板:几分钟后再查看
kubectl get pods --all-namespaces -o wide
[root@k8s ~]# kubectl get pods --all-namespaces -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
default nginx-deployment-86956f97b8-nfv2l 1/1 Running 0 3m30s 172.16.132.193 centos-7-9-16 <none> <none>
default nginx-deployment-86956f97b8-x26kx 1/1 Running 0 3m30s 172.16.132.194 centos-7-9-16 <none> <none>
kube-system calico-kube-controllers-f79f7749d-rkqgw 1/1 Running 2 (9m37s ago) 26m 172.16.77.9 k8s <none> <none>
kube-system calico-node-7698p 0/1 Running 2 (9m37s ago) 26m 192.168.80.60 k8s <none> <none>
kube-system calico-node-tvhnb 0/1 Running 0 26m 192.168.80.16 centos-7-9-16 <none> <none>
kube-system coredns-c676cc86f-4lncg 1/1 Running 2 (9m37s ago) 34m 172.16.77.8 k8s <none> <none>
kube-system coredns-c676cc86f-7n9wv 1/1 Running 2 (9m37s ago) 34m 172.16.77.7 k8s <none> <none>
kube-system etcd-k8s 1/1 Running 2 (9m37s ago) 34m 192.168.80.60 k8s <none> <none>
kube-system kube-apiserver-k8s 1/1 Running 2 (9m37s ago) 34m 192.168.80.60 k8s <none> <none>
kube-system kube-controller-manager-k8s 1/1 Running 2 (9m37s ago) 34m 192.168.80.60 k8s <none> <none>
kube-system kube-proxy-87lx5 1/1 Running 1 (<invalid> ago) 32m 192.168.80.16 centos-7-9-16 <none> <none>
kube-system kube-proxy-rctn6 1/1 Running 2 (9m37s ago) 34m 192.168.80.60 k8s <none> <none>
kube-system kube-scheduler-k8s 1/1 Running 2 (9m37s ago) 34m 192.168.80.60 k8s <none> <none>
[root@k8s ~]#
kubectl get pods -o wide
[root@k8s ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deployment-86956f97b8-nfv2l 1/1 Running 0 4m31s 172.16.132.193 centos-7-9-16 <none> <none>
nginx-deployment-86956f97b8-x26kx 1/1 Running 0 4m31s 172.16.132.194 centos-7-9-16 <none> <none>
[root@k8s ~]#
# 控制面板:查看pod,svc
kubectl get pod,svc -o wide
[root@k8s ~]# kubectl get pod,svc -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx-deployment-86956f97b8-nfv2l 1/1 Running 0 4m59s 172.16.132.193 centos-7-9-16 <none> <none>
pod/nginx-deployment-86956f97b8-x26kx 1/1 Running 0 4m59s 172.16.132.194 centos-7-9-16 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 36m <none>
[root@k8s ~]#
# 控制面板:设置服务(将多个 nginx-deployment 的 pod 绑定在一起,通过一个 Service 端口统一对外提供)
kubectl expose deployment nginx-deployment --type=NodePort --name=nginx-service
# 带 命名空间、Service 的完整版参见:https://gitlab.xuxiaowei.com.cn/xuxiaowei-cloud/xuxiaowei-cloud/-/blob/main/docs/deployment/nginx-deployment.yaml
# 控制面板:查看pod,svc
kubectl get pod,svc -o wide
[root@k8s ~]# kubectl get pod,svc -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx-deployment-86956f97b8-nfv2l 1/1 Running 0 7m58s 172.16.132.193 centos-7-9-16 <none> <none>
pod/nginx-deployment-86956f97b8-x26kx 1/1 Running 0 7m58s 172.16.132.194 centos-7-9-16 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 39m <none>
service/nginx-service NodePort 10.109.120.77 <none> 80:30593/TCP 55s app=nginx
[root@k8s ~]#
# 重启控制面板、node节点
# 控制面板:查看pod,svc
kubectl get pod,svc -o wide
[root@k8s ~]# kubectl get pod,svc -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/nginx-deployment-86956f97b8-nfv2l 1/1 Running 1 (<invalid> ago) 11m 172.16.132.196 centos-7-9-16 <none> <none>
pod/nginx-deployment-86956f97b8-x26kx 1/1 Running 1 (<invalid> ago) 11m 172.16.132.195 centos-7-9-16 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 42m <none>
service/nginx-service NodePort 10.109.120.77 <none> 80:30593/TCP 4m8s app=nginx
[root@k8s ~]#
可以看到:重启前后 pod/nginx-deployment- IP 发生了变化,service/nginx-service 的 IP 与 端口没有发生变化,可在后面使用
service/nginx-service 的 端口(即:外部访问时,使用的是 service/nginx-service 的 端口)*