k8s踩坑历险记
主题
延续上一期的内容,完成了主体的安装,暂时仅仅是master节点的处理,这期主要说说后续发布部署上遇到的一些问题以及解决的办法。
Helm安装部署(开始之前介绍个前置工具)
Helm 帮助您管理 Kubernetes 应用—— Helm Chart,即使是最复杂的 Kubernetes 应用程序,都可以帮助您定义,安装和升级,Helm Chart 易于创建、发版、分享和发布
# 适用Mac intel芯片
wget "http://sreworks.oss-cn-beijing.aliyuncs.com/bin/helm-darwin-amd64" -O helm
# 适用Linux intel芯片
# wget https://sreworks.oss-cn-beijing.aliyuncs.com/bin/helm-linux-am64 -O helm
chmod +x ./helm
mv ./helm /usr/local/bin/
docker一些处理技巧
# 查看docker 镜像
docker images
# 根据镜像ID 移除镜像,支持多镜像移除如: docker image rm a b c
docker image rm [image]
清理镜像
在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:
docker image prune
子命令:
- -a, --all: 删除所有没有用的镜像,而不仅仅是临时文件
- -f, --force:强制删除镜像文件,无需弹出提示确认
容器快清
查看运行容器
docker ps
查看所有容器
docker ps -a
进入容器
其中字符串为容器ID:
docker exec -it d27bd3008ad9 /bin/bash
- 停用全部运行中的容器:
docker stop $(docker ps -q)
- 删除全部容器:
docker rm $(docker ps -aq)
- 一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
k8s pod
注意事项
带有进程监控与过程状态,因此查询pod状态时,有些情况下等一下就正常,超过一定时间段就会有问题,下面是一些生命周期
当一个 Pod 被删除时,执行一些 kubectl 命令会展示这个 Pod 的状态为
Terminating
(终止)。 这个 Terminating
状态并不是 Pod 阶段之一。 Pod 被赋予一个可以体面终止的期限,默认为 30 秒
子命令查看机制
kubectl describe -h
# 查看指定命名空间下的启动情况
kubectl -n 命名空间 describe pods
主机master模式部署问题
在单机版k8s上部署应用后,发现Pod的状态一直处于pending状态
kubectl describe pods
启动问题:
# 0/1 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }
原因:当创建单机版的 k8s 时,这个时候 master 节点是默认不允许调度 pod 。
解决:执行命令:
kubectl taint nodes --all node-role.kubernetes.io/master-
将 master 标记为可调度即可
总结
经过反反复复的卸载重装,重启,顺带把命令都一遍一遍的尝试,也算是都记住了,虽然是不情愿的,但基本排查问题应该是够用了的,终于经过长久的等待,虽然折腾的够呛,但提示成功的瞬间,一切的折腾都有了归宿,继续卷吧老铁们,生命不息,学习不止!!!
转载自:https://juejin.cn/post/7245206582002516026