tomas
1
环境信息:
K3s 版本:
k3s version v1.26.7+k3s1 (e47cfc09)
go version go1.20.6
集群配置:
3 servers
问题描述:
通过ruancher安K3S集群dev后,在dev集群中通过ingress,发布官方的demo应用:rancher/hello-world。参考文档 部署带有 Ingress 的工作负载 | Rancher
通过创建自定义secret,如图:
创建ingress(这里用的K3S中的kubernetes的service代替,在ingress配置中,证书配置项,使用的是上一步中的secret),如图:
ingress状态如图:
此时浏览器访问结果为:
请问这是怎么回事?
ksd
2
从你上面的操作来看,没发现任何问题,我也试着使用 rancher 2.7.5 创建 v1.26.7+k3s1 集群,并且按照你的步骤去重现,是可以显示我上传的证书的,如下:
要不你试试用无痕模式访问你的测试应用看看
ksd
4
那你通过 yaml 形式来看看 ingress ,看看 secret 挂载上没,目测没看见啥问题。
tomas
5
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: >-
[{"addresses":["10.36.191.123","10.36.191.124","10.36.191.125"],"port":443,"protocol":"HTTPS","serviceName":"default:dep","ingressName":"default:test","hostname":"test.com","path":"/hello","allNodes":false}]
creationTimestamp: '2023-08-23T10:39:25Z'
generation: 3
managedFields:
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:loadBalancer:
f:ingress: {}
manager: traefik
operation: Update
subresource: status
time: '2023-08-23T10:39:26Z'
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:field.cattle.io/publicEndpoints: {}
f:spec:
f:rules: {}
f:tls: {}
manager: agent
operation: Update
time: '2023-08-24T02:51:18Z'
name: test
namespace: default
resourceVersion: '941131'
uid: a55ba15a-8b35-4802-9e56-3875e3cdebdf
spec:
ingressClassName: traefik
rules:
- host: test.com
http:
paths:
- backend:
service:
name: dep
port:
number: 80
path: /hello
pathType: Prefix
tls:
- hosts:
- test.com
secretName: seres-inner-certificate
status:
loadBalancer:
ingress:
- ip: 10.36.191.123
- ip: 10.36.191.124
- ip: 10.36.191.125
ksd
7
发现个问题,你这个证书中配置的域名是 rc-cluster.seres.cn,并不是你创建 ingress 使用的 test.com 啊
tomas
8
首先,感谢指正。
我是用了rancher的前置nginx代理中,相同的证书来做的 hello应用 测试。rancher访问截图如下:
估计和这个有关。
tomas
9
已解决问题。
使用内网的一个通配域名: *.xxx.cn ,替换 secret后,在ingress里面自定义了一个 tp-test.seres.cn,如图:
然后浏览器访问显示如下:
有点瑕疵,在于页面中的图片为啥没加载出来呢? 用nodeport方式就可以加载的。