查看当前配置
kubectl config view
切换上下文
kubectl config use-context internal
查看当前上下文
kubectl config get-contexts
查看 k8s 版本信息
kubectl api-versions
查看 kubectl 与 api-server 交互细节(-v 加查看级别)
kubectl get pod -l app=hotwheel-admin -v 8
获取进程ID
docker inspect -f {{.State.Pid}} podid
登录容器
kubectl exec -it <pod-name> -c <container-name> -- bash
根据容器 IP 查询
kubectl get pod -o wide | grep 172.20.1.27
格式化输出
kubectl get pod -o
kubectl get pods --all-namespaces --field-selector spec.=true # 根据名字排序 kubectl get pods --all-namespaces --sort-by=.metadata.name
kubectl get pods --all-namespaces --field-selector=spec.replicas=2 # 查看某个节点上面的pod kubectl get pods --all-namespaces -A --field-selector=spec.nodeName=10.94.0.62
批量删除 pod
查找所有要删除的 pod
kubectl get pod -n gitlab-runner | grep runner- | awk '{print $1}' kubectl get pod -n gitlab-runner | grep runner- | awk '{print $1}' | xargs kubectl delete pod -n gitlab-runner
kubectl get pod --all-namespaces -o json |grep hostnetwork
批量清除被驱逐的 pod
kubectl get pods | grep Evicted | awk '{print $1}' | xargs kubectl delete pod
批量把 pod 副本置为 0
kubectl get deployment -n default | awk '{cmd="kubectl scale --replicas=0 deployment "$1; system(cmd);}'
批量打印 pod 信息
kubectl get pod -A | awk 'NR>1 {cmd="kubectl describe pod "$2" -n "$1" >> podinfo.log"; system(cmd);}'
给节点打标签
kubectl label node 10.88.156.68 failure-domain.beta.kubernetes.io/zone=cn-north-4a
给命名空间批量打标签
kubectl get ns | awk 'NR>1 {cmd ="kubectl label ns "$1 " skywalking-admission-hook=enabled";system(cmd);}'
查看某个节点的 pod 数量
kubectl get pods --all-namespaces --field-selector spec.nodeName=10.94.2.249 | wc -l
k8s命令对node调度 cordon,drain,delete 区别
- cordon 停止调度 影响最小,只会将node调为SchedulingDisabled 之后再发创建pod,不会被调度到该节点 旧有的pod不会受到影响,仍正常对外提供服务 恢复调度
kubectl cordon node_name kubectl uncordon node_name
- drain 驱逐节点 首先,驱逐node上的pod,其他节点重新创建 接着,将节点调为** SchedulingDisabled** 恢复调度
kubectl drain [node-name] --force --ignore-daemonsets --delete-local-data
kubectl uncordon node_name
- delete 删除节点 首先,驱逐node上的pod,其他节点重新创建 然后,从master节点删除该node,master对其不可见,失去对其控制,master不可对其恢复
恢复调度,需进入node节点,重启kubelet 基于node的自注册功能,节点重新恢复使用 systemctl restart kubelet
delete是一个比较粗暴的命令,它会将被删node上的pod直接驱逐,由其他node创建(针对replicaset),然后将被删节点从master管理范围内移除,master对其失去管理控制,若想使node重归麾下,必须在node节点重启kubelet
Kubernetes 对 API 访问提供了三种安全访问控制措施:认证、授权和 Admission Control。 1.认证解决用户是谁的问题, 2.授权解决用户能做什么的问题, 3.Admission Control 则是资源管理方面的作用。通过合理的权限管理,能够保证系统的安全可靠。
linux 安装
curl -LO https://dl.k8s.io/v1.16.1/kubernetes-client-linux-amd64.tar.gz
tar -zxvf kubernetes-client-linux-amd64.tar.gz
chmod +x ./kubernetes/client/bin/kubectl
sudo mv ./kubernetes/client/bin/kubectl /usr/local/bin/kubectl
sudo ln -s /usr/local/bin/kubectl /usr/bin/kubectl 链接集群
mkdir -p $HOME/.kube
sudo mv admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
发表评论 取消回复