• kubectl 常用命令


    kubernetes 官方命令文档:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

    1 kubectl命令遵循这一语法格式:kubectl  an_action  a_resource  a_resource_name  –flags

    2 kubectl get all显示运行中的Pod、Service、Deployment以及ReplicaSet的关键信息,all是指所有已存在的资源

    3 kubectl get events显示了event的历史记录。它像是Kubernetes级别的日志,而不是容器级别的日志。

    • help—获取帮助  如,kubectl get pods –help

    • get— 显示有关一个或多个资源的信息。 可以将get和单个对象一起使用,并添加--watch标志以实时观察更新。

    • describe—显示关于一个或多个资源的详细信息

    • logs—显示容器日志 。logs命令需要一个pod名称。当在多个pod中时,使用-c my-container标志来指定一个容器。使用--previous标志来获取不再运行的容器信息

    • exec—进入容器中一个正在运行的进程。例如,要在my_pod中进入容器并运行Bash,请输入kubectl exec -it my_pod bash。

    • apply—创建或选择一个资源。 如果资源不存在,apply将创建它;如果它存在,apply将更改

    • delete—删除一个或多个资源。 kubectl delete pod my_pod这一命令可用于删除名称为my_pod的Pod。要删除所有相同类型的资源,需要使用--all标志。例如,使用kubectl delete rs –all 。 请注意,如果你尝试这一操作,那么要先删除Deployment,否则ReplicaSet将会重新启动。

    • kubectl delete namespace demo-namespace
      删除命名空间不仅删除命名空间,还会清理其中部署了的所有资源

    5 kubectl使用配置文件来访问Kubernetes集群。

    1. 如果设置了--kubeconfig标志,则仅加载给定文件。该标志只能设置一次,不会发生合并。

    2. 如果设置了$ KUBECONFIG环境变量,则根据系统的正常路径分隔规则,将其解析为文件系统路径列表。

    3. 否则,如果上述两项都未设置,则使用${HOME}/.kube/config 文件,不进行任何合并

    6 查看当前配置:kubectl config view

    查看配置的摘要:kubectl config get-contexts

    7 查看当前使用的上下文:kubectl config current-context
    更改连接的上下文:kubectl config use-context ***
    更改当前上下文的命名空间:kubectl config set-context --current --namespaces=rancher

    修改当前上下文的命名空间:kubectl config set-context $(kubectl config current-context)  --namespace=demo-namespace

    恢复到默认命名空间:kubectl config set-context $(kubectl config current-context)  --namespace= 

    8 检测核心组件状态:kubectl get cs 【如果你的集群运行不正常,这是一个很好的、进行第一次诊断检查的机会】

    9 收集服务信息:kubectl cluster-info

    10 查看节点信息:kubectl get nodes -o wide

    11 可用的命名空间:kubectl get namespaces         创建命名空间:kubectl create namespace test-demo

    跨命名空间查询集群上的资源:kubectl get all --all-namespaces

    通过文件创建命名空间:kubectl apply -f demo-namespace.yml

    要将操作应用于不同的命名空间,我们必须在命令中包含—namespace=这一选项,如 kubectl  create deployment --image nginx demo-nginx  --namespace=demo-namespace 

    查看指定命名空间里的资源:kubectl  create deployment --image nginx demo-nginx  --namespace=demo-namespace 

    12 查询资源最新的事件:kubectl get events --all-namespaces

    13 查看当前部署的pod: kubectl get pods
    查看pod所属的命名空间;kubectl get pods  --all-namespaces

    14 清理部署的资源:kubectl delete deployment nginx

    15 pod

     16 资源删除

    17 服务

    18 事件

    19 命名空间

    20 终极命令

     21 scale

      22 利用wget访问页面:

     23 创建服务:kubectl  expose

    24 创建deployment 

     

    25 升级 & 回滚 

     

     26 编辑:

     27 

    28 通过文件创建:

    29 基于文件删除:

     30 查询资源定义字段有哪些:

    kubectl explain pods
    kubectl explain pods.met

    31 大部分资源的配置清单:
    apiVersion:group/version
    $ kubectl api-version
    kind: 资源类别
    metadata:元数据
    name
    namespace
    labels
    annotations
    spec:期望的状态
    status:当前状态,本字段由kubernetes维护

     32

    查看名称空间:kubectl get namespace 或 kubectl get ns (namespace简称ns)
    查看空间中的资源:kubectl get all -n default
    创建空间:kubectl create namespace app
    删除空间:kubectl delete namespace app
    创建deployment(简写deploy):kubectl create deployment nginx-dp --image=nginx:1.7.9 -n kube-public
    查看deployment : kubectl get deployment -n kube-public
    展示扩展信息(-o wide):kubectl get pods -n kube-public -o wide
    看详细信息:kubectl describe deployment nginx-dp -n kube-public
    进入pod:kubectl -exec -it pod-id /bin/bash -n kube-public
    删除pod(删除是重启的方法之一):kubectl delete pod pod-id -n kube-public [--force --grace-period=0 ]
    删除deployment:kubectl delete deploy nginx-dp -n kube-public
    创建服务:kubectl expose deployment nginx-dp --port=80 -n kube-public
    查看服务:kubectl get svc -n kube-public
    扩容:kubectl scale deployment nginx-dp --replication=2 -n kube-public
    命令大全:kubectl --help
    查看yaml:kubectl get pods pod-id -o yaml -n kube-public
    查看yaml中字段含义:kubectl explain service.metadata
    语法格式:kubectl create/apply/delete -f /path/yaml
    应用yaml:kubectl apply -f nginx-svc.yaml
    利用yaml删除:kubectl delete -f nginx-svc.yaml
    在线修改yaml:kubectl edit svc nginx-dp
    daemonset缩写ds

    33 

    查看资源名称:kubectl api-resources

    查看资源字段规范:kubectl explian deployment.spec --recursive
    kubectl explain仅显示单个级别的字段。你可以使用--recursive标志来显示所有级别的字段

    自定义列输出选项的用法如下:kubectl get pods -o custom-columns='NAME:metadata.name'
    kubectl get pods -o custom-columns='NAME:metadata.name,NODE:spec.nodeName'
    # Pod调度的节点保存在Pod的spec.nodeName字段中(请参阅kubectl explain pod.spec.nodeName)

    # Select all elements of a list
    kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
    # Select a specific element of a list
    kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
    # Select those elements of a list that match a filter expression
    kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
    # Select all fields under a specific location, regardless of their name
    kubectl get pods -o custom-columns='DATA:metadata.*'
    # Select all fields with a specific name, regardless of their location
    kubectl get pods -o custom-columns='DATA:..image'

    34 

    kubectl logs rc-nginx-2-kpiqt logs命令用于显示pod运行中,容器内程序输出到标准输出的内容
    kubectl rolling-update rc-nginx-2 -f rc-nginx.yaml 对于已经部署并且正在运行的业务,rolling-update提供了不中断业务的更新方式
    kubectl scale rc rc-nginx-3 —replicas=4 scale用于程序在负载加重或缩小时副本进行扩容或缩小
    kubectl autoscale rc rc-nginx-3 —min=1 —max=4 autoscale命令会给一个rc指定一个副本数的范围

    kubectl attach kube-dns-v9-rcfuk -c skydns —namespace=kube-system attach命令类似于docker的attach命令,可以直接查看容器中以daemon形式运行的进程的输出

    kubectl version
    kubectl api-versions

     ======

    kubectl cluster-info
    
    Kubernetes master is running at https://172.16.16.3:6443
    coredns is running at https://172.16.16.3:6443/api/v1/namespaces/kube-system/services/coredns:dns/proxy
    kubernetes-dashboard is running at https://172.16.16.3:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
    多个yaml文件
    kubectl create -f nginx -deploy.yaml - f nginx-svc.yaml
    列出 kube-namespace 名称空间中拥有 k8s-app 标签名称的所有 Pod 对象:
     kubectl get pods -1 k8s-app -n kube-system
    kubectl logs -f
    为上面的命令添加“ J”选项,还能用于持续监控指定容器中的日志输出
    复 制 master 主机上的 /etc/kubernetes/admin.conf 至相关用户主目录下 的 .kube/config 文件即可正常执行
    打印环境变量
     kubectl exec jupyterhub-7c9f5458dc-flt7k  -n baaisys-oauth  -- printenv
  • 相关阅读:
    Linux 查看磁盘读写速度IO使用情况
    Kubernete安装
    jenkins问题解决
    Jenkins用HTTP Request Plugin插件进行网站的监控/加探针(运维监控)
    golang信号signal的处理
    修改docker仓库资源的地址
    centos7修改hostname
    同步CentOS时间
    CentOs查那个目录占空间大
    CentOS7主机名的修改
  • 原文地址:https://www.cnblogs.com/testzcy/p/13025897.html
Copyright © 2020-2023  润新知