环境信息:
RKE2 版本:
hts0000@rke2-node1:~$ rke2 -v
rke2 version v1.28.11+rke2r1 (6b12d7a783238b72da8450fa1b6ec587cebb79ed)
go version go1.21.11 X:boringcrypto
节点 CPU 架构,操作系统和版本:
2C4G 3节点的虚拟机架构。
操作系统:ubuntu server 24.04
集群配置:
总共3台服务器,采用3 server的架构
问题描述:
rke2中nginx-ingress通过/var/lib/rancher/rke2/server/manifests/rke2-ingress-nginx.yaml
文件自动部署,我在文件中添加如下配置,希望能设置nginx-ingress对应service的external ip,但是不起作用。也不知道去哪里能看到为什么不起作用的日志。
set:
controller.service.externalIPs[0]: 192.168.233.200
我使用如下命令查看HelmChartController状态和日志,但是没有任何发现
kubectl get HelmChart -n kube-system
NAME JOB CHART TARGETNAMESPACE VERSION REPO HELMVERSION BOOTSTRAP
rke2-ingress-nginx helm-install-rke2-ingress-nginx false
所以我有两个问题:
- 如何正确的为ingress添加external ip
- 在哪里能看到为什么配置不生效的错误提示
我对Helm和HelmChartsController不是很熟悉,查看了官方文档也没找到有用的信息。烦请各位大佬指点
ksd
3
直接在 rke2 的 /var/lib/rancher/rke2/server/manifests/rke2-ingress-nginx.yaml 修改配置是不生效的,要修改 nginx ingress controller 的配置,可参考:Networking Services | RKE2
感谢大佬回复。
我在/var/lib/rancher/rke2/server/manifests/rke2-ingress-nginx.yaml
文件里添加了如下配置,但是好像没有效果。
spec:
valuesContent: |-
controller:
admissionWebhooks:
admissionWebhooks:
externalIPs:
- 192.168.233.200
ksd
5
我现在完全看不到哪里不对,为什么不对。。。就像个黑盒一样
我把rke2自带的nginx-ingress disable了,然后自己安装了nginx-ingress,手动添加externalIPs配置,终于可以生效了。下面是我的步骤。
- 在所有server的
/etc/rancher/rke2/config.yaml
中加入如下配置,并重启。
disable: rke2-ingress-nginx
systemctl restart rke2-server
- 使用helm安装nginx-ingress
# 添加helm nginx-ingress repo
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
# helm install时使用的都是默认配置
# 通过helm show values [charts]可以查看默认配置
# 获取nginx-ingress的配置
helm show values ingress-nginx/ingress-nginx > values.yaml
# 修改其中的
# controller.service.external.enabled: true
# controller.service.externalIPs: ["192.168.233.200"]
# 可以指定nginx-ingress暴露一个ExternalIp
controller:
service:
external:
enabled: true
externalIPs: ["192.168.233.200"]
# 指定nginx-ingress配置文件安装
helm install ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx --create-namespace -f values.yaml
- 查看nginx-ingress对应的svc
kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.43.123.124 192.168.233.200 80:31780/TCP,443:31722/TCP 5h13m
ingress-nginx-controller-admission ClusterIP 10.43.96.211 <none> 443/TCP 5h13m