RingLinkRingLink
ContainersKubernetes

暴露 Kubernetes 集群工作负载

使用 RingLink Kubernetes Operator 将集群中的工作负载暴露到 RingLink 网络。

要开始使用,定义一个 type: LoadBalancerService,并将 loadBalancerClass 设置为 ringlink。 这使您的服务可以通过 RingLink 访问。

先决条件

暴露 Kubernetes Service

要通过 RingLink 暴露 Kubernetes Service,请按照以下步骤操作:

spec.type 设置为 LoadBalancer

spec.loadBalancerClass 设置为 ringlink

添加注解 networking.ring.link/load-balancer-type,值为 internal

设置完成后,Service 将显示来自您 RingLink 网络的 IP 地址。

使用以下命令检查状态:

kubectl get service <service-name>

您还应该在 RingLink 控制面板的 网络 标签下看到一个新设备。

示例配置:

apiVersion: v1
kind: Service
metadata:
  name: ringlink-lb
  annotations:
    networking.ring.link/load-balancer-type: "internal"
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   172.29.0.108   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: "internal"
spec:
  type: LoadBalancer
  loadBalancerClass: ringlink
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80

相关资源