k8s常用命令

alias k=kubectl

操作kubeconfig

# 查看context
k config get-contexts
# 切换context
k config use-context contextName
# 使用context访问
k --context=contextName get pod

操作k8s资源

# 设置节点标签
k label node nodeName key=value --overwrite
# 设置节点污点
k taint node nodeName key=value:NoSchedule
# 删除节点污点
k taint node nodeName key=value:NoSchedule-
# 设置节点不可调度
k cordon nodeName
# 更新pod镜像
k set image deploy/deployName containerName=imageName -n yourNamespace
# 设置实例数量
k scale deploy/deployName --replicas=targetReplicas -n yourNamespace
# 驱逐节点上pod
k drain nodeName --ignore-daemonsets
# 查看k8s资源信息,APIVERSION值是apigroup/version格式
k api-resources -owide

containerd

# nerdctl是类似于docker的命令行工具,推荐使用
# 拷贝容器文件到宿主机上
nerdctl cp [容器id]:xxx xxx
# 拷贝宿主机上文件到容器
nerdctl cp xxx [容器id]:xxx
# 删除没有容器关联的镜像
nerdctl image prune --all
# 根据podName查询业务容器
crictl ps | grep [podName]
# 查看业务容器详情
crictl inspect [containerId]
# 查看pause容器列表
ctr -n k8s.io c ls | grep "pause:"
# 查看pause容器详情
ctr -n k8s.io c info [完整containerId]
# 根据podName查找pause容器进程号
podName=[xxx]
for pauseId in $(ctr -n k8s.io c ls | grep "pause:" | awk '{print $1}')
do
pauseContainerId=`ctr -n k8s.io c info $pauseId | jq --arg pod "$podName" 'select(.Labels."io.kubernetes.pod.name" == $pod)' | jq -r '.ID'`
if [[ -n ${pauseContainerId} ]]; then
ctr -n k8s.io task ls | grep ${pauseContainerId} | awk '{print $2}'
fi
done

docker

# 查看docker容器映射到宿主机上的端口,箭头左边是主机映射端口,箭头右边是容器开放端口。
docker ps --format "table {{.Names}}\t{{.Ports}}"

posted on   王景迁  阅读(47)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2023-05-21 k8s污点和容忍
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示