service 是 K8S 中对 Pod 的进一步抽象,是外部访问 Pod 的入口。如果把 K8S 集群想象成一个组织,那么 service 就是这个组织的接口人,为什么需要 service,这个留作后面的内容再讲,在这里你可以把它暂时理解成端口映射。
第五步:APP 的弹性伸缩为了满足高可用,Pod 可以自动扩容和缩容。默认情况下,Pod 只会运行一个副本,这是由 deployment 定义的,可以通过 kubectl get deployments 查看副本数,通过 kubectl scale deployments/app --replicas=num 增加或减少副本数。
比如,增加副本数到 4 个:
看到 Pod 数也增加到了 4 个。
减少副本数为 2 个:
看到两个副本显示 Terminating,表示正在中止,过段时间再看就只有两个了。
对于多副本的情况,访问 APP 会实现负载均衡,如下:
看到每次请求访问都落在不同的 Pod 上,这个功能是由 service 来完成的。
第六步:更新 APP当前 APP 使用的镜像版本是 v1,需要升级到 v2,执行如下命令:
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2看到升级过程是先中止之前的 4 个副本,再重开 4 个副本。
如果回退到 v1 版本,只用执行如下命令即可:
kubectl rollout undo deployments/kubernetes-bootcamp至此,我们已经通过官方这个 demo 体验了一把 K8S 的功能和使用方法,下面我会陆陆续续把自己学习 K8S 的笔记整理出来,分享给你,希望对你有帮助。如有可能,请随手转发分享一下,让更多的人也参与进来。
最后,还是继续送书,容器网络专家倪朋飞写的《K8S 指南》电子书,如有需要后台回复“K8S”(之前回复过就不用回复了)。如需加群学习回复“加群”。
更多干货欢迎大家关注公众号 CloudDeveloper(一个集云计算大小事的公众号) 查看: