4.4:什么是ReplicaSet?
我们将具有 5 个实例的微服务 A 部署到 Kubernetes 集群 。这意味着您有 5 个 pod 正在运行 。假设你杀死了一个豆荚 。Kubernetes 会自动识别这一点并创建一个替换 pod 。Kubernetes 监控您的 pod 的健康状况并替换不健康的 pod 。Kubernetes 如何做到这一点?
这是 ReplicaSet 的工作 。
ReplicaSet 确保指定数量的 pod 始终在运行 。在上面的例子中,一个 ReplicaSet 确保了微服务 A 的 5 个实例始终在运行 。
4.5:什么是部署?
如果一个 ReplicaSet 保证了特定数量的 pod,那么 Deployment 的作用是什么?
部署可确保您在发布微服务的新版本时具有灵活性 。
部署代表微服务的所有版本 。
目前,我们只有一个版本的微服务 。但是,您可以部署新版本 。比方说,我想在不停机的情况下部署微服务 V2 。
这就是部署的工作 。
当您部署现有微服务的新版本时,部署将为微服务 A 的 V2 创建一个新的 ReplicaSet 。
你将会有:
- 一个部署代表微服务 A
- 微服务A V1的一个ReplicaSet
- 微服务 A V2 的一个 ReplicaSet
部署英国
4.6:快速回顾 - 部署与副本集
kubectl create deployment microservice1 --image=microservice1:v1
为每个微服务创建一个部署 。Deployment 代表一个微服务(及其所有版本) 。部署管理新版本,确保零停机时间 。
副本集确保为特定微服务版本运行特定数量的 pod。即使其中一个 pod 被杀死,副本集也会启动一个新的 。
kubectl set image deployment microservice1 microservice1=microservice1:v2
当你部署一个 V2 的微服务时,会创建一个新的 ReplicaSet(V2 ReplicaSet) 。
部署根据配置的发布策略更新 V1 副本集和 V2 副本集 。
4.7: 什么是服务?
在 Kubernetes 中,每个 Pod 都有自己的 IP 地址 。在以下情况下,您如何确保外部用户不受影响:
- 吊舱出现故障并被替换或
- 部署了新版本的微服务,并且旧版本的所有现有 Pod 都被新版本的 Pod 替换
解决方案:创建一个服务 。
expose deployment name --type=LoadBalancer --port=80
服务使用稳定的 IP 地址将您的部署暴露给外部世界 。这可确保您的用户不会在 pod 上下移动时受到影响 。
服务分为三类:
- ClusterIP:在集群内部 IP 上公开服务 。用例:您希望您的微服务仅在集群内部可用(集群内通信) 。
- LoadBalancer:使用云提供商的负载均衡器向外部公开服务 。用例:您想为每个微服务创建单独的负载均衡器 。
- NodePort:在每个节点的 IP 上的静态端口(NodePort)上公开服务 。用例:您不想为每个微服务创建一个外部负载均衡器(您可以创建一个 Ingress 组件来对多个微服务进行负载均衡) 。
- 尝试 Kubernetes 游乐场
- 在其中一个云平台中创建一个 Kubernetes 集群并使用它(GKE 有一个免费层 。您可以尝试 AKS 和 EKS,但它们目前还不是免费层的一部分!) 。
推荐阅读
- 推荐八个不错的国外技术类网站
- 清明节和寒食节是一个节日吗-,寒食节和清明节有区别吗-
- 梦境中的自己是另外一个平行世界吗,梦境是平行世界中的另一个自己吗-
- 贾玲白凯南第一个相声,贾玲早年与白凯南相声-
- 包贝尔|B姓男星的瓜:曾同时交往7个女友,自称“哈尔滨吴彦祖”!
- 女人身上的3个部位最敏感 女生哪个部位最敏感
- 泰国明星女哪个最美,盘点泰国十大绝美人气女星-
- 如果世界上只剩这几个女人,假如世界上只剩一个女人-
- 漫威史上最强反派,漫威五大最强反派-
- 自学中医走出去追求医学梦想
