本文集中记录k8s集群实践中遇到的问题以及一些小知识点。由于各人环境不同,限于经验,本文仅供参考。
注:本文会不定时更新。
知识篇
实验记录
自己实验一个简单的gin框架测试。完成,基于busybox,但添加了库。
configmap挂载目录,不成功。
secret能用base64解出文字,实际上如果使用?
外部loadbalancer能不能测试?如自建一个nginx?
yaml的下载镜像策略最好加上imagePullPolicy: IfNotPresent
,如果同一镜像,版本不同?
每个 pod 都有对应的根容器 pause(是每个pod,还是每个容器,待确认)。如果 pod 删除再创建,pod名称是新的,pause也是新的。如果pause还存在,可能会出错。
使用kubectl删除资源后,pod会退出,但docker ps -a
还能看到,过一段时间会消失,具体未测试。
杂项
kubectl create 可创建新资源。再次调用,会出错,资源已存在。
kubectl apply 可创建新资源(当资源不存在时),再次调用,会更新文件的值,如无更新,则不会改变。
如果create创建的资源,修改后,用apply,会有警告。
kubectl config view 查看当前集群信息。
kubectl get pod -w 可查看pod的实时状态
命名规则:
dns子域名:不超过253字符,只包括:小写字母,或-
,或.
,以字母开始和结束。
dns标签:同上,但不超过63字符。
可用nodeName或nodeSelector来指定调度的节点。
1 | spec: |
端口映射相关:(待实验)
1 | hostPort:主机映射,相当于docker run -p 8081:8080 |
k8s 与 docker 的一些操作关联:
1 | securityContext: |
问题篇
master主机IP改变
提示:
1 | Unable to connect to the server: dial tcp 172.18.18.10:6443: i/o timeout |
原因:机器更改网络,IP改了。
解决:参考网络,未解决