mirror of
https://github.com/rancher/rancher-docs.git
synced 2026-09-27 13:38:07 +00:00
Removing nginx-ingress, updating some phrasing regarding Traefik Ingress usage.
Signed-off-by: Sunil Singh <sunil.singh@suse.com>
This commit is contained in:
+5
-7
@@ -9,7 +9,7 @@ title: Rancher Server Kubernetes 集群的问题排查
|
||||
故障排除主要针对以下 3 个命名空间中的对象:
|
||||
|
||||
- `cattle-system`:`rancher` deployment 和 Pod。
|
||||
- `ingress-nginx`:Ingress Controller Pod 和 services。
|
||||
- `traefik`:Ingress Controller Pod 和 services。
|
||||
- `cert-manager`:`cert-manager` Pod。
|
||||
|
||||
## "default backend - 404"
|
||||
@@ -117,14 +117,12 @@ Events:
|
||||
kubectl -n cattle-system describe ingress
|
||||
```
|
||||
|
||||
如果 Ingress 对象已就绪,但是 SSL 仍然无法正常工作,你的证书或密文的格式可能不正确。
|
||||
If its ready and the SSL is still not working you may have a malformed cert or secret.
|
||||
|
||||
这种情况下,请检查 nginx-ingress-controller 的日志。nginx-ingress-controller 的 Pod 中有多个容器,因此你需要指定容器的名称:
|
||||
Check the `traefik` logs.
|
||||
|
||||
```
|
||||
kubectl -n ingress-nginx logs -f nginx-ingress-controller-rfjrq nginx-ingress-controller
|
||||
...
|
||||
W0705 23:04:58.240571 7 backend_ssl.go:49] error obtaining PEM from secret cattle-system/tls-rancher-ingress: error retrieving secret cattle-system/tls-rancher-ingress: secret cattle-system/tls-rancher-ingress was not found
|
||||
kubectl -n traefik logs
|
||||
```
|
||||
|
||||
## 没有匹配的 "Issuer"
|
||||
@@ -144,7 +142,7 @@ Error: validation failed: unable to recognize "": no matches for kind "Issuer" i
|
||||
|
||||
解决网络问题后,`canal` Pod 会超时并重启以建立连接。
|
||||
|
||||
## nginx-ingress-controller Pod 显示 RESTARTS
|
||||
## Traefik Pod 显示 RESTARTS
|
||||
|
||||
此问题的最常见原因是 `canal` pod 未能建立覆盖网络。参见 [canal Pod 显示 READY `2/3`](#canal-pod-显示-ready-23) 进行排查。
|
||||
|
||||
|
||||
+1
-4
@@ -6,10 +6,7 @@ title: TLS 设置
|
||||
|
||||
## 在高可用 Kubernetes 集群中运行 Rancher
|
||||
|
||||
当你在 Kubernetes 集群内安装 Rancher 时,TLS 会在集群的 Ingress Controller 上卸载。可用的 TLS 设置取决于使用的 Ingress Controller:
|
||||
|
||||
* nginx-ingress-controller(default RKE2 默认):[默认的 TLS 版本和密码](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#default-tls-version-and-ciphers)。
|
||||
* traefik(K3s 默认):[TLS 选项](https://doc.traefik.io/traefik/https/tls/#tls-options)。
|
||||
When you install a Rancher managed Kubernetes cluster, TLS is offloaded at the cluster's ingress controller. Traefik is the default ingress for K3s and can be used with RKE2, refer to [TLS Options](https://doc.traefik.io/traefik/https/tls/#tls-options) for further information.
|
||||
|
||||
## 在单个 Docker 容器中运行 Rancher
|
||||
|
||||
|
||||
+7
-12
@@ -4,14 +4,12 @@ title: 设置 Amazon NLB 网络负载均衡器
|
||||
|
||||
本文介绍了如何在 Amazon EC2 服务中设置 Amazon NLB 网络负载均衡器,用于将流量转发到 EC2 上的多个实例中。
|
||||
|
||||
这些示例中,负载均衡器将流量转发到三个 Rancher Server 节点。如果 Rancher 安装在 RKE Kubernetes 集群上,则需要三个节点。如果 Rancher 安装在 K3s Kubernetes 集群上,则只需要两个节点。
|
||||
这些示例中,负载均衡器将流量转发到三个 Rancher Server 节点。如果 Rancher 安装在 K3s Kubernetes 集群上,则只需要两个节点。
|
||||
|
||||
本文介绍的只是配置负载均衡器的其中一种方式。其他负载均衡器如传统负载路由器(Classic Load Balancer)和应用负载路由器(Application Load Balancer),也可以将流量转发到 Rancher Server 节点。
|
||||
|
||||
Rancher 仅支持使用 Amazon NLB 以 `TCP` 模式终止 443 端口的流量,而不支持 `TLS` 模式。这试因为在 NLB 终止时,NLB 不会将正确的标头注入请求中。如果你想使用由 Amazon Certificate Manager (ACM) 托管的证书,请使用 ALB。
|
||||
|
||||
|
||||
|
||||
## 要求
|
||||
|
||||
你已在 EC2 中创建了 Linux 实例。此外,负载均衡器会把流量转发到这些节点。
|
||||
@@ -22,7 +20,7 @@ Rancher 仅支持使用 Amazon NLB 以 `TCP` 模式终止 443 端口的流量,
|
||||
|
||||
配置 NLB 的第一个步骤是创建两个目标组。一般来说,只需要端口 443 就可以访问 Rancher。但是,由于端口 80 的流量会被自动重定向到端口 443,因此,你也可以为端口 80 也添加一个监听器。
|
||||
|
||||
不管使用的是 NGINX Ingress 还是 Traefik Ingress Controller,Ingress 都应该将端口 80 的流量重定向到端口 443。以下为操作步骤:
|
||||
The Traefik Ingress should redirect traffic from port 80 to port 443.
|
||||
|
||||
1. 登录到 [Amazon AWS 控制台](https://console.aws.amazon.com/ec2/)。确保选择的**区域**是你创建 EC2 实例 (Linux 节点)的区域。
|
||||
1. 选择**服务** > **EC2**,找到**负载均衡器**并打开**目标组**。
|
||||
@@ -30,7 +28,7 @@ Rancher 仅支持使用 Amazon NLB 以 `TCP` 模式终止 443 端口的流量,
|
||||
|
||||
:::note
|
||||
|
||||
不同 Ingress 的健康检查处理方法不同。详情请参阅[本节](#nginx-ingress-和-traefik-ingress-的健康检查路径)。
|
||||
For details on Traefik Ingress health checks, refer to [this section.](#health-check-paths-for-traefik-ingresses)
|
||||
|
||||
:::
|
||||
|
||||
@@ -163,13 +161,10 @@ AWS 完成 NLB 创建后,单击**关闭**。
|
||||
|
||||
6. 单击右上角的**保存**。
|
||||
|
||||
## NGINX Ingress 和 Traefik Ingress 的健康检查路径
|
||||
## Health Check Paths for Traefik Ingresses
|
||||
|
||||
K3s 和 RKE Kubernetes 集群使用的默认 Ingress 不同,因此对应的健康检查方式也不同。
|
||||
K3s Kubernetes clusters use Traefik as the default Ingress.
|
||||
|
||||
RKE Kubernetes 集群默认使用 NGINX Ingress,而 K3s Kubernetes 集群默认使用 Traefik Ingress。
|
||||
The health check path is `/ping`. By default `/ping` is always matched (regardless of Host), and a response from [Traefik itself](https://docs.traefik.io/operations/ping/) is always served.
|
||||
|
||||
- **Traefik**:默认健康检查路径是 `/ping`。默认情况下,不管主机如何,`/ping` 总是匹配,而且 [Traefik 自身](https://docs.traefik.io/operations/ping/)总会响应。
|
||||
- **NGINX Ingress**:NGINX Ingress Controller 的默认后端有一个 `/healthz` 端点。默认情况下,不管主机如何,`/healthz` 总是匹配,而且 [`ingress-nginx` 自身](https://github.com/kubernetes/ingress-nginx/blob/0cbe783f43a9313c9c26136e888324b1ee91a72f/charts/ingress-nginx/values.yaml#L212)总会响应。
|
||||
|
||||
想要精确模拟健康检查,最好是使用 Host 标头(Rancher hostname)加上 `/ping` 或 `/healthz`(分别对应 K3s 和 RKE 集群)来获取 Rancher Pod 的响应,而不是 Ingress 的响应。
|
||||
To simulate an accurate health check, it is a best practice to use the Host header (Rancher hostname) combined with `/ping` or `/healthz` wherever possible, to get a response from the Rancher Pods, not the Ingress.
|
||||
|
||||
+13
-34
@@ -87,7 +87,7 @@ systemctl start rke2-server.service
|
||||
|
||||
1. 安装 Kubernetes 命令行工具 [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl)。
|
||||
2. 复制 `/etc/rancher/rke2/rke2.yaml` 文件并保存到本地主机的 `~/.kube/config` 目录上。
|
||||
3. 在 kubeconfig 文件中,`server` 的参数为 localhost。在端口 6443 上将服务器配置为 controlplane 负载均衡器的 DNS(RKE2 Kubernetes API Server 使用端口 6443,而 Rancher Server 将通过 NGINX Ingress 在端口 80 和 443 上提供服务。)以下是一个示例 `rke2.yaml`:
|
||||
3. 在 kubeconfig 文件中,`server` 的参数为 localhost。在端口 6443 上将服务器配置为 controlplane 负载均衡器的 DNS(RKE2 Kubernetes API Server 使用端口 6443,而 Rancher Server 将通过 Traefik Ingress 在端口 80 和 443 上提供服务。)以下是一个示例 `rke2.yaml`:
|
||||
|
||||
```yml
|
||||
apiVersion: v1
|
||||
@@ -127,39 +127,18 @@ kubectl --kubeconfig ~/.kube/config/rke2.yaml get pods --all-namespaces
|
||||
|
||||
```
|
||||
/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get pods -A
|
||||
NAMESPACE NAME READY STATUS RESTARTS AGE
|
||||
kube-system cloud-controller-manager-rke2-server-1 1/1 Running 0 2m28s
|
||||
kube-system cloud-controller-manager-rke2-server-2 1/1 Running 0 61s
|
||||
kube-system cloud-controller-manager-rke2-server-3 1/1 Running 0 49s
|
||||
kube-system etcd-rke2-server-1 1/1 Running 0 2m13s
|
||||
kube-system etcd-rke2-server-2 1/1 Running 0 87s
|
||||
kube-system etcd-rke2-server-3 1/1 Running 0 56s
|
||||
kube-system helm-install-rke2-canal-hs6sx 0/1 Completed 0 2m17s
|
||||
kube-system helm-install-rke2-coredns-xmzm8 0/1 Completed 0 2m17s
|
||||
kube-system helm-install-rke2-ingress-nginx-flwnl 0/1 Completed 0 2m17s
|
||||
kube-system helm-install-rke2-metrics-server-7sggn 0/1 Completed 0 2m17s
|
||||
kube-system kube-apiserver-rke2-server-1 1/1 Running 0 116s
|
||||
kube-system kube-apiserver-rke2-server-2 1/1 Running 0 66s
|
||||
kube-system kube-apiserver-rke2-server-3 1/1 Running 0 48s
|
||||
kube-system kube-controller-manager-rke2-server-1 1/1 Running 0 2m30s
|
||||
kube-system kube-controller-manager-rke2-server-2 1/1 Running 0 57s
|
||||
kube-system kube-controller-manager-rke2-server-3 1/1 Running 0 42s
|
||||
kube-system kube-proxy-rke2-server-1 1/1 Running 0 2m25s
|
||||
kube-system kube-proxy-rke2-server-2 1/1 Running 0 59s
|
||||
kube-system kube-proxy-rke2-server-3 1/1 Running 0 85s
|
||||
kube-system kube-scheduler-rke2-server-1 1/1 Running 0 2m30s
|
||||
kube-system kube-scheduler-rke2-server-2 1/1 Running 0 57s
|
||||
kube-system kube-scheduler-rke2-server-3 1/1 Running 0 42s
|
||||
kube-system rke2-canal-b9lvm 2/2 Running 0 91s
|
||||
kube-system rke2-canal-khwp2 2/2 Running 0 2m5s
|
||||
kube-system rke2-canal-swfmq 2/2 Running 0 105s
|
||||
kube-system rke2-coredns-rke2-coredns-547d5499cb-6tvwb 1/1 Running 0 92s
|
||||
kube-system rke2-coredns-rke2-coredns-547d5499cb-rdttj 1/1 Running 0 2m8s
|
||||
kube-system rke2-coredns-rke2-coredns-autoscaler-65c9bb465d-85sq5 1/1 Running 0 2m8s
|
||||
kube-system rke2-ingress-nginx-controller-69qxc 1/1 Running 0 52s
|
||||
kube-system rke2-ingress-nginx-controller-7hprp 1/1 Running 0 52s
|
||||
kube-system rke2-ingress-nginx-controller-x658h 1/1 Running 0 52s
|
||||
kube-system rke2-metrics-server-6564db4569-vdfkn 1/1 Running 0 66s
|
||||
NAMESPACE NAME READY STATUS RESTARTS AGE
|
||||
kube-system cloud-controller-manager-my-node-1 1/1 Running 0 5d
|
||||
kube-system etcd-my-node-1 1/1 Running 0 5d
|
||||
kube-system helm-install-traefik-crd-z8vsz 0/1 Completed 0 5d
|
||||
kube-system helm-install-traefik-h6n2q 0/1 Completed 0 5d
|
||||
kube-system kube-apiserver-my-node-1 1/1 Running 0 5d
|
||||
kube-system kube-proxy-my-node-1 1/1 Running 0 5d
|
||||
kube-system kube-scheduler-my-node-1 1/1 Running 0 5d
|
||||
kube-system rke2-canal-2j4ls 2/2 Running 0 5d
|
||||
kube-system rke2-coredns-rke2-coredns-5c6b4d5-8f2mz 1/1 Running 0 5d
|
||||
kube-system rke2-metrics-server-587b78-v9q2s 1/1 Running 0 5d
|
||||
kube-system traefik-64f54698-m9p2w 1/1 Running 0 2d
|
||||
```
|
||||
|
||||
**结果**:你可通过使用 `kubectl` 访问集群,并且 RKE2 集群能成功运行。现在,你可以在集群上安装 Rancher Management Server。
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ rancher rancher.yourdomain.com x.x.x.x,x.x.x.x,x.x.x.x 80, 443 2m
|
||||
如果访问你配置的 Rancher FQDN 时没有显示 UI,请检查 Ingress Controller 日志以查看尝试访问 Rancher 时发生了什么:
|
||||
|
||||
```
|
||||
kubectl -n ingress-nginx logs -l app=ingress-nginx
|
||||
kubectl -n traefik logs -l app=traefik
|
||||
```
|
||||
|
||||
## Leader 选举
|
||||
|
||||
Reference in New Issue
Block a user