arkade:将服务设置为 LoadBalancer
arkade: set up service as a LoadBalancer
如何实现 arkade 将创建 type: LoadBalancer
而不是 type: ClusterIP
的服务?
我在部署我的私人 docker-registry
时偶然发现了这个要求。从命令行登录、推送和拉取图像,一切运行良好,但一旦我想使用该注册表,我需要一个参考点,我在部署定义中将其声明为图像:
...
containers:
- name: pairstorer
image: 192.168.x.x:5000/myimage:1.0.0
ports:
- containerPort: 55555
...
如果我使用 arkade install docker-registry
安装注册表,除了 kubectl edit service docker-registry
并自行添加外,我看不到任何获取外部 IP 的选项。
如果您只想将 Service
类型从 ClusterIP
更改为 LoadBalancer
,您需要覆盖 docker-registry
Helm Chart 的默认值。
Arkade 使用 stable/docker-registry
Helm 图表安装 docker-registry
并且您可以找到默认值 here.
您需要将 service.type=ClusterIP
更改为 service.type=LoadBalancer
(此外,您可能需要编辑更多值,例如默认端口号 5000
):
$ arkade install docker-registry --set service.type=LoadBalancer
要更改端口,请在上面的命令中添加 --set service.port=<PORT_NUMBER>
。
我们可以检查 docker-registry
Service
:
的类型
$ kubectl get svc docker-registry
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
docker-registry LoadBalancer 10.0.14.107 <PUBLIC_IP> 5000:32665/TCP 29m
此外,您可能对 tutorial 中描述的启用 TLS 的 Docker 注册表感兴趣。我推荐你使用这种方法。
如何实现 arkade 将创建 type: LoadBalancer
而不是 type: ClusterIP
的服务?
我在部署我的私人 docker-registry
时偶然发现了这个要求。从命令行登录、推送和拉取图像,一切运行良好,但一旦我想使用该注册表,我需要一个参考点,我在部署定义中将其声明为图像:
...
containers:
- name: pairstorer
image: 192.168.x.x:5000/myimage:1.0.0
ports:
- containerPort: 55555
...
如果我使用 arkade install docker-registry
安装注册表,除了 kubectl edit service docker-registry
并自行添加外,我看不到任何获取外部 IP 的选项。
如果您只想将 Service
类型从 ClusterIP
更改为 LoadBalancer
,您需要覆盖 docker-registry
Helm Chart 的默认值。
Arkade 使用 stable/docker-registry
Helm 图表安装 docker-registry
并且您可以找到默认值 here.
您需要将 service.type=ClusterIP
更改为 service.type=LoadBalancer
(此外,您可能需要编辑更多值,例如默认端口号 5000
):
$ arkade install docker-registry --set service.type=LoadBalancer
要更改端口,请在上面的命令中添加 --set service.port=<PORT_NUMBER>
。
我们可以检查 docker-registry
Service
:
$ kubectl get svc docker-registry
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
docker-registry LoadBalancer 10.0.14.107 <PUBLIC_IP> 5000:32665/TCP 29m
此外,您可能对 tutorial 中描述的启用 TLS 的 Docker 注册表感兴趣。我推荐你使用这种方法。