如何实现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
的默认值。
Arkade使用stable/docker-registry
Helm图表来安装docker-registry
,你可以在这里找到默认值。
您需要将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
此外,您可能对本教程中描述的启用tls的Docker注册表感兴趣。我建议您使用这种方法。