快速部署和測試ingress-nginx:1.9.6
點擊查看代碼
下載deploy文件
https://github.com/kubernetes/ingress-nginx/blob/controller-v1.9.6/deploy/static/provider/cloud/deploy.yaml
修改deploy文件:
有如下幾處可按需修改:
DaemonSet:修改 Deployment 為 DaemonSet,移除 strategy 字段;
hostNetwork:使用宿主機的網絡;
nodeSelector:添加標簽選擇器(可選);
將名為 ingress-nginx-controller 的 Service 類型改為 ClusterIP(要刪除 externalTrafficPolicy 字段);
點擊查看代碼
apiVersion: apps/v1
kind: DaemonSet # 這里把 Deployment 改成 DaemonSet
metadata:
labels:
...
name: ingress-nginx-controller
namespace: ingress-nginx
spec:
minReadySeconds: 0
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/name: ingress-nginx
template:
metadata:
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/name: ingress-nginx
spec:
hostNetwork: true #這里加一句
# 移除 strategy
nodeSelector: # 可選
kubernetes.io/os: linux
hasIngress: "true" # 在存在這個標簽的 node 上部署
containers:
- args:
...
點擊查看代碼
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nginx
labels:
app: nginx
spec:
serviceName: nginx
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: Always
ports:
- containerPort: 80
name: port
---
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
app: nginx
點擊查看代碼
編寫ingress-demo.yml
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: nginx.text.cn
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: nginx
port:
number: 80
kubectl apply -f .
測試

忘記放固定端口的文件了:
service-nodeport.yaml
點擊查看代碼
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
type: NodePort
ports:
- name: http
port: 80
targetPort: 80
nodePort: 31188
protocol: TCP
- name: https
port: 443
targetPort: 443
nodePort: 30443
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
浙公網安備 33010602011771號