详见ingress-nginx Github安装指南

裸机安装


下载对应版本的所有yaml文件(仅针对tag:nginx-0.30.0):configmap.yamlmandatory.yamlnamespace.yamlrbac.yamlservice-nodeport.yamlwith-rbac.yaml,下载路径分别为:

1
2
3
4
5
6
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/namespace.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/configmap.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/rbac.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/with-rbac.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml

在下载过程中因为是github的缘故,所以可能部分资源下载很慢,在此我在gitee上导入了该仓库,下载即可,也可以访问我在gitee上的仓库,进行其他版本的安装部署:gitee上的ingress-nginx

1
2
3
4
5
6
wget https://gitee.com/LemonLzy/lemonlzy-ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml
wget https://gitee.com/LemonLzy/lemonlzy-ingress-nginx/raw/nginx-0.30.0/deploy/static/namespace.yaml
wget https://gitee.com/LemonLzy/lemonlzy-ingress-nginx/raw/nginx-0.30.0/deploy/static/configmap.yaml
wget https://gitee.com/LemonLzy/lemonlzy-ingress-nginx/raw/nginx-0.30.0/deploy/static/rbac.yaml
wget https://gitee.com/LemonLzy/lemonlzy-ingress-nginx/raw/nginx-0.30.0/deploy/static/with-rbac.yaml
wget https://gitee.com/LemonLzy/lemonlzy-ingress-nginx/raw/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml

部署当前目录下的所有应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node-0 ingress]# kubectl apply -f ./
namespace/ingress-nginx created
configmap/nginx-configuration created
configmap/tcp-services created
configmap/udp-services created
serviceaccount/nginx-ingress-serviceaccount created
clusterrole.rbac.authorization.k8s.io/nginx-ingress-clusterrole created
role.rbac.authorization.k8s.io/nginx-ingress-role created
rolebinding.rbac.authorization.k8s.io/nginx-ingress-role-nisa-binding created
clusterrolebinding.rbac.authorization.k8s.io/nginx-ingress-clusterrole-nisa-binding created
deployment.apps/nginx-ingress-controller created
limitrange/ingress-nginx created
namespace/ingress-nginx unchanged
serviceaccount/nginx-ingress-serviceaccount unchanged
clusterrole.rbac.authorization.k8s.io/nginx-ingress-clusterrole unchanged
role.rbac.authorization.k8s.io/nginx-ingress-role unchanged
rolebinding.rbac.authorization.k8s.io/nginx-ingress-role-nisa-binding unchanged
clusterrolebinding.rbac.authorization.k8s.io/nginx-ingress-clusterrole-nisa-binding unchanged
service/ingress-nginx created
deployment.apps/nginx-ingress-controller configured

验证安装的版本


为了验证正在运行的ingress controller的版本,所以在pod内执行nginx-ingress-controller version命令来查看已安装版本:

1
2
3
4
5
6
7
8
9
10
11
[root@node-0 ingress]# POD_NAMESPACE=ingress-nginx
[root@node-0 ingress]# POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}')
[root@node-0 ingress]# kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version
-------------------------------------------------------------------------------
NGINX Ingress controller
Release: 0.30.0
Build: git-7e65b90c4
Repository: https://github.com/kubernetes/ingress-nginx
nginx version: nginx/1.17.8

-------------------------------------------------------------------------------

使用helm进行安装


NGINX Ingress controller can be installed via Helm using the chart stable/nginx-ingress from the official charts repository. To install the chart with the release name my-nginx:

1
helm install my-nginx stable/nginx-ingress

If the kubernetes cluster has RBAC enabled, then run:

1
helm install my-nginx stable/nginx-ingress --set rbac.create=true

If you are using Helm 2 then specify release name using –name flag

1
helm install stable/nginx-ingress --name my-nginx

or

1
helm install stable/nginx-ingress --name my-nginx --set rbac.create=true

Detect installed version:

1
2
POD_NAME=$(kubectl get pods -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}')
kubectl exec -it $POD_NAME -- /nginx-ingress-controller --version

Ingress-nginx 部署使用