Kubernetes集群网络:k8s对外暴露服务的方式
来源:互联网 日期:2023/11/7 8:23:05
阅读量:(0)

一、Master集群网络

master集群的网络比较简单,和通常的负载均衡集群一样。多个节点的apiserver的ip与端口(6443)使用负载均衡的ip与端口。在master/node节点join时均使用此负载均衡的ip与端口,这样就是master节点的集群网络。
- master 节点之间的网络:如果有多个 master 节点,它们之间需要通过 etcd 这个分布式键值存储来保持数据的一致性。etcd 通常使用 Raft 协议来实现高可用和容错性,它需要每个节点之间都能够互相通信,因此需要配置一个可靠的网络连接。
- master 节点和 node 节点之间的网络:master 节点和 node 节点之间需要通过 kube-apiserver 这个组件来进行通信。kube-apiserver 是 master 节点上运行的组件,它提供了 RESTful 的 API 接口,供外部客户端和内部组件访问 k8s 集群的资源和状态。node 节点上运行着 kubelet 和 kube-proxy 这两个组件,它们需要定期向 kube-apiserver 汇报节点和 Pod 的信息,或者接收 kube-apiserver 的指令。因此,需要配置一个安全和稳定的网络连接。
- master 节点和外部客户端之间的网络:外部客户端可以通过 kubectl 命令行工具或者其他方式来访问 master 节点上的 kube-apiserver,从而对 k8s 集群进行管理和操作。为了保证安全性和可访问性,需要配置一个合适的网络地址和端口,并且使用 TLS/SSL 加密通信。
二、Node集群网络
K8s集群对外暴露服务的方式主要有以下几种:
- NodePort:将服务暴露到集群中每个节点的固定端口,客户端可以通过节点的 IP 地址和端口访问服务。
- LoadBalancer:使用云平台的负载均衡器将服务暴露到公网,客户端可以通过公网 IP 地址和端口访问服务。
- Ingress:使用 Ingress 控制器将服务暴露到公网,并提供统一的域名访问。
1、NodePort

NodePort 是 Kubernetes 提供的一种最简单的服务暴露方式。当 Service 的类型为 NodePort 时,Kubernetes 会为该 Service 分配一个固定的端口,该端口会映射到集群中每个节点的相同端口。客户端可以通过集群中任何节点的 IP 地址和端口访问服务。
NodePort 的配置非常简单,只需要在 Service 的 spec 中设置 type 为 NodePort,并指定端口号即可。例如,以下 YAML 定义了一个 NodePort 服务:
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 30000
关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线
提交留言告知,我们会第一时间屏蔽删除。
发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。