nginx controller部署指南
1、进入master机器执行:git clone https://github.com/kubernetes/ingress-nginx.git
3、cd ./ingress-nginx/deploy/static
4、执行
vim with-rbac.yaml
增加 hostNetwork: true,记得别放错位置。
template:
metadata:
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
annotations:
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
spec:
# wait up to five minutes for the drain of connections
terminationGracePeriodSeconds: 300
serviceAccountName: nginx-ingress-serviceaccount
hostNetwork: true #在这个地方加入
nodeSelector:
kubernetes.io/os: linux
5、执行
kubectl apply -f namespace.yaml
kubectl apply -f with-rbac.yaml #注意image版本为0.28.0
kubectl apply -f configmap.yaml
kubectl apply -f rbac.yaml
以上所有的命名空间默认为:ingress-nginx,也可以自己修改成自己的命名空间。
6、执行:
kubectl create rolebinding ingress-nginx-admin-binding --clusterrole=admin --user=system:serviceaccount:ingress-nginx:nginx-ingress-serviceaccount --namespace=XXXX
其中XXXX为命名空间的名称,若存在多个命名空间则可以先执行:
kubectl get ns;
把得到的命名空间名称作为XXXX的输入。==记得一定要执行这个要不然会出现无法获取命名空间下的各种资源的认证错误==。
7、新建服务:





8、若要访问自己的服务可以在发布服务的命名空间下 新建服务和应用路由。比如:
- 新建服务 参照第7步中新建自己的发布的应用的“服务”
- 新建应用路由:

- 配置域名和主机,因为 k8s的ingress只认域名

比如我配置的nacos,则访问的时候就会如下:
