Kubectl常用命令+探針+lifecycle

  1. Kubectl常用命令

  2. 探針-就緒探測

  3. 存活探測

  4. lifecycle

  5. pod控制器,Deployment常用命令

1. Kubectl常用命令

# 獲取當前資源 pod
$ kubectl get pod 
    -A, --all-namespaces 查看當前所有名稱空間的資源
    -n 指定名稱空間,默認值 default, kube-system空間存放是當前組件資源
    --show-labels 查看當前標簽
    -l 篩選資源,key, key=value
    -o wide 詳細信息包括IP,分配的節(jié)點
    -w 監(jiān)視, 打印當前資源對象的變化狀態(tài)

# 進入Pod內(nèi)部容器的執(zhí)行命令
$ kubectl exec -it podName -c cName -- command 
    -c 可以省略,默認進入唯一的容器內(nèi)部
Ex: $ kubectl exec -it pod-demo -c myapp-1 -- /bin/bash

# 查看資源的描述
$ kubectl explain pod 

# 查看pod內(nèi)部容器的日志
$ kubectl logs podName -c cName

# 查看資源對象的詳細描述
$ kubectl describe pod podName

# 刪除資源對象
$ kubectl delete kindName objName
    --all 刪除當前所有的資源對象

2. 探針-就緒探測

  • 2.1 HTTP GET探測
# HTTP GET探測
apiVersion: v1
kind: Pod
metadata:
  name: readiness-httpget-pod
  namespace: default
  labels:
    app: myapp
    env: dev
spec:
  containers:
  - name: readiness-httpget-container
    image: wangyanglinux/myapp:v1.0
    imagePullPolicy: IfNotPresent
    readinessProbe:
      httpGet:
        path: /index1.html
        port: 80
      initialDelaySeconds: 1
      periodSeconds: 3
  • 2.2 Exec 命令就緒探測
# Exec 命令就緒探測
apiVersion: v1
kind: Pod
metadata:
  name: my-app
  namespace: default
  labels:
    app: myapp
    env: dev
spec:
  containers:
  - name: readiness-exec-container
    image: wangyanglinux/tools:busybox
    imagePullPolicy: IfNotPresent
    command: ["/bin/sh", "-c", "touch /tmp/ready ; sleep 10; rm -rf /tmp/ready; sleep 3600"]
    readinessProbe:
      exec:
        command: ["test", "-e", "/tmp/ready"]
      initialDelaySeconds: 1
      periodSeconds: 3

3. 存活探測

  • 3.1 HTTP GET 存活探測
# HTTP GET存貨探測
apiVersion: v1
kind: Pod
metadata:
  name: liveness-http-pod
  namespace: default
  labels:
    app: myapp
    env: dev
spec:
  containers:
  - name: liveness-http-container
    image: wangyanglinux/myapp:v1.0
    imagePullPolicy: IfNotPresent
    livenessProbe:
      httpGet:
        path: /index.html
        port: 80
      initialDelaySeconds: 1
      periodSeconds: 3
      timeoutSeconds: 3
  • 3.2 Exec 命令存活探測
apiVersion: v1
kind: Pod
metadata:
  name: liveness-exec-pod
  namespace: default
  labels:
    app: myapp
    env: dev
spec:
  containers:
  - name: liveness-exec-container
    image: wangyanglinux/tools:busybox
    imagePullPolicy: IfNotPresent
    command: ["/bin/sh", "-c", "touch /tmp/healthy ; sleep 60; rm -rf /tmp/healthy; sleep 3600"]
    livenessProbe:
      exec:
        command: ["test", "-e", "/tmp/healthy"]
      initialDelaySeconds: 1
      periodSeconds: 3

4. lifecycle

  • 4.1 基于HTTP GET方式
apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-http-pod
  namespace: default
  labels:
    app: myapp
    env: dev
spec:
  containers:
  - name: lifecycle-http-container
    image: wangyanglinux/myapp:v1.0 
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
    lifecycle:
      postStart:
        httpGet:
          path: /index.html
          host: 192.168.61.141
          port: 8010
      preStop:
        httpGet:
          path: /hostname.html
          host: 192.168.61.141
          port: 8010
  • 4.2 基于Exec 方式
apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-exec-pod
  namespace: default
  labels:
    app: myapp
    env: dev
spec:
  containers:
  - name: lifecycle-exec-container
    image: wangyanglinux/myapp:v1.0
    imagePullPolicy: IfNotPresent
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo 'postStart' > /tmp/lifecycle"]
      preStop:
        exec:
          command: ["/bin/sh", "-c", "echo 'preStop' > /tmp/lifecycle"]

5. pod控制器,Deployment常用命令

# 創(chuàng)建 --record參數(shù)可以記錄命令
$ kubectl create -f nginx-deployment.yaml --record

# 創(chuàng)建副本數(shù)量
$ kubectl scale deployment nginx-deployment --relicas 10

# 自動縮放
$ kubectl autoscale deployment ngnix-deployment --min=5 --max=15 --cpu-percent=80

# 修改Deployment內(nèi)部容器版本
$ kubectl set image deployment/nginx-deployment nginx-deployment-container=wangyanglinux/myapp:v2.0
# k8s-master污點
spec:
  podCIDR: 192.168.0.0/24
  podCIDRs:
  - 192.168.0.0/24
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/control-plane
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Git常用命令手冊[#git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%89%...
    galenu閱讀 624評論 0 0
  • 一,Docker 簡介[#%E4%B8%80docker-%E7%AE%80%E4%BB%8B]1.1,什么是 D...
    嵌入式視覺閱讀 205評論 0 1
  • 找回來未提交的版本代碼 git reflog 我們要找回我們最晚的提交,只需要做如下操作: 查看未推送的提交版本號...
    CarlosLynn閱讀 879評論 0 2
  • 本文總結(jié)日常工作中經(jīng)常用到的linux命令,作為總結(jié),以便學習和回顧。 1. vim 1.1 查找文件中的指定字符...
    zhglance閱讀 587評論 0 1
  • Docker 常用命令詳細教程 目錄 1. Docker 基礎命令[#1-docker-%E5%9F%BA%E7%...
    wudl閱讀 76評論 0 1

友情鏈接更多精彩內(nèi)容