获取所有命名空间上的pod
kubectl get pod -o wide --all-namespaces
查看pod IP时使用
kubectl get services
查看dsecp-sso-server-w5tx2 日志
kubectl describe --namespace=default po dsecp-sso-server-w5tx2
通过yaml文件创建:
kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete)
kubectl apply -f xxx.yaml(创建+更新,可以重复使用)
通过yaml文件删除:
kubectl delete -f xxx.yaml
查看kube-system namespace下面的pod/svc/deployment 等等(-o wide 选项可以查看存在哪个对应的节点)
kubectl get pod/svc/deployment -n kube-system
查看所有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
重启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
k8s中的pod有几种状态?
答:Pending、Running、Succeeded、Failed、Unknown、evicted、PodScheduled、initialized、ready、Unschedulable、Terminating。
Pending:创建pod的请求已经被k8s接受,但是容器并没有启动成功,可能处于:写数据到etcd,调度、pull镜像,启动容器这四个阶段中的任何一个阶段,pending伴随的事件通常会有:ADDED、Modified这两个事件。
Running:pod已经绑定到node节点,并且所有的容器已经启动成功,或者至少有一个容器在运行,或者在重启中。
succeeded:pod中的所有的容器已经正常的自动退出,并且k8s永远不会自动启动这些容器,一般会是在部署job的时候会出现。
failed:pod中的所有容器已经终止,并且至少有一个容器已经终止失败(状态码非0退出或被系统停止)。
Unknown:由于某种原因,API无法获取pod的状态,通常是由于与pod的主机通信错误。
eviction:驱赶的意思,当节点出现异常,k8s会有对应的驱逐机制驱逐该节点上的pod,多见于资源不足时导致的驱赶。
PodScheduled:pod正处于调度中,刚开始调度的时候,host IP还没绑定上,持续调度后,有合适的节点就会绑定hostip,然后更新etcd数据。
initialized:pod中的所有初始化容器已经启动完毕。
Ready:pod中的容器可以提供服务了。
Unschedulable:pod不能被调度,没有合适的节点。
Terminating:pod被删除,处于优雅退出阶段。
最常见的11种kubectl资源类型
pods (po)
nodes(no)
deployments (deploy)
replicasets(rs)
daemonsets(ds)
statefulsets(sts)
jobs
cronjobs(cj)
services(svc)
persistentvolumes(pv)
persistentvolumeclaim (pvc)