likes
comments
collection
share

k8s踩坑历险记

作者站长头像
站长
· 阅读数 15

主题

延续上一期的内容,完成了主体的安装,暂时仅仅是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
  1. 停用全部运行中的容器:
docker stop $(docker ps -q)
  1. 删除全部容器:
docker rm $(docker ps -aq)
  1. 一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

k8s pod

注意事项

带有进程监控与过程状态,因此查询pod状态时,有些情况下等一下就正常,超过一定时间段就会有问题,下面是一些生命周期

k8s踩坑历险记 当一个 Pod 被删除时,执行一些 kubectl 命令会展示这个 Pod 的状态为 Terminating(终止)。 这个 Terminating 状态并不是 Pod 阶段之一。 Pod 被赋予一个可以体面终止的期限,默认为 30 秒

子命令查看机制

kubectl describe -h
# 查看指定命名空间下的启动情况
kubectl -n 命名空间  describe pods

k8s踩坑历险记

主机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 标记为可调度即可

总结

经过反反复复的卸载重装,重启,顺带把命令都一遍一遍的尝试,也算是都记住了,虽然是不情愿的,但基本排查问题应该是够用了的,终于经过长久的等待,虽然折腾的够呛,但提示成功的瞬间,一切的折腾都有了归宿,继续卷吧老铁们,生命不息,学习不止!!!