kubernetes - 启用防火墙时无法访问 k8s-dashboard
问题描述
我有一个带有 3 个节点(2 个工作人员)的单主 kubeadm 集群设置。在启用防火墙之前,我可以通过本地计算机上的 kubectl 代理访问 kubernetes-dashboard 槽。我的防火墙(ufw)配置是: 主节点
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
6443/tcp ALLOW Anywhere
2379:2380/tcp ALLOW Anywhere
10250/tcp ALLOW Anywhere
10251/tcp ALLOW Anywhere
10252/tcp ALLOW Anywhere
10255/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
8443/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
6443/tcp (v6) ALLOW Anywhere (v6)
2379:2380/tcp (v6) ALLOW Anywhere (v6)
10250/tcp (v6) ALLOW Anywhere (v6)
10251/tcp (v6) ALLOW Anywhere (v6)
10252/tcp (v6) ALLOW Anywhere (v6)
10255/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
8443/tcp (v6) ALLOW Anywhere (v6)
工作节点
Status: active
To Action From
-- ------ ----
10250/tcp ALLOW Anywhere
10255/tcp ALLOW Anywhere
30000:32767/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
10250/tcp (v6) ALLOW Anywhere (v6)
10255/tcp (v6) ALLOW Anywhere (v6)
30000:32767/tcp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
有没有我忘记允许的端口?或者它可能来自其他东西?
谢谢!
解决方案
为了访问仪表板,您需要让 KubernetesService
公开仪表板。假设您使用此处的说明安装了它,您可以修补服务以将端口公开为NodePort
.
kubectl patch service/kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}' --type=merge
然后运行此命令,该命令将返回 NodePort 编号:
kubectl get service/kubernetes-dashboard -o jsonpath='{.spec.ports[0].nodePort}'
然后更新您的防火墙以在您的一个或所有工作人员上打开该端口。
然后在任何工作人员上点击该端口:https://[WorkerIP]:[NodePort]
推荐阅读
- django - Django 重定向到另一个应用程序中的不同视图
- hadoop - 从 hbase 复制数据时运行 map reduce 作业时找不到 Jar 文件异常
- fabricjs - 如何在 Fabric JS 上更改矩形形状
- html - 哪部分代码控制子菜单悬停状态
- jenkins - Jenkins 管道语法 - 如果安装了某些东西
- python - 向图表添加数字
- linux - 不同版本的 cmake 可以产生不同的结果吗?
- docker - 有什么作用。是指码头工人?它是指图像的当前工作目录还是本地机器?
- javascript - 按评级过滤下拉菜单
- ios - 在 Firebase 中使用自定义对象数组存储自定义对象:Swift