查看当前配置

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 区别

  1. cordon 停止调度 影响最小,只会将node调为SchedulingDisabled 之后再发创建pod,不会被调度到该节点 旧有的pod不会受到影响,仍正常对外提供服务 恢复调度
kubectl cordon node_name kubectl uncordon node_name 
  1. drain 驱逐节点 首先,驱逐node上的pod,其他节点重新创建 接着,将节点调为** SchedulingDisabled** 恢复调度
kubectl drain [node-name] --force --ignore-daemonsets --delete-local-data
kubectl uncordon node_name
  1. 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



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部