ContainersKubernetes
将 Kubernetes 集群工作负载暴露到公共互联网
使用 RingLink Kubernetes Operator 将集群中的工作负载暴露到公共互联网。
要开始使用,定义一个 type: LoadBalancer
的 Service
,并将 loadBalancerClass
设置为 ringlink
。
先决条件
暴露 Kubernetes Service
要将 Kubernetes Service
暴露到公共互联网,请按照以下步骤操作:
将 spec.type
设置为 LoadBalancer
。
将 spec.loadBalancerClass
设置为 ringlink
。
添加注解 networking.ring.link/load-balancer-type
,值为 external
。
添加注解 networking.ring.link/load-balancer-zone
,值为 us-west
,以在美国发布您的服务。
设置完成后,Service
将显示一个可通过公共互联网访问的 DNS 名称。
使用以下命令检查状态:
kubectl get service <service-name>
您还应该在 RingLink 控制面板的 网络 标签下看到一个新设备。
示例配置:
apiVersion: v1
kind: Service
metadata:
name: ringlink-lb
annotations:
networking.ring.link/load-balancer-type: "external"
networking.ring.link/load-balancer-zone: "lax27-a"
spec:
type: LoadBalancer
loadBalancerClass: ringlink
selector:
app: nginx
ports:
- protocol: TCP
port: 80
期望输出:
root@localhost:~# kubectl get svc ringlink-lb
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ringlink-lb LoadBalancer 10.43.29.231 right-neglect.elb.com 80:31088/TCP 9s
将 Service
暴露到特定网络
如果您使用多个 RingLink 网络,可以将 Service
绑定到特定网络:
为目标网络创建 RingLinkConfiguration
:
apiVersion: ring.link/v1
kind: RingLinkConfiguration
metadata:
name: ringlink-08132e98
spec:
network: 08132e98
secretName: ringlink-token
为 Service
添加 networking.ring.link/config
注解:
apiVersion: v1
kind: Service
metadata:
name: ringlink-lb
annotations:
networking.ring.link/config: "ringlink-08132e98"
networking.ring.link/load-balancer-type: "external"
networking.ring.link/load-balancer-zone: "lax27-a"
spec:
type: LoadBalancer
loadBalancerClass: ringlink
selector:
app: nginx
ports:
- protocol: TCP
port: 80
自定义发布区域
如果您想将服务发布到其他区域,请将注解 networking.ring.link/load-balancer-zone
更改为您想要的区域。
可用区域如下:
区域代码 | 位置 |
---|---|
hkg01-a | 香港 |
sea01-a | 西雅图 |
tyo05-a | 东京 |
can01-a | 广州 |
lax27-a | 洛杉矶 |
fra27-a | 法兰克福 |
iad27-a | 阿什本 |
sha03-a | 上海 |
syd27-a | 悉尼 |