k8s常用命令



kubectl get –help yum remove -y kubelet kubeadm kubectl kubeadm reset -f #查看K8S版本kubeadm version kubectl version –client kubelet –version kubectl get pods –all-namespaces //pod的详细信息 kubectl get pod -n kube-system -o wide kubectl get sc -n kuboard kubectl logs -n kube-system kube-proxy-77rxc openssl x509 -noout -text -in apiserver.crt kubectl -n kube-system get cm kubeadm-config -o yaml #drain 驱逐节点 首先,驱逐node上的pod,其他节点重新创建 接着,将节点调为** SchedulingDisabled** –force 当一些pod不是经 ReplicationController, ReplicaSet, Job, DaemonSet 或者 StatefulSet 管理的时 候 就需要用–force来强制执行 (例如:kube-proxy) –ignore-daemonsets 无视DaemonSet管理下的Pod –delete-local-data 如果有mount local volumn的pod,会强制杀掉该pod并把料清除掉 另外如果跟本身的配置讯息有冲突时,drain就不会执行 kubectl drain k8s-node02 –delete-local-data –force –ignore-daemonsets –force kubectl delete k8s-node02 cordon 停止调度 影响最小,只会将node调为SchedulingDisabled

之后再发创建pod,不会被调度到该节点 旧有的pod不会受到影响,仍正常对外提供服务 恢复调度 kubectl uncordon node_name systemctl status docker systemctl status kubelet systemctl start kubelet systemctl status kubelet -l journalctl -xefu kubelet kubectl describe node zepc-jh-sjzljk #use -l to show in full systemctl restart kubelet #net.ipv4.ip_forward设置为1 sysctl -w net.ipv4.ip_forward=1 #网卡操作 ifconfig cni0 down ip link delete cni0 #路由列表 route ethtool -K flannel.1 tx-checksum-ip-generic off 归因:flannel网络设置将发送端的checksum打开了,但是flannel想利用了Checksum offloading的机制, 自己不计算checksum, 想留给网卡硬件来计算,这样的目的是不消耗CPU,利用网卡硬件分担CPU消耗,这原本是没问题的,但是 flannel下层还有个ens33, 这个ens33才是真的NIC,但是对ens33来说,从flannel发过来的是属于报文,ens33是否会对上层协议报文进 行校验,然后将值填写 到udp层报文内容去呢?这个我感觉不会,如果会的话,还要再了解下flannel的虚拟网络及硬件网卡之间的 offloadinig机制。 总结:经过分析抓包,对k8s的网络架构有了更深入的了解。对于各层协议及各网卡处理的封包、拆包加强了一 定认识。 #报错权限问题 #Error from server (Forbidden): pods is forbidden: User “system:serviceaccount:gitlab- sjfw:default” cannot list resource “pods” in API group "" in the namespace “dataframework” kubectl create clusterrolebinding gitlab-sjfw:default–clusterrole=cluster-admin – group=system:serviceaccounts –namespace=dataframework

#获取pod的yaml kubectl get pod kuboard-v3-56b4b954c9-52cbs -n kuboard -o yaml kubectl get pod kuboard-v3-56b4b954c9-52cbs -n kuboard -o yaml > kuboard-v3.yaml #重启pod kubectl replace –force -f kuboard-v3.yaml