RingLinkRingLink
ContainersKubernetes

将 Kubernetes 集群工作负载暴露到公共互联网

使用 RingLink Kubernetes Operator 将集群中的工作负载暴露到公共互联网。

要开始使用,定义一个 type: LoadBalancerService,并将 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悉尼

相关资源