每个Pod都有一个私有的网络IP,要想从Kubernetes集群外部通过公网IP来访问一个应用程序,有三种方式
- 第一种方式,在pod定义的时候指定HostPort, 这样可以通过 宿主机IP + host port来访问 缺点是,这种方式是通过pod所在的宿主机的IP调用,如果pod 改变了宿主机这种方式就没法使用了。不推荐使用HOSTPort
- 第二种方式,pod定义的的时候不指定HostPort,通过创建Service并且让Service使用nodePort,让service来映射外部端口和Pod端口,service默认使用ClusterIP,ClusterIP只能在集群内部访问,外部的话就需要使用NodePort 缺点:Nodeport的端口的范围是:30000~32767, 定义的nodeport不能超出这个范围
- 第三种方式: 通过共有云提供的负载均衡器 LoadBalancer