图中kube-dns只是一个service,但是他对外提供k8s集群内部的dns服务,真正的dns server,是 coredns这几个pod
k8s namespace 的作用只是提供逻辑上的组件隔离例如pod service ,deployment等,实际上不同namespace 之间都是通过service的full dns 域名进行访问,当然也可以通过clusterIP进行访问,但是service的IP有可能会发生变化例如重新部署就会生成新的IP但是域名是不变的,这也是为什么会出现 kube-dns服务的原因
service 三种类型:
- ClusterIP #默认类型 ,集群内部使用,一组pod想访问另外一组pod 就可以使用该类型, 这个ip是k8s帮忙生成的,在别的work node,或者pod中可以访问到这个IP或IP所对应的域名,一般域名规则为如下图:
下图展示了kubernetes service 的ClusterIP,图二我们用域名的方式访问了这个service,域名格式为:<service name>.<namespace>.svc.cluster.local,
-
不同namespace下的pod 也可以通过域名的方式进行访问,namespace 只是逻辑上将pod service等进行隔离开来方便管理,但是实际上还是能相互访问例如下面的图中nginx-web pod 能通过域名的方式访问到kube-system namesapce下的service
- NodePort #对外访问暴露端口使用,
- LoadBlance #也是对外访问使用,但是属于公有云用途
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!