k8s的一些命令

kubectl get nodes

kubectl get pods --all-namespaces -o wide

kubectl get pods -n $namespace

 

kubectl get namespcaes

kubectl create namespace $namespace_name 

 

kubectl apply -f XXXX.yaml

 (80对应http 443对应https)

kubectl get svc/service -n $namespace

kubectl describe svc $service_name -n $namespace

 

kubectl delete pod $pod_name --grace-period=0 --force 强制删除pod

kubectl delete pod $pod_name

kubectl delete -f $xxx.yaml  用yaml文件删除pod/cm/server ....   

kubectl rollout status deployment $deployment_name  查看滚动deployment升级的态

kubectl rollout pause deployment $deployment_name 暂停deployment滚动升级

kubectl rollout resume deployment $deployment_name  恢复deployment滚动升级

kubectl rollout history deployment $deployment_name  滚动升级的历史记录  与kubectl get rs 信息一一对应

kubectl rollout undo deployment $deployment_name 回滚到最近的版本

kubectl rollout undo deployemnt $deployment_name --to-revision=$revision 回滚

 

可以通过yaml文件创建configmap,也可以通过指令直接创建configmap  详细的可以通过看 kubectl create configmap --help 。

 

 

报错:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

 

 

 出现这个问题的原因是kubectl命令需要使用kubernetes-admin来运行

解决方法:

1. 将主节点(master节点)中的【/etc/kubernetes/admin.conf】文件拷贝到从节点相同目录下:

2. 配置环境变量:echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

3. source~/.bash_profile 立即生效

 

 

禁止调度任务到node节点

kubectl cordon $node_name

kubectl uncordon $node_name

 

#污点使用 node打上污点(可以想象成一个标签),pod如果不定义容忍这个污点,那么pod就不会被调度器分配到这个node

kubectl taint nodes node1 key=value:NoSchedule

kubectl taint nodes node1 key=value:NoExecute

kubectl taint nodes node1 key=value:PreferNoSchedule

 

NoSchedule: node添加这个effecf类型污点,新的不能容忍的pod不能再调度过来,但是老的运行在node上不受影响

NoExecute:node添加这个effecf类型污点,新的不能容忍的pod不能调度过来,老的pod也会被驱逐

PreferNoSchedule:pod会尝试将pod分配到该节点

#删除污点

kubectl taint nodes node1 key:NoSchedule-

kubectl taint nodes node1 key:NoExecute-

 

posted @ 2021-02-09 15:21  czz是我  阅读(72)  评论(0编辑  收藏  举报