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

 

posted on 2020-06-01 16:30  我和你并没有不同  阅读(2763)  评论(0编辑  收藏  举报