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-