kubernetes常用基础命令

k8s常用命令集合:

1、禁止|恢复node节点调度:

kubectl cordon(禁用)|uncordon(恢复) <nodename>

2、删除节点(慎用):

kubectl drain <nodename> (驱除非系统pod)
kubectl delete <nodename> (删除节点)

3、创建资源:

kubectl create|apply -f test.yaml
create:命令一般用于创建新资源。因此,如果再次运行该命令,则会抛出错误,因为资源名称在名称空间中应该是唯一的。
apply:命令一般用于更新资源配置。 如果资源不在那里,那么它将被创建。 
kubectl apply命令可以运行更多次,只要资源定义没变,资源将不会变化。

4、查看资源列表:

kubectl get node|pod|service|deployment|configmap|... -n namespace [-o wide] [-w]
更多查看帮助:kubectl get --help

5、查看特定资源详情:

kubectl describe pod <podname> -n namespace

6、查看资源定义:

kubectl get deploy <deployname> -n namespace -o yaml [>file(自定义文件名).yaml] 重定向到文件里,可以再次apply -f yaml

7、编辑资源(只对spec字段下内容生效):

kubectl edit node|pod|service|deployment|configmap|... -n namespace

8、删除资源(慎用):

kubectl delete pod <podname> -n namespace [--force --grace-period=0]强制删除
grace-period表示过渡存活期,默认30s,在删除POD之前允许POD慢慢终止其上的容器进程,从而优雅退出,0表示立即终止POD。

9、pod扩缩容:

手动扩缩容:kubectl scale deployment <deployname> -n namespace --replicas=x;
也可用kubectl edit对deployment进行编辑后apply

10、pod升级与回滚:

deployment:
升级:kubectl set image deployment/<deplyname> -n namespce image=<imagename>:xxx; 
也可用kubectl edit对deployment进行编辑后apply
更新策略:
Recreate: 更新时先杀掉正在运行的pod,然后创建新的pod
RollingUpdate: 滚动方式进行更新,参数maxUnavailable和maxSurge来控制滚动更新的过程
回滚(不常用):kubectl rollout status|history deployment/<deployname> -n namespace [--to-revision=x]

11、pod调度:

NodeName定向调度:通过node节点的主机名进行定向调度
NodeSelector定向调度:通过Node节点标签和pod资源属性nodeSelector匹配实现pod的定向调度

12、查看node节点标签:

kubectl get node --show-labels
查看指定标签的节点: kubectl get node -l key=value
节点增加标签:kubectl label nodes nodename key=value
删除节点标签:kubectl label nodes nodename key-
修改节点标签: kubectl label nodes nodename key=newvalue --overwrite

13、进入容器终端执行命令

容器名称可通过命令`kubectl describe pod`查看
centos使用/bin/bash 
ubuntu或debain使用/bin/sh 
kubectl exec <podname> -it -c 容器名称 /bin/sh

如有@侵权,请联系 2787950493@qq.com 改版。

作者:火车站的那个她原文地址:https://segmentfault.com/a/1190000042455981

%s 个评论

要回复文章请先登录注册