美文网首页
Kubernetes-常用命令

Kubernetes-常用命令

作者: 追阳_41 | 来源:发表于2020-11-18 16:56 被阅读0次

    Kubernetes 常用命令

    来源于:https://www.jianshu.com/p/48188b4858b0

    一、查看系统资源信息

    • 获取集群组件地址,展示集群信息
    kubectl cluster-info
    
    • 显示控制平面组件的健康状态
    kubectl get componentstatus
    
    • 展示支持的API resources
    kubectl api-resources
    
    • 查看支持的API versions
    kubectl api-versions
    

    二、命令优化

    • 快速切换到不同的名称空间,可以设置别名如下

      alias kcd='kubectl config set-context $(kubectl config current context) --namespace'
      

      然后,可以使用 kcd some-namespace 在名称空间进行切换

    • 创建别名,在~/.bashrc或类似的文件中添加alias k=kubectl,就可以使用短别名了

    • kubectl配置tab补全
      首先安装包bashcompletion来启用bash中的tab命令补全

      apt install bashcompletion
      source <(kubectl completion bash)
      

      此时,tab命令行补全只在使用完整的kubectl命令时才会有作用,要让短命令起到作用,可以进行修改

      source <(kubectl completion bash | sed s/kubectl/k/g)
      

      同时,将source <(kubectl completion bash | sed s/kubectl/k/g)添加到~/.bashrc或类似的文件中

    三、资源创建类

    1. 首次创建

    • 使用kubectl run快速启动Pod应用

      kubectl run nginx --image=nginx:latest --port=80
      
    • 创建deploymet

      kubectl create deployment nginx --image=nginx=nginx:latest
      
    • 暴露服务

      kubectl expose deployment nginx --port=80
      
    • 使用kubectl explain查看API对象字段,在创建manifest时非常有用

      kubectl explain pod
      kubectl explain pod.spec
      

    四. 运维管理

    1. 升降级

    • 更新image

      kubectl set image deployment/nginx nginx=nginx:latest --record=true
      

      确保在所有的升级操作时使用了--record=true选项,这个选项会记录历史版本号, 在之后的操作中非常有用。

    • 查看部署状态

      kubectl rollout status deployment nginx
      
    • 显示deployment的滚动升级历史

      kubectl rollout history deployment nginx
      
    • 回滚上一个版本

      kubectl rollout undo deployment nginx
      
    • 回滚到指定版本

      kubectl rollout undo deployment nginx --to-revision=3
      

    2. 异常调试

    • 查看pod信息,主要关注READYSTATUS字段

      kubectl get pod
      
    • 查看pod日志,主要检查业务输出日志

      kubectl logs -f <pod_name> -c <container_name>
      
    • 查看描述信息

      kubectl describe pod <pod_name>
      
    • 在运行的容器中执行启动一个shell

      kubectl exec -it <pod_name> -c <container_name> -- sh
      
    • 通过端口转发连接到pod,在验证业务端口是否正常工作时非常有用

      kubectl port-forward <pod_name> <local_port>:<pod_port>
      

    3. 在多集群或多命名空间下使用kubectl

    • 添加或修改一个集群

      kubectl config set-cluster my-other-cluster --server=https://k8s.example.com:6443 --certificate-authority=path/to/the/cafile
      

      这会添加一个API服务器地址位于https://k8s.example.com:6443,名为my-other-cluster的集群。

    • 添加或修改用户凭据

      kubectl config set-credentials foo --username=foo --password=pass
      
    • 若要使用基于token的认证方式,可使用如下命令

      kubectl config set-credentials foo --token=mysecrettokenXFDJIQ1234
      
    • 将集群和用户凭据联系到一起
      以下命令用于创建新的上下文,并将集群与创建的用户联系在一起

      kubectl config set-context some-context --cluster=my-other-cluster --user=foo --namespace=bar
      
    • 获取当前上下文的名称

      kubectl config current-context
      
    • 修改指定上下文默认的命名空间

      kubectl config set-context minikube --namespace=another-namespace
      
    • 切换上下文到my-other-context

      kubectl config use-context my-other-context
      
    • 列出kubeconfig文件中定义的所有上下文

      kubectl config get-contexts
      
    • 列出kubeconfig文件中定义的集群

      kubectl config get-clusters
      
    • 删除kubeconfig文件中定义的上下文和集群

      kubectl config delete-context my-unused-context
      kubectl config delete-cluster my-old-cluster
      

    相关文章

      网友评论

          本文标题:Kubernetes-常用命令

          本文链接:https://www.haomeiwen.com/subject/dqtciktx.html