文章目录
部署 ingress-nginx
方式一:Helm 3 安装(需要网络可访问 us.gcr.io)
helm 使用的镜像是
us.gcr.io/k8s-artifacts-prod/ingress-nginx/controller
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx
方式二:YAML 直接部署(非正式环境比较方便)
官方提供的 YAML 如下,其中使用了 us.gcr.io
的镜像,仍然需要网络支持。
https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/cloud/deploy.yaml
此处提供本人环境部署所使用的文件,进行了以下调整(更适用于个人环境):
- 调整 image 为 docker.io 上的 image
- 调整 LoadBalancer 为 NodePort(LoadBalancer 适用于 GKE 等环境)
- 调整 ingress-nginx-controller 为 DaemonSet 并通过 hostPort 暴露 80, 443(本人环境有内网 DNS,直接通过 ingress 访问服务很方便)
https://wuweijie.oss-cn-shenzhen.aliyuncs.com/kubernetes/ingress-nginx/v0.34.1/deploy.yaml
正式用途环境不建议使用本人所调整的文件。
快速部署:
kubectl apply -f https://wuweijie.oss-cn-shenzhen.aliyuncs.com/kubernetes/ingress-nginx/v0.34.1/deploy.yaml
由于直接使用了 DaemonSet + HostPort 的方式,可以直接访问到 ingress。
通过 ingress 暴露 Rancher 服务
在之前的文章 在已有的 Kubernetes 集群上搭建 Rancher 中通过 Helm 的方式安装了 Rancher,Helm 自动添加了 ingress。
kubectl get ingress -ncattle-system
内网 DNS 也配置了域名 rancher.local.wwj.icu
的解析,于是可以直接通过内网域名直接访问 Rancher。