广东品牌网站建设多少钱,WordPress建站 网盘视频,网站是如何盈利的,海南省建设工程执业中心网站kubectl port-forward 和 kubectl expose 是 Kubernetes 命令行工具 kubectl 提供的两种不同方式来公开服务。
kubectl port-forward
kubectl port-forward 命令用于在本地主机和集群内部的 Pod 之间建立一个临时的端口转发通道。 该命令将本地机器上的一个端口绑定到集群内部…kubectl port-forward 和 kubectl expose 是 Kubernetes 命令行工具 kubectl 提供的两种不同方式来公开服务。
kubectl port-forward
kubectl port-forward 命令用于在本地主机和集群内部的 Pod 之间建立一个临时的端口转发通道。 该命令将本地机器上的一个端口绑定到集群内部的 Pod 上的指定端口从而允许您直接访问该 Pod。 适用于临时调试和测试或者当您只需要与特定 Pod 进行交互时使用。 示例
kubectl port-forward pod-name local-port:pod-portkubectl expose
kubectl expose 命令用于创建一个新的 Service 资源对象以公开指定的 Deployment、Pod 或其他资源。
通过创建 Service 对象您可以为集群内外提供稳定的服务访问点并自动启用负载均衡和服务发现。
适用于常驻性的服务公开和长期运行。
示例
kubectl expose resource-type resource-name --portport --target-porttarget-port --typeservice-typekubectl expose 命令是通过指定一些选项来创建 Service 对象。以下是创建 Service 时可能用到的一些选项
resource-type指定要公开的资源类型如 Deployment、Pod、ReplicaSet 等。
resource-name指定要公开的资源名称。
--portport指定 Service 对象要监听的端口。
--target-porttarget-port指定 Service 对象要转发到的目标端口。
--typeservice-type指定 Service 对象的类型如 ClusterIP、NodePort、LoadBalancer 或 ExternalName。以下是 service-type 详解
ClusterIP默认
ClusterIP 类型将服务公开为仅在集群内部可访问的 IP 地址。 通过该类型的 Service其他 Pod 或服务可以通过 Cluster IP 地址访问服务。 这是默认的 Service 类型。
NodePort
NodePort 类型为每个节点分配一个随机端口并将请求转发到 Service 上的目标端口。 通过该类型的 Service可以使用节点的 IP 地址和分配的端口从集群外部访问服务。 注意虽然会打开一个高于 30000 的端口范围但是该类型不适合直接在生产环境中使用通常用于开发和测试。
LoadBalancer
LoadBalancer 类型通过云服务提供商为 Service 创建一个外部的负载均衡器并为 Service 分配一个公共 IP 地址。 通过该类型的 Service可以从公共 IP 地址访问服务负载均衡器会自动将请求转发到后端 Pod。 注意使用该类型的 Service 需要确保 Kubernetes 集群运行在支持提供商的云平台上并且需要正确配置提供商的负载均衡器。
ExternalName
ExternalName 类型允许将 Service 映射到集群外部的任意 DNS 记录。 通过该类型的 Service可以使用 Service 的名称访问外部服务或域名而不需要通过 Cluster IP 或者负载均衡器来转发请求。 区别总结如下 kubectl port-forward 主要用于临时的本地端口转发允许直接与 Pod 进行交互适用于调试和测试。 kubectl expose 创建一个新的 Service 对象来公开资源如 Deployment 或 Pod提供稳定的服务访问点适用于长期运行。 kubectl port-forward 可以单独与一个指定的 Pod 进行通信 而 kubectl expose 会在集群中创建一个新的 Service 对象为多个 Pod 提供统一的访问点。 使用 kubectl port-forward 后您需要手动将本地服务地址告知其他人或服务而 kubectl expose 可以自动处理负载均衡和服务发现。