暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

k8s常用命令以及用法总结,值得一看

docker茶餐厅 2021-06-20
1048

常用命令详解

 

get命令用于获取集群的一个或一些resource信息

describe类似于get,同样用于获取resource的相关信息。不同的是,get获得的是更详细的resource个性的详细信息,describe获得的是resource集群相关的信息。describe命令同get类似,但是describe不支持-o选项

resource包括集群节点、运行的pod,ReplicationController,service等。

 

Nodes

 

关于节点的常见命令

 

no 是 node的简写

[root@master ~]# kubectl get no    #查看node节点

NAME    STATUS   ROLES    AGE    VERSION

master  Ready    master   4h22m  v1.14.0

node1   Ready    <none>   3h52m  v1.14.0

node2   Ready    <none>   3h52m  v1.14.0

-----------------------------------------------------

NAME           节点的名字

STATUS         节点的状态

ROLES           节点在集群中扮演的角色

AGE               运行时长

VERSION     版本号

[root@master ~]# kubectl get no -owide   #查看node节点

NAME    STATUS   ROLES    AGE    VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME

master  Ready    master  4h25m   v1.14.0   192.168.13.141   <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.1

node1   Ready    <none>   3h56m  v1.14.0   192.168.13.142   <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.1

node2   Ready    <none>   3h56m  v1.14.0   192.168.13.143   <none>        CentOS Linux 7 (Core)   3.10.0-693.el7.x86_64   docker://18.6.1

-----------------------------------------------------

INTERNAL-IP               节点所在的IP地址

EXTERNAL-IP               IP的外部网络或互联网

OS-IMAGE                  操作系统的镜像版本

KERNEL-VERSION              内核版本号

CONTAINER-RUNTIME容器运行时的版本

[root@master ~]# kubectl describe no  

[root@master ~]# kubectl get no -oyaml  #以yaml的格式输出node的详细信息

[root@master ~]# kubectl get no -o json #以json的格式输出node的详细信息

[root@master ~]# kubectl get node--selector=[label_name]   #selector 标签选择器(yaml文件中有)

[root@master ~]# kubectl top node[node_name]  #查看node节点各资源的使用情况

如:

[root@master ~]# kubectl top node node1

NAME   CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%  

node1  96m          9%     587Mi           67%      

 

Pods

 

po 是pod的简写

[root@master ~]# kubectl get po                          #pod的信息

[root@master ~]# kubectl get po -o wide

[root@master ~]# kubectl describe po

[root@master ~]# kubectl get po --show-labels      #查看pod对应的标签

NAME                     READY   STATUS   RESTARTS   AGE    LABELS

mysql-ft58r              1/1     Running  0          64m    app=mysql

myweb-2j67r              1/1     Running  0          56m    app=myweb

myweb-7nzdc              1/1    Running   0          56m   app=myweb

nginx-5f965696dd-w4thr   1/1    Running   1          3h8m  app=nginx,pod-template-hash=5f965696dd

[root@master ~]# kubectl get po -lapp=nginx         #查看标签为app: nginx 的pod

[root@master ~]# kubectl get po -oyaml                          #yaml格式

[root@master ~]# kubectl get po -o json                             #json格式

[root@master ~]# kubectl get pods --field-selector status.phase=Running   #查看状态为Running的pod

NAME                     READY   STATUS   RESTARTS   AGE

mysql-ft58r              1/1     Running  0          78m

myweb-2j67r              1/1     Running  0          70m

myweb-7nzdc              1/1     Running  0          70m

nginx-5f965696dd-w4thr   1/1    Running   1          3h22m

 

Namespaces(命名空间)

 

[root@master ~]# kubectl get ns   #查看命名空间

NAME              STATUS   AGE

default           Active   5h22m

kube-node-lease   Active  5h22m

kube-public       Active  5h22m

kube-system       Active  5h22m

 

[root@master ~]# kubectl get ns - o yaml

[root@master ~]# kubectl describe ns

 

Deployments

 

[root@master ~]# kubectl get deploy

[root@master ~]# kubectl describe deploy

[root@master ~]# kubectl get deploy - owide

[root@master ~]# kubectl get deploy - oyaml

 

Services

 

[root@master ~]# kubectl get svc

[root@master ~]# kubectl describe svc

[root@master ~]# kubectl get svc - o wide

[root@master ~]# kubectl get svc - o yaml

[root@master ~]# kubectl get svc--show-labels

 

DaemonSets

 

[root@master ~]# kubectl get ds

[root@master ~]# kubectl get ds--all-namespaces

[root@master ~]# kubectl describe ds[daemonset_name] - n [namespce_name]

[root@master ~]# kubectl get ds [ds_name]-n [ns_name] -o yaml

 

Events

 

[root@master ~]# kubectl get events

[root@master ~]# kubectl get events -nkube-system

[root@master ~]# kubectl get events -w

 

logs

 

[root@master ~]# kubectl logs [pod_name]

[root@master ~]# kubectl logs --since=1h[pod_name]

[root@master ~]# kubectl logs --tail =20[pod_name]

[root@master ~]# kubectl logs -f -c[container_name] [pod_name]

[root@master ~]# kubectl logs [pod_name]> pod.log

 

Service Accounts

 

[root@master ~]# kubectl get sa

[root@master ~]# kubectl get sa -o yaml

[root@master ~]# kubectl getserviceaccounts default -o yaml >./sa.yaml

[root@master ~]# kubectl replaceserviceaccount default -f ./sa.yaml

 

ReplicaSets

 

[root@master ~]# kubectl get rs

[root@master ~]# kubectl describe rs

[root@master ~]# kubectl get rs -o wide

[root@master ~]# kubectl get rs -o yaml

 

Roles

 

[root@master ~]# kubectl get roles --all-namespaces

[root@master ~]# kubectl get roles --all-namespaces -o yaml

 

Secrets

 

[root@master ~]# kubectl get secrets

[root@master ~]# kubectl get secrets --all-namespaces

[root@master ~]# kubectl get secrets -oyaml

 

ConfigMaps

 

[root@master ~]# kubectl get cm

[root@master ~]# kubectl get cm--all-namespaces

[root@master ~]# kubectl get cm--all-namespaces -o yaml

 

Ingress

 

[root@master ~]# kubectl get ing

[root@master ~]# kubectl get ing--all-namespaces

 

PersistentVolume

 

[root@master ~]# kubectl get pv

[root@master ~]# kubectl describe pv

 

PersistentVolumeClaim

 

[root@master ~]# kubectl get pvc

[root@master ~]# kubectl describe pvc

 

StorageClass

 

[root@master ~]# kubectl get sc

[root@master ~]# kubectl get sc -o yaml

 

Multiple Resources

 

[root@master ~]# kubectl get svc,po

[root@master ~]# kubectl get deploy,no

[root@master ~]# kubectl get all

[root@master ~]# kubectl get all --all -namespaces

 

Changing Resource Attributes //改变资源属性

Taint

 

[root@master ~]# kubectl taint [node_name][taint_name]

 

Labels

 

[root@master ~]# kubectl label [node_name]disktype=ssd

[root@master ~]# kubectl label [pod_name]env=prod

 

Cordon/Uncordon

 

[root@master ~]# kubectl cordon [node_name]

[root@master ~]# kunectl uncordon[node_name]

 

Drain

 

[root@master ~]# kubectl drain [node_name]

 

Nodes/Pods

 

[root@master ~]# kubectl delet enode[node_name]

[root@master ~]# kubectl delet epod[pod_name]

[root@master ~]# kubectl edit node[node_name]

[root@master ~]# kubectl edit pod[pod_name]

 

Deployments/Namespaces

 

[root@master ~]# kubectl edit deploy[deploy_name]

[root@master ~]# kubectl delete deploy[deploy_name]

[root@master ~]# kubectl expse deploy[deploy_name] --por=80  -type=NodePort

[root@master ~]# kubectl scale deploy[deploy_name] --repicas=5

[root@master ~]# kubectl delete ns

[root@master ~]# kubectl edit ns [ns_name]

Services

 

[root@master ~]# kubectl edit svc[svc_name]

[root@master ~]# kubectl delete svc[svc_name]

 

DaemonSets

 

[root@master ~]# kubectl edit ds [ds_name]-n kube-system

[root@master ~]# kubectl delete ds[ds_name]

 

Service Accounts

 

[root@master ~]# kubectl edit sa [sa_name]

[root@master ~]# kubectl delete sa[sa_name]

 

Annotate

 

[root@master ~]# kubectl annotate po[pod_name] [annotation]

[root@master ~]# kubectl annotate no[node_name]

 

Adding Resources //添加资源

Creating a Pod

 

[root@master ~]# kubectl create -f[name_of_file]

[root@master ~]# kubectl apply -f[name_of_file]

[root@master ~]# kubectl run [pod_name]--image=nginx --resart=Never

[root@master ~]# kubectl run [pod_name]--geneator=run-pod/v1 --image=nginx

[root@master ~]# kubectl run [pod_name]--image=nginx --restart=Never

Creating a Service

 

[root@master ~]# kubectl create svcnodeport [svc_name] --tcp=8080: 80

 

Creating a Deployment

 

[root@master ~]# kubectl create -f[name_of_file]

[root@master ~]# kubectl apply -f[name_of_file]

[root@master ~]# kubectl create deploy[deploy_name] --image=ngi nx

 

Interactive Pod

 

[root@master ~]# kubectl run [pod_name]--image=busybox --rm -it --restart=Never -- sh

 

Output YAML to a File

 

[root@master ~]# kubectl create deploy[deploy_name] --image=nginx --dry-run -o yaml > depl oy. yaml

[root@master ~]# kubectl get po [pod_name]-o yaml --export > pod. yaml

 

Getting Help

 

[root@master ~]# kubectl -h

[root@master ~]# kubectl create -h

[root@master ~]# kubectl run -h

[root@master ~]# kubectl explaindeploy.spec

 

Requests //请求

API Call

 

[root@master ~]# kubectl get --raw/apis/metrics.k8s.io/

 

Cluster Info

 

[root@master ~]# kubectl config

[root@master ~]# kubectl cluster-info

[root@master ~]# kubectl getcomponentstatuses

 

kubectl -n kube-system edit cm coredns

 


文章转载自docker茶餐厅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论