8图带你看懂张柏芝不在乎b大毛又多又长_2

核心内容摘要

午夜在线:寂静时刻的无限可能
鬼色网:深入未知,探索灵异世界的奇幻边界

西方47147:穿越时空的艺术对话,连接古今的文明脉搏

在K8S service类型中NodePort 服务包含了 ClusterIP 服务的所有能力。

这是一个重要的核心概念NodePort 服务是在 ClusterIP 服务基础上的扩展而不是一个独立的替代品。

详细解释

架构层次NodePort Service ClusterIP Service NodePort 端口映射

实际访问方式一个 NodePort 类型的 Service 实际上同时支持三种访问方式方式一通过 ClusterIP内部访问✅apiVersion:v1kind:Servicemetadata:name:my-servicespec:type:NodePort# 注意这里指定的是 NodePortselector:app:my-appports:-port:80# ClusterIP 端口targetPort:8080# Pod 端口nodePort:30007# NodePort 端口可选系统自动分配集群内部访问# 通过 ClusterIP 直接访问curlhttp://cluster-ip:80# 通过 DNS 域名访问完全支持✅curlhttp://my-service.default.svc.cluster.local:80curlhttp://my-service:80# 同一命名空间内可省略后缀方式二通过 NodePort外部访问# 通过任何节点的 IP NodePort 访问curlhttp://node-ip:30007方式三通过 LoadBalancer如果有云提供商如果你在云环境还可以配置 LoadBalancer它又是在 NodePort 基础上的扩展。

DNS 解析验证# 查看服务详情kubectl get svc my-service# NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)# my-service NodePort

10.

96.

1

456 none 80:30007/TCP# 查看 DNS 解析kubectl run -it --rmtest--imagebusybox --restartNever --nslookupmy-service# Server:

10.

96.

10# Address 1:

10.

96.

10 kube-dns.kube-system.svc.cluster.local## Name: my-service# Address 1:

10.

96.

1

456 my-service.default.svc.cluster.local

实际示例apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deployspec:replicas:2selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:nginx:alpineports:-containerPort:80---apiVersion:v1kind:Servicemetadata:name:nginx-servicespec:type:NodePort# NodePort 类型selector:app:nginxports:-port:80# 集群内访问端口targetPort:80# Pod 端口nodePort:30080# 节点端口测试访问#

在集群内部通过 DNS 访问ClusterIP 能力kubectlexec-itpod-name--curlhttp://nginx-service#

从外部通过 NodePort 访问curlhttp://任意节点IP:

流量流向示意外部用户 ↓ Node IP:NodePort (如

192.

168.

100:

↓ Service ClusterIP (如

10.

96.

1

456:

↓ Pod IP:Port (如

10.

244.

2:

8080)

总结要点✅NodePort 服务一定包含 ClusterIP每个 NodePort 服务都会自动分配一个 ClusterIP✅K8S DNS 完全支持可以通过服务名在集群内解析到 ClusterIP✅集群内部访问优先使用 ClusterIP/DNS不经过节点端口效率更高❌NodePort 不是 ClusterIP 的替代而是它的超集最佳实践集群内部组件间通信使用服务名DNS外部访问才用 NodePort所以可以完全放心地在集群内部通过service-name.namespace.svc.cluster.local来访问 NodePort 服务

B站直播-B站直播应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123