k8s的NodeIP、PodIP、ClusterIP、ExternalIP

1.NodeIP

K8s集群由Master Node与Worker Node组成。

Node:组成k8s集群的机器,可以是物理机或虚拟机。

Master Node :管理节点也叫控制平面主要负责管理控制方面。

Worker Node::工作节点用于部署处理业务的工作负载或pod。

NodeIP就是节点的IP地址,也就是InternalIP。

#执行命令查看k8s的节点信息

kubectl get nodes -o wide

2.PodIP

Pod: 是在k8s中可部署的最小单元,其中可以包含一个或多个容器,(k8s的node节点上会通过kubelet来进行管理pod的生命周期)可以理解成是对容器的一层封装,操作pod间接操作其中的容器。

PodIP:在pod的容器启动成功分配的pod的唯一IP,不能与NodeIP的网段存在重合,该IP只能在K8s集群中访问,而且只要pod被delete再重新运行起来,PodIP地址是会换成新的PodIP,它不是一尘不变的。

#执行命令查看k8s的默认命名空间下的pod信息

kubectl get pods -o wide

3.ClusterIP

K8s中因为PodIP是会变动的,应用基本上不会直接使用PodIP地址。

因此,k8s中存在了一种service的服务,其中包含ClusterIp、NodePort、LoadBalancer方式。

ClusterIp 及集群中的服务IP,分配完就不会变动,用于绑定pod,但是访问只能在集群内。

#执行命令查看k8s的默认命名空间下的service的信息

kubectl get svc

4.ExternalIP

ExternalIP:外部IP,主要用于提供集群内服务提供对外访问。实现方式使用service的LoadBalancer方式,分配负载均衡IP。

访问链路由ExternalIP:Port-->NodeIP:NodePort-->ServiceIP:Port-->PodIP:TargetPort

#执行命令查看k8s的默认命名空间下的service的信息

kubectl get svc -o wide

4.1 ExternalIP:Port 访问pod

可以集群外进行访问,在我的宿主机上访问nginx服务。

192.168.56.201:8080

4.2 NodeIP:NodePort 访问pod

在node节点上会暴露出端口3000-32767的端口。

如下我的节点的INTERNAL-IP即为NodeIP地址。

还是在宿主机上浏览器访问nginx服务。

192.168.56.103:31625

4.3 ServiceIP:Port访问pod

还是在宿主机上浏览器尝试访问nginx服务。

10.97.70.178:8080

验证是CLUTSER-IP是在集群外访问不了。

在master节点上验证。

curl 10.97.70.178:8080可以访问nginx服务。

4.4 PodIP:TargetPort访问pod

kubectl get svc -n default

kubectl describe svc nginx-lb

kubectl get pods -n default -o wide

curl 10.244.192.214:80

直接访问pod的形式成功

相关推荐
小李飞刀李寻欢5 分钟前
使用kubeadm部署Kubernetes(k8s)集群的步骤
linux·服务器·ubuntu·kubernetes·k8s
藥瓿锻1 小时前
2024 CKS题库+详尽解析| 1. kube-bench 修复不安全项
运维·安全·docker·云原生·容器·kubernetes·cks
程序员阿超的博客4 小时前
云原生核心技术 (10/12): K8s 终极实战:从零部署一个 Spring Boot + MySQL + Redis 应用
spring boot·云原生·kubernetes
互联网搬砖老肖6 小时前
Web 架构之 Kubernetes 弹性伸缩策略设计
前端·架构·kubernetes
Akamai中国7 小时前
什么是云计算的边缘原生应用?
人工智能·kubernetes·云计算·边缘计算
昌sit!9 小时前
K8S多维度问题排查
云原生·容器·kubernetes
kylin-运维9 小时前
k8s使用自建nfs做持久化无法控制磁盘使用大小问题处理
云原生·容器·kubernetes
藥瓿亭17 小时前
K8S认证|CKS题库+答案| 11. AppArmor
运维·服务器·docker·云原生·容器·kubernetes·cks
955.17 小时前
k8s从入门到放弃之Ingress七层负载
云原生·容器·kubernetes
被一米六支配的恐惧17 小时前
argocd部署cli工具并添加k8s集群
docker·kubernetes·argocd