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
       
  • 相关阅读:
    php if() 括号中为 真详解
    php 写入日志
    trim,rtrim,ltrim详解
    SQlite3 的简单用法。 调用本地时间
    RuntimeError at /host You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your fo
    D3.js 入门系列3
    js中const,var,let区别
    D3.js 入门系列2 — 选择元素和绑定数据
    D3.js 入门系列1
    SVG 教程03
  • 原文地址:https://www.cnblogs.com/davygeek/p/8744100.html
Copyright © 2011-2022 走看看