• kubernetes 命令行


    kubectl 创建对象

    $ kubectl create -f ./my-manifest.yaml     #创建资源

    $ kubectl create -f ./my1.yaml -f ./my2.yaml    #使用多个文件创建资源

    $ kubectl create -f ./dir    #使用目录下的所有清单文件(yaml)来创建资源

    $ kubectl create -f https://git.io/vPieo    #使用url创建资源

    $ kubectl run nginx --image=nginx    #启动一个nginx实例

    $ kubectl explain pods    #获取pod和svc的文档

    kubectl 显示和查找资源

    查看k8s基础组件状态

    $ kubectl get componentstatus

    以下命令查找资源时可能查不到的原因是需要指定namespace,通过 -n <namespace>指定即可,或者all

    $ kubectl get pods --all-namespaces    #列出所有namespace中的pod,也可以是services、deployment等

    $ kubectl get pod -n 命名空间名称  #列出某个命名空间名称里的所有pod

    $ kubectl get pods -o wide    #列出pod并显示详细信息

    $ kubectl get deployment my-dep    #列出指定daployment

    $ kubectl get pods --include-uninitialized    #列出该namespace中的所有pod,包括未初始化的

    使用详细输出来描述命令

    $ kubectl describe nodes <my-node IP or name>    #查看node节点信息

    $ kubectl describe pods <my-pod>    #查看pod详细信息

    $ kubectl get services --sort-by=.metadata.name --all-namespaces    #l列出所有service并按名称排序

    根据重启次数排序列出pod

    $ kubectl get pods --sort-by='.status.containerStatuses[0].restartCount' --all-namespaces

    获取所有具有app=cassandra的pod中的version标签

    $ kubectl get pods --selector=app=cassandra rc -o jsonpath='{.items[*].metadata.labels.version}'

    获取所有节点的ExternalIP

    $ kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternlIP")].address}'

    kubectl编辑资源

    $ kubectl -n codeus edit svc/c    #编辑codeus命名空间下名称为c的service

    kubectl Scale 资源

    扩展pod下容器数量

    $ kubectl scale --replicas=3 rs/foo    #扩展名称为foo的资源到3个,是否使用rs取决于yaml中的编写

    例如yaml中kind: Deployment ,则应通过下面方法扩展

    $ kubectl scale --replicas=3 deployment/foo

    或者直接通过创建资源的yaml文件扩展

    $ kubectl scale --replicas=3 -f foo.yaml

    根据判断条件扩展

    例如条件是:如果mysql的数量是2,则扩展到3

    $ kubectl scale --current-replicas=2 --replicas=3 deployment/mysql

    同时扩展多个资源

    $ kubectl scale --replicas=5 rc/foo rc/bar rc/baz

    kubectl 删除资源

    $ kubectl delete deployment <name>     #删除指定deployment,此方法还可以删除service等

    $ kubectl delete -f xxx.yaml    #通过创建此pod的yaml文件删除pod

    kubectl 与运行中的pod交互

    $ kubectl -n <namespaces> logs my-podname    #查看pod日志, -f 持续查看

    $ kubectl log <pod name> -c <container name>   #查看某个pod里面容器的日志

    $ kubectl port-forward my-podname 5000:6000    #转发pod中的6000端口到本地的5000端口

    $ kubectl exec my-podname -- ls /    #在已存在的容器中执行命令

    # 通过bash获得 pod 中某个容器的TTY,相当于登录容器

    $ kubectl exec  <pod-name>  -it -c <container-name> -- /bin/sh  #pod中有多个容器,需要指定-c 容器名称

    $ kubectl exec  <pod-name> -it -- /bin/sh   #pod中只有一个容器,不需要指定-c 

    $ kubectl exec <pod-name>  -it -- rm -rf /usr/share/nginx/html/index.html  #/bin/sh可以替换成为要执行的指令

    kubectl 滚动升级/回滚rc资源pod

    $ kubectl rolling-update myweb -f nginx-rc1.15.yaml --update-period=5s    #按照nginx-rc1.15.yaml文件,滚动升级myweb rc资源pod,每五秒升级一次

    $ kubectl rolling-update mywebv2 -f nginx-rc1.13.yaml --update-period=5s #按照nginx-rc1.13.yaml 文件,回滚mywebv2 rc资源pod,每五秒回滚一次,回滚与升级操作命令一致,就是把pod镜像升级为原来的版本,注意标签名称也要调整




  • 相关阅读:
    XML 的学习笔记3
    XML 的学习笔记2
    XML 的学习笔记1
    Tomcat 学习笔记2
    Tomcat 学习笔记1
    sol
    sol
    0、安装Ionic2
    ionic2 目录
    6、Angular Route 路由
  • 原文地址:https://www.cnblogs.com/houjunjun437416/p/11883063.html
Copyright © 2020-2023  润新知