[英]how to deploy ingress method in kubernetes
我在雲中創建了兩台機器。 一個給領導者,一個給追隨者。
我已經為兩台機器安裝了 docker 和 kubeadm 以在 Kubernetes 中部署應用程序,並添加了 ingress-nginx controller。
該應用程序使用節點端口類型成功部署,並且能夠使用 IP 和端口號公開。
和 DNS
測試nginx.com
是為該 IP 創建的,因此我可以公開該應用程序:
測試nginx.com:3001
部署和服務的配置如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: tool-deployment
namespace: bot
labels:
app: tool
spec:
replicas: 1
selector:
matchLabels:
app: tool
template:
metadata:
labels:
app: tool
spec:
hostNetwork: true
restartPolicy: Always
containers:
- name: tool
image: myimage:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3001
---
apiVersion: v1
kind: Service
metadata:
name: tool-service
namespace: bot
spec:
type: NodePort
selector:
app: tool
ports:
- protocol: TCP
port: 3001
targetPort: 3001
nodePort: 32001
接下來,我嘗試將入口部署到服務,這樣我就可以在沒有端口的情況下公開應用程序。
下面給出了入口的 YAML 配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tool-ingress
namespace: bot
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: testnginx.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tool-service
port:
number: 32001
但是入口不起作用:
This page isn’t working
testnginx.com didn’t send any data.
ERR_EMPTY_RESPONSE
有沒有需要添加的配置? 如何實現入口方法?
首先,如果您想使用 ingress 公開您的應用程序,那么您應該使用 ClusterIP 服務。 那么你的清單文件應該是這樣的。
apiVersion: v1
kind: Service
metadata:
name: tool-service
namespace: bot
spec:
type: ClusterIP
selector:
app: tool
ports:
- protocol: TCP
port: 3001
targetPort: 3001
您還必須更改入口清單文件。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tool-ingress
namespace: bot
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: testnginx.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tool-service
port:
number: 3001
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.