k8s 初識pod (二)

kubernetes中調用pod到哪一個節點上是可有可無的,但因爲實際狀況,每臺node的硬件環境不一致,因此某些狀況要求將不一樣pod調到指定節點上運行。也能夠經過label實現。
kubectl label node node-id gpu=true
將pod調用到此節點只須要在yaml中描述到
apiVersion: v1
kind: pod
metadata:
    kubia-gpu
spec:
    nodeSelector:
        gpu: "true"
    containers:
        - image: luksa/kubia
           name: kubia

 

 
 
探針:對於pod中容器要進行監控,能夠用探針。
3種探針方式:
http get 返回2xx,3xx 也就是沒錯誤4xx,5xx
tcp 套接字 能創建鏈接正常,反之不正常
exec 執行某個命令,成功即0,不然失敗
 
http get的描述方法:
apiVersion: v1
kind: Pod
metadata:
  name: kubia-liveneess
spec:
  containers:
  - image: luksa/kubia-unhealthy
    name: kubia
    livenessProbe:
      httpGet:
        path: /
        port: 8080

 

luksa/kubia-unhealthy 這個鏡像爲node.js,提供web服務,其中應用中添加了讓此web服務只在前5次正常返回,5次後就會返回錯誤。
 
通常錯誤3次後,就會重啓容器,那麼你想看容器錯誤日誌就要看上次的日誌所以要用 --previous參數
kuectl logs mypod --previous
 
使用kubectl describe po pod-id能看到具體的錯誤代碼,以及在底部顯示了容器爲何終止,--kubernetes發現容器不健康,因此終止並從新建立
 
默認在描述了探針,pod在啓動的時候就會在剛剛啓動時進行一次檢測,所以最好的作法是給檢測加一個初始延遲。
apiVersion: v1
kind: Pod
metadata:
  name: kubia-liveneess
spec:
  containers:
  - image: luksa/kubia-unhealthy
    name: kubia
    livenessProbe:
      httpGet:
        path: /
        port: 8080
      initialDelaySeconds: 15
初始延遲爲15秒
相關文章
相關標籤/搜索