1. 程式人生 > 實用技巧 >Pod 實現機制

Pod 實現機制

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