zoukankan      html  css  js  c++  java
  • kubectl常用命令

    #kubernetes命令自动补全(只针对当前bash)
    source /usr/share/bash-completion/bash_completion
    source <(kubectl completion bash)
    ​
    #将get信息到处为yaml格式
    kubectl get deploy kube-dns -n kube-system -o yaml > kube-dns.yaml
    ​
    #更新yaml文件并更新服务(1.8版本开始改为apply)
    kubectl update -f kube-dns.yaml 
    ​
    #编辑当前应用的配置
    kubectl edit deployment nginx
    ​
    #查看当前集群中的daemoset及详细信息
    kubectl get ds --all-namespaces
    kubectl describe daemonset kube-flannel-ds -n kube-system
    ​
    #新建namespace
    kubectl create namespace morata-namespace
    ​
    #删除namespace
    kubectl delete namespace morata-namespace
    ​
    #设置节点为维护模式(即节点不可被调度,但不影响已有pod的运行)
     kubectl cordon k8s-slave
    #关闭维护模式
     kubectl uncordon k8s-slave
     
    创建deployment并查看信息
    
    
    #创建nginx,并且设置为2份
     kubectl run nginx --image=nginx:1.7.9 --replicas=2
     
    #删除deployment
     kubectl delete deployment nginx
     
    #查看所有deployment
     kubectl get deployment 
    ​
    #查看nignx deployment的详细信息
     kubectl describe deployment nginx 
    ​
    #查看pod
     kubectl get pod
     kubectl get pod nginx-6f8cf9fbc4-lvsqj -o wide
    ​
    #查看pod详细信息
     kubectl describe pod nginx-6f8cf9fbc4-lvsqj 
    ​
    #在pod中运行命令
     kubectl exec nginx-6f8cf9fbc4-lvsqj ls
    # 默认在pod 123456-7890的第一个容器中运行“date”并获取输出
    $ kubectl exec 123456-7890 date
    
    # 在pod 123456-7890的容器ruby-container中运行“date”并获取输出
    $ kubectl exec 123456-7890 -c ruby-container date
    
     
    #进入pod
     kubectl exec nginx-6f8cf9fbc4-lvsqj -it bash
    ​
    #查看replicaset
     kubectl get rs
    ​
    #查看replicaset的详细信息
     kubectl describe rs nginx-6f8cf9fbc4
    ​
    #创建service
     cat nginx.svc.yaml 
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      ports:
      - name: http
        port: 8888
        nodePort: 30001
        targetPort: 80
      selector:
        run: nginx
      type: NodePort
      
     kubectl create -f nginx.svc.yaml
     kubectl expose deployment nginx --type=NodePort --name=nginx-test --port=80
     
    # 删除service
     kubectl delete -f nginx.svc.yam
     kubectl delete svc nginx
     
    #查看service及详细信息
     kubectl get svc
     kubectl describe svc nginx
     
    #查看endpoint
     kubectl get endpoints
     NAME         ENDPOINTS                       AGE
     kubernetes   192.168.8.250:6443              10h
     nginx        10.244.0.13:80,10.244.1.31:80   5m
     nginx-test   10.244.0.13:80,10.244.1.31:80   50s
    #deployment扩容缩容
     kubectl scale deployment nginx --replicas=3
     
     kubectl scale deployment nginx --replicas=2
     #查看ep、rs、pod都发生扩容/缩容
     kubectl get endpoints 
    ​
     kubectl get rs 
    ​
     kubectl get pod
     
    #滚动升级/回滚
     #升级nginx至1.9.1
     kubectl set image deploy nginx nginx=nginx:1.9.1
     kubectl edit deployment/nginx-deployment
    或者kubectl apply -f nginx-deployment.yaml
    #实时观察发布状态:kubectl rollout status deployment/nginx-deployment
    #查看deployment历史修订版本
    kubectl rollout history deployment/nginx-deploymentkubectl rollout history deployment/nginx-deployment --revision=3
    # 回滚到以前版本
    kubectl rollout undo deployment/nginx-deploymentkubectl rollout undo deployment/nginx-deployment --to-revision=3
    # 扩容deployment的Pod副本数量kubectl scale deployment nginx-deployment --replicas=10
    # 设置启动扩容/缩容
    kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
     #查看升级状态
     kubectl rollout status deployment nginx 
    ​
      #查看升级历史
      kubectl rollout history deployment nginx 
    ​
     #查看历史版本详情
     kubectl rollout history deployment nginx --revision=2
    ​
     #可以查看rs、deployemnt、svc、pod查看升级中的变化
     kubectl get rs 
     kubectl get svc 
     kubectl get pod
     kubectl get deployment 
     
     #查看deployment升级事件详情
     kubectl describe deployment nginx
    ​
     #升级失败回滚
     kubectl set image deploy nginx nginx=nginx:1.95
     
      #查看升级状态一直处于等待状态
      kubectl rollout status deployment nginx 
        Waiting for rollout to finish: 1 old replicas are pending termination...
      
      #可以查看升级历史、svc、rs、pod等详情可以得知错误原因
      
      #回滚操作
      kubectl rollout undo deployment nginx
      
      #查看deployment回滚详情
      kubectl describe deployment nginx
    
  • 相关阅读:
    对我比较有用的网站
    ubuntu各种安装
    arabaraba
    镜像源相关
    硬盘相关
    python模块
    递归和循环两种方式实现未知维度集合的笛卡尔积
    单例模式的两种实现方式
    经典String str = new String("abc")内存分配问题
    js方法的命名不能使用表单元素的名称或ID
  • 原文地址:https://www.cnblogs.com/flyhgx/p/9018136.html
Copyright © 2011-2022 走看看