溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kubernetes的Pod資源使用方法

發(fā)布時間:2020-05-29 15:11:49 來源:億速云 閱讀:272 作者:鴿子 欄目:云計算

Pod特點

k8s的最小管理單元
一組容器的集合
一個Pod中的容器共享網(wǎng)絡(luò)命令空間
Pod是短暫的

Pod容器分類

1.infrastructure container 基礎(chǔ)容器(維護整個Pod網(wǎng)絡(luò)空間)

  • node節(jié)點操作
#查看容器的網(wǎng)絡(luò)
cat /opt/kubernetes/cfg/kubelet

#每次創(chuàng)建Pod時候就會創(chuàng)建,與Pod對應(yīng)的,對于用戶是透明的,網(wǎng)絡(luò)組件會被自動加載成一個組件提供出去
docker ps

2.initcontainers 初始化容器

pod在進行創(chuàng)建時一定會被執(zhí)行當中的初始化initcontainers,
在老版本中執(zhí)行時不會區(qū)分前后順序(在系統(tǒng)進行加載時PID號數(shù)字越小,優(yōu)先級別越高,越先被啟動),
隨著云平臺的改進,啟動模式改為主機形式,分隔出的初始化容器會被優(yōu)先加載,
在初始化容器加載完成之后后面的業(yè)務(wù)容器才能正常接著運行

3.container 業(yè)務(wù)容器,并行啟動

示例

Init containers in use

This example defines a simple Pod that has two init containers. 
The first waits for myservice, and the second waits for mydb. 
Once both init containers complete, the Pod runs the app container from its spec section.
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox:1.28
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  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;']

鏡像拉取策略(image PullPolicy)

IfNotPresent:默認值,鏡像在宿主機上不存在時才拉取

Always:每次創(chuàng)建Pod都會重新拉取一次鏡像

Never:Pod永遠不會主動拉取這個鏡像

示例:

Verify by creating a pod that uses a private image, e.g.:
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: private-image-test-1
spec:
  containers:
    - name: uses-private-image
      image: $PRIVATE_IMAGE_NAME
      imagePullPolicy: Always
      command: [ "echo", "SUCCESS" ]
EOF

在master1端操作

kubectl get pods

kubectl edit deployment/nginx

cd demo/

vim pod1.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: nginx
      image: nginx
      imagePullPolicy: Always
      command: [ "echo", "SUCCESS" ]

kubectl create -f pod1.yaml 

kubectl get pods
#此時會出現(xiàn)CrashLoopBackOff創(chuàng)建之后又關(guān)閉的狀態(tài)提示
#失敗的狀態(tài)的原因是因為命令啟動沖突
#刪除 command: [ "echo", "SUCCESS" ]
#同時更改一下版本
image: nginx:1.14

#刪除原有的資源
kubectl delete -f pod1.yaml 

#更新資源
kubectl apply -f pod1.yaml 

#查看分配節(jié)點
kubectl get pods -o wide

NAME          READY   STATUS    RESTARTS   AGE     IP            NODE           NOMINATED NODE
mypod         1/1     Running   0          1m42s   172.17.56.3   192.168.142.130  <none>

#在任意node節(jié)點使用curl查看頭部信息
curl -I 172.17.56.3
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Sat, 18 Feb 2020 19:32:55 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes

謝謝閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI