zoukankan      html  css  js  c++  java
  • 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
       
  • 相关阅读:
    hdu 2485 Destroying the bus stations 迭代加深搜索
    hdu 2487 Ugly Windows 模拟
    hdu 2492 Ping pong 线段树
    hdu 1059 Dividing 多重背包
    hdu 3315 My Brute 费用流,费用最小且代价最小
    第四天 下载网络图片显示
    第三天 单元测试和数据库操作
    第二天 布局文件
    第一天 安卓简介
    Android 获取存储空间
  • 原文地址:https://www.cnblogs.com/davygeek/p/8744100.html
Copyright © 2011-2022 走看看