本文主要是介绍kubernetes kuboard 端口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
一般安装kubernetes的教程都会教大家首先关闭防火墙,测试环境如此倒是没问题,到了生产环境就要考虑安全性问题了,所以服务器的防火墙依然需要保持最小策略开放,确保服务器的运行安全。
kubernetes端口
参考文档:https://kubernetes.io/zh-cn/docs/reference/networking/ports-and-protocols/
端口和协议
当在一个有严格网络边界的环境里运行 Kubernetes,例如拥有物理网络防火墙或者拥有公有云中虚拟网络的自有数据中心, 了解 Kubernetes 组件使用了哪些端口和协议是非常有用的。
master节点
master节点的组件使用到的端口:
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 6443 | Kubernetes API server | 所有 |
TCP | 入站 | 2379-2380 | etcd server client API | kube-apiserver, etcd |
TCP | 入站 | 10250 | Kubelet API | 自身, 控制面 |
TCP | 入站 | 10259 | kube-scheduler | 自身 |
TCP | 入站 | 10257 | kube-controller-manager | 自身 |
尽管 etcd 的端口也列举在master的部分,但你也可以在外部自己托管 etcd 集群或者自定义端口。
node节点
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 10250 | Kubelet API | 自身, 控制面 |
TCP | 入站 | 30000-32767 | NodePort Services† | 所有 |
† NodePort Services的默认端口范围。
所有默认端口都可以重新配置。当使用自定义的端口时,你需要打开这些端口来代替这里提到的默认端口。
一个常见的例子是 API 服务器的端口有时会配置为 443。或者你也可以使用默认端口, 把 API 服务器放到一个监听 443 端口的负载均衡器后面,并且路由所有请求到 API 服务器的默认端口。
kuboard
docker 方式安装
参考文档:https://press.demo.kuboard.cn/install/v3/install-built-in.html
sudo docker run -d \--restart=unless-stopped \--name=kuboard \-p 80:80/tcp \-p 10081:10081/tcp \-e KUBOARD_ENDPOINT="http://内网IP:80" \-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \-v /root/kuboard-data:/data \eipwork/kuboard:v3# 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。# 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \# Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \
暴露端口 :
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 80 | Kuboard Web | Kuboard Web |
TCP | 入站 | 10081 | NodePort Services† | Kuboard Agent Server |
WARNING
- KUBOARD_ENDPOINT 参数的作用是,让部署到 Kubernetes 中的
kuboard-agent
知道如何访问 Kuboard Server; - KUBOARD_ENDPOINT 中也可以使用外网 IP;
- Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server;
- 建议在 KUBOARD_ENDPOINT 中使用域名;
- 如果使用域名,必须能够通过 DNS 正确解析到该域名,如果直接在宿主机配置
/etc/hosts
文件,将不能正常运行;
参数解释
- 建议将此命令保存为一个 shell 脚本,例如
start-kuboard.sh
,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数; - 第 4 行,将 Kuboard Web 端口 80 映射到宿主机的
80
端口(您可以根据自己的情况选择宿主机的其他端口); - 第 5 行,将 Kuboard Agent Server 的端口
10081/tcp
映射到宿主机的10081
端口(您可以根据自己的情况选择宿主机的其他端口); - 第 6 行,指定 KUBOARD_ENDPOINT 为
http://内网IP
,如果后续修改此参数,需要将已导入的 Kubernetes 集群从 Kuboard 中删除,再重新导入; - 第 7 行,指定 KUBOARD_AGENT_SERVER 的端口为
10081
,此参数与第 5 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口10081
,例如,如果第 5 行为-p 30081:10081/tcp
则第 7 行应该修改为-e KUBOARD_AGENT_SERVER_TCP_PORT="30081"
; - 第 8 行,将持久化数据
/data
目录映射到宿主机的/root/kuboard-data
路径,请根据您自己的情况调整宿主机路径;
参考文档:安装 Kuboard v3 - kubernetes | Kuboard
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
# 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
# kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml
暴露端口:
协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|
TCP | 入站 | 30080 | Kuboard Web | Kuboard Web |
TCP | 入站 | 30081 | NodePort Services† | Kuboard Agent Server |
总结
安装kubernetes和kuboard需要对外暴露的端口
节点 | 协议 | 方向 | 端口范围 | 目的 | 使用者 |
---|---|---|---|---|---|
master | TCP | 入站 | 6443 | Kubernetes API server | k8s 所有 |
master | TCP | 入站 | 2379-2380 | etcd server client API | k8s kube-apiserver, etcd |
master | TCP | 入站 | 10250 | Kubelet API | k8s 自身, 控制面 |
master | TCP | 入站 | 10259 | kube-scheduler | k8s 自身 |
master | TCP | 入站 | 10257 | kube-controller-manager | k8s 自身 |
node | TCP | 入站 | 10250 | Kubelet API | k8s 自身, 控制面 |
node | TCP | 入站 | 30000-32767 | NodePort Services† | k8s 所有 |
master | TCP | 入站 | 80 | Kuboard Web | Kuboard Web |
master | TCP | 入站 | 10081 | NodePort Services† | Kuboard Agent Server |
master | TCP | 入站 | 30080 | Kuboard Web | Kuboard Web |
master | TCP | 入站 | 30081 | NodePort Services† | Kuboard Agent Server |
这篇关于kubernetes kuboard 端口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!