Nginx-ingress-controller

本教程将介绍nginx-ingress-controller:0.24.1的安装。

前置条件

  • 准备好一个kubernetes集群(本教程中kubernetes版本为1.8.6,docker版本为docker-engine-1.12.6)

安装

执行命令kubectl apply -f nginx-ingress-controller.yaml以进行安装。nginx-ingress-controller.yaml的内容如下。在DaemonSet中,--http-port--https-port--default-server-port--healthz-port可以自行修改。这里我们分别设置为8044310254,那么要确保Pod所在的主机上这三个端口没有被占用

上面的DaemonSet中,我们设置了nodeSelector。接下来我们给某个Node打上标签,Pod就可以调度到这个Node上来了

$ kubectl label node <node> nginx-ingress-controller="0241" --overwrite

待Pod状态为Running后,访问http://<nodeIP>:10254/healthz,如果返回ok,则该Pod已正常运行。

创建Ingress

接下来,我们来创建一个DepoymentServiceIngress,yaml文件如下:

to be continued

Reference

  • 0.24.1版本的参考链接

注意该文档中的有些链接可能已经失效

https://github.com/kubernetes/ingress-nginx/blob/nginx-0.24.1/docs/deploy/index.md
  • 最新版本的参考链接

注意该链接的内容一直在更新,所以隔段时间看到的内容可能会不一样

https://kubernetes.github.io/ingress-nginx/deploy/`
`https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md`
  • 覆盖模板/etc/nginx/template/nginx.tmpl

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/custom-template/
  • 覆盖模板中的默认参数

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

模板中的变量名(比如$cfg.MaxWorkerOpenFiles)与configmap中的key(比如为max_worker_open_files)的对应关系:

https://github.com/kubernetes/ingress-nginx/blob/master/internal/ingress/controller/config/config.go

Last updated

Was this helpful?