设置 NGINX Ingress Controller

Rancher Desktop 在后台使用 K3s,而 K3s 又使用 Traefik 作为 Kubernetes 集群的默认 Ingress Controller。但是,某些用例可能需要或更适合使用 NGINX。以下示例步骤展示了如何使用 NGINX Ingress Controller 进行部署。

步骤

  1. Kubernetes Settings 页面取消选中 Enable Traefik 来禁用 Traefik。你可能需要退出并重新启动 Rancher Desktop 才能使更改生效。

  2. 通过 helmkubectl 部署 NGINX Ingress Controller:

  • helm
  • kubectl
  1. helm upgrade --install ingress-nginx ingress-nginx \
  2. --repo https://kubernetes.github.io/ingress-nginx \
  3. --namespace ingress-nginx --create-namespace
  1. kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.2/deploy/static/provider/cloud/deploy.yaml
  1. 等待 ingress pod 运行:
  1. kubectl get pods --namespace=ingress-nginx
  1. 创建示例 deployment 和关联的 service:
  1. kubectl create deployment demo --image=nginx --port=80
  2. kubectl expose deployment demo
  1. 创建 ingress 资源。以下命令使用了映射到 localhost 的主机:
  1. kubectl create ingress demo-localhost --class=nginx --rule="demo.localdev.me/*=demo:80"
  1. 将本地端口转发到 Ingress Controller:
  1. kubectl port-forward --namespace=ingress-nginx service/ingress-nginx-controller 8080:80

现在,如果你访问 http://demo.localdev.me:8080/ ,你应该会看到 NGINX 的欢迎页面。