安装指南

先决条件和通用部署命令

注意:

  1. 默认配置从所有命名空间中监视Ingress对象。使用标志--watch-namespace将范围限制为特定命名空间。
  2. 如果多个Ingress为同一主机定义不同的路径,则ingress-controller将合并定义。
  3. 如果正在使用GKE,则需要使用以下命令将用户初始化为集群管理员。
kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin \
  --user $(gcloud config get-value account)

所有部署都需要强制执行以下命令

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

裸机部署

不同的云平台部署过程不同,可以参考这里

  1. 使用NodePort暴露Ingress-controller访问端口。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml
  1. 验证部署

检查ingress-controller是否已启动,请运行以下命令:

kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx --watch
  1. 查看已安装的版本

要检查处于运行状态的ingress-controller是哪个版本的,进入这个pod然后执行nginx-ingress-controller version命令。

POD_NAMESPACE=ingress-nginx
POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}')

kubectl exec -it $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version

使用Helm部署

从charts官方的仓库中使用这个chart,来安装ingress-controllermy-nginx作为实例名字。

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

# 如果kubernetes集群开启了RBAC,执行如下命令
helm install stable/nginx-ingress --name my-nginx --set rbac.create=true

# 检查安装的版本
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
上次修改: 14 April 2020