一 pod容器的分類

2022-08-19 19:51:09 字數 2319 閱讀 2272

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 ps

container 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: v1

kind: 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中的容器設定環境變數。設定環境變數包...