kubernetes - 服务的 Kubernetes 默认负载均衡器在本地运行?
问题描述
目前我有 3 个虚拟机(1 个主 kubernetes 节点和 2 个从节点)。
我想创建一个服务来封装我的容器的 3 个副本。
我很好奇默认情况下,在这个本地环境中,在创建服务时,kubernetes 默认提供负载均衡器,即使它没有在服务 yaml 文件中指定。它是否默认提供循环?
解决方案
如果您不在受支持的云提供商上,那么您几乎会坚持使用 NodePort 或 ClusterIP 来获取服务类型。我在尝试本地 kubernetes 环境时使用的一个项目是Metallb。Metallb 允许您在托管平台(即本地测试集群)之外运行 kubernetes 时使用 LoadBalancer 服务类型并将您的服务暴露在集群网络之外。
要使用 Metallb,您必须提供可在 pod 网络上使用的 IP 地址池。首先使用您的 pod 网络 IP 范围创建一个配置映射——
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.1.240-192.168.1.250
然后将该配置映射添加到您的集群。
kubectl apply -f metallb-config.yaml
最后将 metallb 控制器添加到您的集群中
kubectl apply -f https://raw.githubusercontent.com/google/metallb/v0.8.3/manifests/metallb.yaml
现在您应该可以公开您的服务了。
kubectl expose deployment name-of-deployment --type=LoadBalancer --name=name-of-service
推荐阅读
- apache-spark - 使用 Apache Kafka 进行流式分析
- php - 如何在 Amazon S3 存储桶上添加或创建 zip 文件?
- javascript - 如何设置javascript对象的私有成员
- tabs - 在 Bootstrap 自定义选项卡中更改点击事件
- assembly - qemu 和笔记本电脑引导之间的图形差异(自定义引导加载程序)
- android - 如何在 xamarin android 中以编程方式设置菜单项文本
- c# - 属性类中的 ASPNET CORE 依赖注入
- azure - 无法重新创建 Azure Maps(未找到)
- javascript - 使用日历库 codeigniter 在顶部显示 3 个月的日历,并在顶部显示上一个和下一个箭头
- angularjs - 从一个页面导航到另一个页面时如何显示消息