1.kubectl get pod -o wide
查看pod信息,在哪个节点运行。
然后转到对应节点,可以使用docker ps -a |grep pod名字 查看进程信息
curl 可访问pod的ip(因为是扁平网络,但是我的master不能,只能用node,弹幕也很多人有类似情况)
ip/hostname.html 可返回pod名称
2. 扩容(运行多个相同pod)
kubectl run pod名 --image=镜像名 --replicas=1(使用这个参数,deployment才能被get到)
kubectl get deployment
deployment会链接RS,可以用kubectl get rs 查看rs
nginx-dep-654df6855f(第三列称为hash随机值)
deployment的作用:
- 创建指定数量的pod
- 检查pod健康状态和数量
扩容:kubectl scale --replicas(期望值、副本数量)=3 deployment/pod名字
带来的新问题,访问三个副本
新的解决方法,通过svc
kubectl expose deployment (指定deployment名称,例nginx-dep,通过kubectl get deployment查看) --port=80原端口 想要访问到哪里--target-port=8000(容器内部的8000)
node上kubectl get svc
然后curl ip:端口,这次node也不能访问了(可能原因,master和node的cni0不是一个段)
ipvsadm -Ln |grep ip地址 看当前ip有没有
外部访问方式
kubectl edit svc 名
修改type 将cluster改为nodeport
再查看svc 在所有节点 都暴露这个端口,可以进行访问,
192.168.....:新端口
3. docker login 加私有仓库地址
登录私有仓库,后续推镜像,先tag
docker tag 原镜像名 私有仓库地址/镜像名