Pod 實現機制
阿新 • • 發佈:2020-09-08
Pod 為了親密性應用而存在:
- 兩個應用之間發生檔案互動;
- 兩個應用需要通過 127.0.0.1 或者 socket 通訊;
- 兩個應用發生頻繁的呼叫
Pod 中的所有容器擁有同一個 IP 地址:
# 生成 Pod 的 YAML 檔案 [root@k8s-master01 ~]# cat pod.yaml apiVersion: v1 kind: Pod metadata: labels: app: my-podz name: my-podz namespace: default spec: containers: - name: nginx-demoz image: nginx:1.8 - name: java-demoz image: www.myharbor.com/wangqihan/java-demo:v1 # 建立 Pod [root@k8s-master01 ~]# kubectl apply -f pod.yaml [root@k8s-master01 ~]# kubectl get pods NAME READY STATUS RESTARTS AGE my-podz 2/2 Running 0 11s # 進入 java-demoz 檢視 IP 地址 [root@k8s-master01 ~]# kubectl exec -it my-podz -c java-demoz bash root@my-podz:/usr/local/tomcat# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 3: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default link/ether ce:67:02:aa:10:c2 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.244.1.15/24 brd 10.244.1.255 scope global eth0 valid_lft forever preferred_lft forever root@my-podz:/usr/local/tomcat# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 14 01:31 ? 00:00:24 /usr/local/openjdk-8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging root 40 0 0 01:33 pts/0 00:00:00 bash root 46 40 0 01:34 pts/0 00:00:00 ps -ef # 進入 nginx-demoz 檢視 IP 地址 [root@k8s-master01 ~]# kubectl exec -it my-podz -c nginx-demoz bash root@my-podz:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 3: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default link/ether ce:67:02:aa:10:c2 brd ff:ff:ff:ff:ff:ff inet 10.244.1.15/24 brd 10.244.1.255 scope global eth0 valid_lft forever preferred_lft forever root@my-podz:/# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 01:31 ? 00:00:00 nginx: master process nginx -g daemon off; nginx 6 1 0 01:31 ? 00:00:00 nginx: worker process root 7 0 0 01:34 pts/0 00:00:00 bash root 13 7 0 01:34 pts/0 00:00:00 ps -ef