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,分配的节点
    -w 监视, 打印当前资源对象的变化状态

# 进入Pod内部容器的执行命令
$ kubectl exec -it podName -c cName -- command 
    -c 可以省略,默认进入唯一的容器内部
Ex: $ kubectl exec -it pod-demo -c myapp-1 -- /bin/bash

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

# 查看pod内部容器的日志
$ 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常用命令

# 创建 --record参数可以记录命令
$ kubectl create -f nginx-deployment.yaml --record

# 创建副本数量
$ kubectl scale deployment nginx-deployment --relicas 10

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

# 修改Deployment内部容器版本
$ 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git常用命令手册[#git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%89%...
    galenu阅读 3,633评论 0 0
  • 一,Docker 简介[#%E4%B8%80docker-%E7%AE%80%E4%BB%8B]1.1,什么是 D...
    嵌入式视觉阅读 1,346评论 0 1
  • 找回来未提交的版本代码 git reflog 我们要找回我们最晚的提交,只需要做如下操作: 查看未推送的提交版本号...
    CarlosLynn阅读 4,268评论 0 2
  • 本文总结日常工作中经常用到的linux命令,作为总结,以便学习和回顾。 1. vim 1.1 查找文件中的指定字符...
    zhglance阅读 3,555评论 0 1
  • Docker 常用命令详细教程 目录 1. Docker 基础命令[#1-docker-%E5%9F%BA%E7%...
    wudl阅读 421评论 0 1

友情链接更多精彩内容