Kubernetes Ingress NGINX 控制器外部 IP <pending>
Kubernetes Ingress NGINX Controller EXTERNAL-IP <pending>
我正在按照 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 服务似乎有问题。已经超过1h了,EXTERNAL-IP还是<pending>
状态:
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
我如何从这里进步?这是我的提供商的问题吗?
我的提供商 Oktawave 回复说,具有 2 个端口的 LoadBalancer 需要额外的注释:
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
---
(...)
我正在按照 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 服务似乎有问题。已经超过1h了,EXTERNAL-IP还是<pending>
状态:
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
我如何从这里进步?这是我的提供商的问题吗?
我的提供商 Oktawave 回复说,具有 2 个端口的 LoadBalancer 需要额外的注释:
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
---
(...)