[英]kubernetes ingress controller with cluster ip service and default nginx not working as expected
[英]Kubernetes Ingress cannot fetch cluster ip of service
我用 calico 和 haproxy 設置了一個 kubernetes 單節點主平面。 現在每當我要創建一個 Ingress 時,地址保持為空並且服務器返回 503 錯誤。
下面顯示了我的 kubernetes 部署。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: wordpress
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
ports:
- port: 8080
targetPort: 8080
protocol: TCP
selector:
app: nginx
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: web-ingress
spec:
rules:
- host: wordpress.example.org
http:
paths:
- path: /
backend:
serviceName: nginx-service
servicePort: 8080
這是我從 kubernetes cl 的輸出。
NAME HOSTS ADDRESS PORTS AGE
ingress.extensions/web-ingress wordpress.example.org 80 35s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10h
service/nginx-service ClusterIP 10.97.189.233 <none> 8080/TCP 35s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.extensions/nginx-deployment 1/1 1 1 35s
NAME READY STATUS RESTARTS AGE
pod/nginx-deployment-7798df5dd5-gnwf2 1/1 Running 0 35s
NAME ENDPOINTS AGE
endpoints/kubernetes 164.68.103.199:6443 10h
endpoints/nginx-service 192.168.104.150:8080 36s
Pascals-MBP-c8a4:api-gateway pascal$
我希望入口將接收服務的集群 ip 並偵聽給定的主機 uri 並提供除給定 503 錯誤之外的其他信息。
// 編輯:它是一個獨立節點,不是桌面版本或 minikube 安裝!
這個鏡像的容器端口是80,我暴露的是8080。
我已轉載您的問題並進行了一些更改,現在可以正常使用了。 因此,首先將服務類型更改為NodePort,然后等待大約2或3分鍾,直到出現Ingress的IP地址。
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx
name: nginx-service
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
protocol: TCP
selector:
app: nginx
現在,如果我輸入$ kubectl get ingress
:
NAME HOSTS ADDRESS PORTS AGE
web-ingress wordpress.example.org 34.98.73.0 80 66s
如果您想了解有關Ingress的更多信息,請參閱分步教程 。 希望對您有幫助。
服務默認類型是 ClusterIP,但它僅用於集群內部通信。 對於外部流量,您應該切換到 NodePort 類型。 例如:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
run: nginx
如果我沒記錯的話,nginx alb 控制器允許使用 ClusterIP(或 LoadBalancer)。
更多信息: https : //kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.