0

我正在尝试使用 metallb 负载均衡器和 Nginx 入口在我家制作 kubernetes 环境,目前我正在使用 cloudflare 作为 DNS 并将通配符域指向我家的 IP

我已经看到,在某些云提供商中,负载均衡器会自动将主机名/域名分配给服务,这将显示在 status.loadbalancer.ingress[0].hostname 具有主机名的负载均衡器状态示例

我的观点是,是否有可能做到这一点以及如何做到这一点。

这是我目前尝试过的 NGINX 入口控制器配置,service.beta.kubernetes.io/do-loadbalancer-name: my-domain-name但似乎还没有希望。

apiVersion: v1
kind: Service
metadata:
  annotations:
    field.cattle.io/publicEndpoints: '[{"addresses":["192.168.50.230"],"port":80,"protocol":"TCP","serviceName":"ingress-nginx:ingress-nginx-controller","allNodes":false},{"addresses":["192.168.50.230"],"port":443,"protocol":"TCP","serviceName":"ingress-nginx:ingress-nginx-controller","allNodes":false}]'
    meta.helm.sh/release-name: ingress-nginx
    meta.helm.sh/release-namespace: ingress-nginx
    metallb.universe.tf/address-pool: external
    service.beta.kubernetes.io/do-loadbalancer-name: my-domain-name
  creationTimestamp: "2022-02-23T08:24:09Z"
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.1.1
    helm.sh/chart: ingress-nginx-4.0.17
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:meta.helm.sh/release-name: {}
          f:meta.helm.sh/release-namespace: {}
        f:labels:
          .: {}
          f:app.kubernetes.io/component: {}
          f:app.kubernetes.io/instance: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/name: {}
          f:app.kubernetes.io/part-of: {}
          f:app.kubernetes.io/version: {}
          f:helm.sh/chart: {}
      f:spec:
        f:allocateLoadBalancerNodePorts: {}
        f:externalTrafficPolicy: {}
        f:internalTrafficPolicy: {}
        f:ipFamilies: {}
        f:ipFamilyPolicy: {}
        f:ports:
          .: {}
          k:{"port":80,"protocol":"TCP"}:
            .: {}
            f:appProtocol: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":443,"protocol":"TCP"}:
            .: {}
            f:appProtocol: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
        f:selector: {}
        f:sessionAffinity: {}
        f:type: {}
    manager: helm
    operation: Update
    time: "2022-02-23T08:24:09Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:loadBalancer:
          f:ingress: {}
    manager: controller
    operation: Update
    subresource: status
    time: "2022-02-23T08:24:10Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          f:metallb.universe.tf/address-pool: {}
    manager: kubectl-edit
    operation: Update
    time: "2022-02-23T08:31:25Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          f:field.cattle.io/publicEndpoints: {}
          f:service.beta.kubernetes.io/do-loadbalancer-name: {}
    manager: rancher
    operation: Update
    time: "2022-02-23T08:35:58Z"
  name: ingress-nginx-controller
  namespace: ingress-nginx
  resourceVersion: "1034624"
  uid: 2c5c241c-c295-45bf-8192-91417486b4a5
spec:
  allocateLoadBalancerNodePorts: true
  clusterIP: 10.43.159.239
  clusterIPs:
  - 10.43.159.239
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - appProtocol: http
    name: http
    nodePort: 32481
    port: 80
    protocol: TCP
    targetPort: http
  - appProtocol: https
    name: https
    nodePort: 30398
    port: 443
    protocol: TCP
    targetPort: https
  selector:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 192.168.50.230 #sample IP

PS.我确实有到示例 IP 的外部 IP 路由

4

0 回答 0