【问题标题】:Kubernetes Ingress NGINX Controller EXTERNAL-IP <pending>Kubernetes 入口 NGINX 控制器 EXTERNAL-IP <pending>
【发布时间】:2022-01-26 12:47:09
【问题描述】:

我正在遵循Quick start 的说明。我的集群上正在运行其他 LoadBalancer 服务。他们很好地暴露了 EXTERNAL-IP 值。 NGINX Ingress Controller 似乎是唯一有这个问题的。

我执行了第一个命令:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/cloud/deploy.yaml

我的 LoadBalancer 服务似乎存在问题。已经1小时多了,但是EXTERNAL-IP仍然处于&lt;pending&gt;状态:

kubectl get svc ingress-nginx-controller
NAME                       TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller   LoadBalancer   10.106.240.88   <pending>     80:31352/TCP,443:31801/TCP   32m

我如何从这里进步?这是我的提供商的问题吗?

【问题讨论】:

  • 这取决于您的集群类型。你在本地/(aws,gcp,azure....)/minikube 等。
  • 然后用他们开一张票...在某些提供商中,当您创建 LB 服务时,它会自动创建一个链接到您的 K8s 集群的云 LB...也许在 oktawave 中不一样
  • 正如我在问题的第一段中提到的,我的集群上运行着其他 LoadBalancer 服务。他们暴露了 EXTERNAL-IP 值就好了。
  • 我联系了提供商。事实证明,我需要为具有 2 个端口的 LoadBalancer 提供一些额外的注释。

标签: kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

我的提供商 Oktawave 回复说,对于具有 2 个端口的 LoadBalancers,需要额外的注释:

apiVersion: v1
kind: Service
metadata:
  name: wordpress-lb
  annotations:
    k44sServiceType: HTTP
    k44sSslEnabled: "True"
  labels:
    app: hello-wordpress
spec:
  ports:
  - port: 80
    name: http
    protocol: TCP
  - port: 443
    name: https
    protocol: TCP
  selector:
    app: hello-wordpress
  type: LoadBalancer

通过编辑YAML 以包含这些注释,我能够将EXTERNAL-IP 分配给ingress-nginx-controller

(...)
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    k44sServiceType: HTTP
    k44sSslEnabled: "True"
  labels:
    helm.sh/chart: ingress-nginx-4.0.10
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 1.1.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
  name: ingress-nginx-controller
  namespace: ingress-nginx
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  ipFamilyPolicy: SingleStack
  ipFamilies:
    - IPv4
  ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: http
      appProtocol: http
    - name: https
      port: 443
      protocol: TCP
      targetPort: https
      appProtocol: https
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller
---
(...)

【讨论】:

    猜你喜欢
    • 2018-10-29
    • 2020-04-09
    • 2020-12-05
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2022-08-24
    • 2020-07-13
    相关资源
    最近更新 更多