• kubernetes && kuboard 端口


    前言

    一般安装kubernetes的教程都会教大家首先关闭防火墙,测试环境如此倒是没问题,到了生产环境就要考虑安全性问题了,所以服务器的防火墙依然需要保持最小策略开放,确保服务器的运行安全。

    kubernetes端口

    参考文档:https://kubernetes.io/zh-cn/docs/reference/networking/ports-and-protocols/

    端口和协议

    当在一个有严格网络边界的环境里运行 Kubernetes,例如拥有物理网络防火墙或者拥有公有云中虚拟网络的自有数据中心, 了解 Kubernetes 组件使用了哪些端口和协议是非常有用的。

    master节点

    master节点的组件使用到的端口:

    协议方向端口范围目的使用者
    TCP入站6443Kubernetes API server所有
    TCP入站2379-2380etcd server client APIkube-apiserver, etcd
    TCP入站10250Kubelet API自身, 控制面
    TCP入站10259kube-scheduler自身
    TCP入站10257kube-controller-manager自身

    尽管 etcd 的端口也列举在master的部分,但你也可以在外部自己托管 etcd 集群或者自定义端口。

    node节点

    协议方向端口范围目的使用者
    TCP入站10250Kubelet API自身, 控制面
    TCP入站30000-32767NodePort Services†所有

    † NodePort Services的默认端口范围。

    所有默认端口都可以重新配置。当使用自定义的端口时,你需要打开这些端口来代替这里提到的默认端口。

    一个常见的例子是 API 服务器的端口有时会配置为 443。或者你也可以使用默认端口, 把 API 服务器放到一个监听 443 端口的负载均衡器后面,并且路由所有请求到 API 服务器的默认端口。

    kuboard

    docker 方式安装

     参考文档:https://press.demo.kuboard.cn/install/v3/install-built-in.html

    1. sudo docker run -d \
    2. --restart=unless-stopped \
    3. --name=kuboard \
    4. -p 80:80/tcp \
    5. -p 10081:10081/tcp \
    6. -e KUBOARD_ENDPOINT="http://内网IP:80" \
    7. -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
    8. -v /root/kuboard-data:/data \
    9. eipwork/kuboard:v3
    10. # 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。
    11. # 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \
    12. # Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \

    暴露端口 :

    协议方向端口范围目的使用者
    TCP入站80Kuboard WebKuboard Web
    TCP入站10081NodePort 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

    1. kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
    2. # 您也可以使用下面的指令,唯一的区别是,该指令使用华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
    3. # kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

    暴露端口:

    协议方向端口范围目的使用者
    TCP入站30080Kuboard WebKuboard Web
    TCP入站30081NodePort Services†Kuboard Agent Server

    总结

     安装kubernetes和kuboard需要对外暴露的端口

    节点协议方向端口范围目的使用者
    masterTCP入站6443Kubernetes API serverk8s 所有
    masterTCP入站2379-2380etcd server client APIk8s kube-apiserver, etcd
    masterTCP入站10250Kubelet APIk8s 自身, 控制面
    masterTCP入站10259kube-schedulerk8s 自身
    masterTCP入站10257kube-controller-manager

    k8s 自身

    nodeTCP入站10250Kubelet APIk8s 自身, 控制面
    nodeTCP入站30000-32767NodePort Services†k8s 所有
    masterTCP入站80Kuboard WebKuboard Web
    masterTCP入站10081NodePort Services†Kuboard Agent Server
    masterTCP入站30080Kuboard WebKuboard Web
    masterTCP入站30081NodePort Services†Kuboard Agent Server

  • 相关阅读:
    8.4 数据结构——选择排序
    EndNote使用技巧之引用文献信息的导入与修改
    每日一题——寻找右区间(排序 + 二分查找)
    微软警告 Windows 8.1 用户:系统即将停止支持,建议购买 Win11/10 新设备
    ctfshow-nodejs
    宇宙最強的IDE - Visual Studio 25岁生日快乐
    为什么有了并发安全的集合还需要读写锁?
    【智能优化算法-晶体结构算法】基于晶体结构算法求解多目标优化问题附Matlab代码
    多线程编程及Thread类
    计算机毕业设计ssm+vue基本微信小程序的MHK在线学习小程序
  • 原文地址:https://blog.csdn.net/mengo1234/article/details/133929476