Kubernetes 常用命令

生成配置文件
kubeadm config print init-defaults ClusterConfiguration >kubeadm.conf
进入容器
kubectl exec -ti -n namespace podname /bin/bash
通过yaml文件创建
kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete)

kubectl apply -f xxx.yaml (创建+更新,可以重复使用)
查看服务以及使用的端口
kubectl get -n namespace svc
获取镜像列表
kubeadm config images list
通过yaml文件删除:
kubectl delete -f xxx.yaml
查看单个命名空间下的deployment

查看kube-system namespace下面的pod/svc/deployment 等等(-o wide 选项可以查看存在哪个对应的节点)

kubectl get pod/svc/deployment -n kube-system
查看所有命名空间下的deployment

查看所有namespace下面的pod/svc/deployment等等

kubectl get pod/svc/deployment --all-namcpaces 
重启pod

无法删除对应的应用,因为存在deployment/rc之类的副本控制器,删除pod也会重新拉起来

kubectl get pod -n kube-system
查看pod描述:
kubectl describe pod XXX -n kube-system
查看pod 日志

如果pod有多个容器需要加-c 容器名

kubectl logs xxx -n kube-system
删除应用

先确定是由说明创建的,再删除对应的kind:

kubectl delete deployment xxx -n kube-system
根据label删除:
kubectl delete pod -l app=flannel -n kube-system
扩容
kubectl scale deployment spark-worker-deployment --replicas=8
导出配置文件:
导出proxy
kubectl get ds -n kube-system -l k8s-app=kube-proxy -o yaml>kube-proxy-ds.yaml
导出kube-dns
kubectl get deployment -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-dp.yaml
kubectl get services -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-services.yaml
导出所有 configmap
kubectl get configmap -n kube-system -o wide -o yaml > configmap.yaml
复杂操作命令:
删除kube-system 下Evicted状态的所有pod:

kubectl get pods -n kube-system |grep Evicted| awk '{print $1}'|xargs kubectl delete pod  -n kube-system
重启kubelet服务
systemctl daemon-reload
systemctl restart kubelet
修改启动参数
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
查看集群信息
kubectl cluster-info
查看各组件信息
kubectl get componentstatuses
查看kubelet进程启动参数
ps -ef | grep kubelet
查看日志:
journalctl -u kubelet -f
设为不可调度状态:
kubectl cordon node1
将pod赶到其他节点:
kubectl drain node1
解除不可调度状态
kubectl uncordon node1
master运行pod
kubectl taint nodes master.k8s node-role.kubernetes.io/master-
master不运行pod
kubectl taint nodes master.k8s node-role.kubernetes.io/master=:NoSchedule
查看所有节点标签
kubectl get nodes --show-labels
为节点添加标签
kubectl label node <node name> <label>=<value>
kubectl label node k8s-test1 networkSpeed=high
为节点删除标签
kubectl label node <node name> <label>-
kueectl label node k8s-test1 role-
yaml文件使用标签
spec:
    template:
        ...
        spec:
        ...
        nodeSelector:
             networkSpeed: "high"
强制删除pod
kubectl delete pod NAME --grace-period=0 --force
获取master的join token
kubeadm token create --print-join-command

推荐阅读更多精彩内容