1、infrastructure container:基礎容器
維護整個pod網路空間,啟動乙個容器時,k8s會自動為我們啟動乙個基礎容器
配置:
[root@k8s-node02 ~]# cat /opt/kubernetes/cfg/kubelet.conf |grep"infra-container-image
"
--pod-infra-container-image=lizhenliang/pause-amd64:3.0
"
檢視執行的基礎容器
[root@k8s-node02 ~]# docker pscontainer id image command created status ports names
db342beb091f nginx
"nginx -g 'daemon of…
"4 hours ago up 4 hours k8s_nginx_nginx-deployment-b64b84b44-44qhn_default_b59e4505-35a3-4137-b9a5-150af624f473_0
7e65bf223ed4 lizhenliang/pause-amd64:3.0
"/pause
"4 hours ago up 4 hours k8s_pod_nginx-deployment-b64b84b44-44qhn_default_b59e4505-35a3-4137-b9a5-150af624f473_0
3d61928d7119 ff281650a721
"/opt/bin/flanneld -…
"2 days ago up 2 days k8s_kube-flannel_kube-flannel-ds-amd64-wcck5_kube-system_47e2c764-81fd-4157-a6e7-219f40e24dea_0
5bd45dd0d25b lizhenliang/pause-amd64:3.0
"/pause
"2 days ago up 2 days k8s_pod_kube-flannel-ds-amd64-wcck5_kube-system_47e2c764-81fd-4157-a6e7-219f40e24dea_0
可以看到執行的每乙個容器都有乙個pause-amd64的基礎容器自動會執行
2、initcontainers:初始化容器
先於業務容器開始執行,可以執行一些操作,具體使用方法如下:
apiversion: v1kind: pod
metadata:
labels:
spec:
containers:
image: busybox:
1.28
command: ['sh
', '
-c', '']
initcontainers:
- name: init-myservice
image: busybox:
1.28
command: ['sh
', '
-c', '
until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
- name: init-mydb
image: busybox:
1.28
command: ['sh
', '
-c', '
until nslookup mydb; do echo waiting for mydb; sleep 2; done;
']
initcontainers標籤下的都是初始化容器的配置
3、業務容器
平時最常使用的容器
乙個容器多個程序,乙個pod多個容器
乙個容器多個程序 在docker的映象編譯指令碼dockerfile中帶起多個程序,如下可以在contivnet.sh中啟動多個程序 from 192.168.1.2 5001 world centos7 ovs 2.6.4 1 copy bin contiv bin copy scripts co...
在容器內獲取Pod資訊 Downward API
我們知道,每個pod在被成功建立出來之後,都會被系統分配唯一 的名字 ip位址,並且處於某個namespace中,那麼我們如何在pod的容 器內獲取pod的這些重要資訊呢?答案就是使用downward api。downward api可以通過以下兩種方式將pod資訊注入容器內部。1 環境變數 用於單...
文件解讀 K8S中的Pod和容器配置(一)
如何給執行在kubernetes k8s pod中的容器定義環境變數 命令列和引數?必須有乙個kubernets集群,和乙個能和集群溝通的kubectl命令列工具。如果你還沒有集群,你可以用minikube建立乙個集群。當你建立了乙個pod,你可以給你執行在pod中的容器設定環境變數。設定環境變數包...