创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。
操作系统信息
例如:虚拟机, TKE服务默认的操作系统 4C/16G
Kubernetes版本信息
Client Version: version.Info{Major:“1”, Minor:“26+”, GitVersion:“v1.26.1-tke.2”, GitCommit:“a7c1e5c7688a190360658a8a3b704e9c4079e6f4”, GitTreeState:“clean”, BuildDate:“2023-09-25T12:27:23Z”, GoVersion:“go1.19.9”, Compiler:“gc”, Platform:“linux/amd64”}
Kustomize Version: v4.5.7
容器运行时
sh-4.4# crictl version
Version: 0.1.0
RuntimeName: containerd
RuntimeVersion: v1.6.9-tke.4
RuntimeApiVersion: v1
KubeSphere版本信息
KubeSphere 版本 : v3.4.0。在线安装。在已有K8s上安装
问题是什么
KubeSphere 版本 : v3.4.0,开启了联邦集群(member集群一套),在测试告警邮件发送时,timeout
详细日志如下:
在之前的KubeSphere3.3.1版本(未使用联邦),通知渠道使用邮箱告警,完全一样的配置,是可以成功测试发送邮件
参数配置截图:
kubesphere3.4.0联邦:
kubesphere3.3.1:
基本排查:
网络连通性
节点是可以上外网,pod也可以正常上外网
所有集群(host+member = 2套集群)的节点网络连通信:
pod网络连通信:
配置邮箱时出现过 证书认证问题(在页面点击这个自定义资源时,页面报证书错误)
A. 修改了crd: receivers.notification.kubesphere.io、configs.notification.kubesphere.io
对两套集群均修改了,基于这个issue修改的[kubesphere v3.4.0 notification channel report certificate signed by unknown authority · Issue #5896 · kubesphere/kubesphere (github.com)](https://github.com/kubesphere/kubesphere/issues/5896)
B. 修改了crd: federatednotificationreceivers.types.kubefed.io
类似A的修改
\`\`\`shell
caBundle=$(kubectl get validatingWebhookConfiguration rulegroups.alerting.kubesphere.io -o jsonpath=‘{.webhooks[0].clientConfig.caBundle}’)
echo $caBundle
cat > /tmp/patch.yaml <<EOF
spec:
conversion:
webhook:
clientConfig:
caBundle: ${caBundle}
service:
namespace: kubesphere-monitoring-system
EOF
kubectl get federatednotificationreceivers.types.kubefed.io
kubectl get federatednotificationreceivers.types.kubefed.io -oyaml | less
kubectl get crds federatednotificationreceivers.types.kubefed.io -oyaml | less
vim /tmp/patch.yaml
kubectl get crds federatednotificationreceivers.types.kubefed.io -oyaml > /tmp/federatednotificationreceivers.types.kubefed.io.yaml
kubectl patch crd federatednotificationreceivers.types.kubefed.io –type=merge –patch-file /tmp/patch.yaml
\`\`\`
C. 修改之后发现在自定义资源的页面不在报错了,能查到对应的资源
- 对应crd实例对比
对比两套kubesphere的conifgs 和 receiver发现:
receiver的 enbale字段为false
config的key, name 为空
在手动添加后,测试依旧timeout
最后希望大家帮我一起看看这个问题,十分感谢!