• kubernetes常用命令


    kubectl相关

    • 关键词概念
      Pods
      Labels
      Replication Controller
      Services
      Volumes
      kubectl命令详细说明

    • 获取pod列表

      # 命令会返回当前kubernetes 已经创建的pods列表,主要会显示以下信息
      # NAME                    READY     STATUS    RESTARTS   AGE
      $ kubectl get pod
      # NAME                    READY     STATUS    RESTARTS   AGE
      # etcd-global-9002d       1/1       Running   0          2d
      # etcd-global-l3ph8       1/1       Running   0          2d
      # etcd-global-psj52       1/1       Running   0          2d
    • 查看pod详细信息

      # 使用pod名称查看pod的详细信息, 主要是容器的详细信息
      $ kubectl describe pod etcd-global-9002d
    • 查询部署列表

      # 获取部署列表
      $ kubectl get deployment
    • 删除部署

      # 删除名称为etcd-minikube的部署
      $ kubectl delete deployment etcd-minikube
    • 删除容器

      # 删除rc,即删除该rc控制的所有容器
      $ kubectl delete rc my-nginx
      
      # 删除svc,即删除分配的虚拟IP
      $ kubectl delete svc my-ngin
    • 获取Replication Controller

      # 获取Replication Controller列表
      $ kubectl get rc
    • 通过外部访问kubectl内部的端口

      # expose命令将会创建一个service,将本地(某个节点上)的一个随机端口关联到容器中的80端口
      $ kubectl expose rc my-nginx --port=80 --type=LoadBalancer
    • 查询服务信息

      # 以上通过expose创建了一个叫my-nginx的service,我们可以通过以下命令查询服务信息
      $ kubectl get svc my-nginx
    • 根据配置文件创建pod

      # 根据配置文件*.yaml创建容器
      $ kubectl create -f ./hello-world.yaml
    • 配置文件正确性校验

      # 使用--vaildate参数可以校验配置文件正确性
      $ kubectl create -f ./hello-world.yaml --validate
    • 查看日志

      # 查看vttablet的日志
      $ kubectl logs vttablet-100 vttablet
      
      # 查看vttablet中mysql的日志
      $ kubectl logs vttablet-100 mysql
    • shell登录

      # 通过kubectl exec 可以直接连接到对应的节点
      $ kubectl exec vttablet-100 -c vttablet -t -i -- bash -il
    • 查看service详细信息

      kubectl describe service etcd-global
    • RC副本数量修改

      # 可以通过本地动态修改RC副本数量实现动态扩容缩容
      kubectl scale rc xxxx --replicas=3
    • 查询Replica Set

      kubectl get rs
    • 查看Endpoints列表

      # 查看Endpoints 列表
      # Endpoint => (Pod Ip + ContainerPort)
      kubectl get endpoints
    • 查看namespaces

      kubectl get namespace
    • Node的隔离与恢复

      # 隔离Node,新创建的Pod不会在改node上创建了,但是已经创建的不会自动关闭
      kubectl patch node xxx -p '{"spec":{"unschedulable":true}}'
      
      # 解除Node的隔离, 可以在上面继续创建pod
      kubectl patch node xxx -p '{"spec":{"unschedulable":false}}'
      
      # 隔离还可以通过kubectl replace -f xxx.yaml 命令实现
    • Pod添加/删除/修改Label

      # 给pod xxx添加Lable app=vitess
      kubectl label pod xxx app=vitess
      
      # 删除pod xxx的Lable app
      kubectl label pod xxx app-
      
      # 修改pod xxx的标签
      kubectl label pod xxx app=mysql --overwrite
    • 查看Pod日志

      # 查看Pod下对应容器的日志, 使用-f可以直接监听文件变化
      $ kubectl logs -f <POD_NAME> -c <CONTAINER_NAME>

      查看Pod之前状态

      # 如果容器被kill的话可以通过以下命令查看容器关闭的原因,比如oom这类就可以查看
      $ kubectl get pod -o go-template='{{range.status.containerStatuses}}{{"Container Name: "}}{{.name}}{{"
      LastState: "}}{{.lastState}}{{end}}'  simmemleak-60xbc


      查看归属某个Zone的Node
      $ kubectl get nodes -lzone
       
  • 相关阅读:
    Nexus centos 安装
    Linux下Redis的安装和部署
    Markdown编辑器
    mysql 递归查询 主要是对于层级关系的查询
    Maven 打包的时候报 Failed to execute goal org.codehaus.mojo:native2ascii-maven-plugin
    WPS 认证机制
    网络延迟分析
    帧传送、关联与身份验证状态
    802协议族
    【转】Hostapd工作流程分析
  • 原文地址:https://www.cnblogs.com/davygeek/p/8744100.html
Copyright © 2020-2023  润新知