Closed liusheng closed 3 years ago
之前搞过一段时间的K8s,算是对基本的概念和操作比较熟悉了,但是一段时间没搞,现在很多都想不起来了,又得去网上查,这里做一个笔记留存备忘。
主要由3中方式:
其中最基本也是最简单的就是NodePort类型的Service来对外暴露访问接口,另外两种方式都需要云提供商的支持,比如LoadBalaner,需要对接到GKE等云平台的LB services。这里主要介绍一下最简单的NodePort服务。
使用NodePort这种方式对外暴露服务很简单,定义如下:
apiVersion: v1 kind: Service metadata: name: hadoop-controller namespace: hadoop spec: type: NodePort selector: app: hadoop-controller ports: - name: jobhistory port: 19888 targetPort: 19888
上述是一个对外暴露Hadoop的jobhistory的例子(默认19888端口),创建上面的服务,会在K8s集群的每一个Node上都开启一个端口来和Hadoop集群(k8s的应用)的19888端口映射,默认地,K8s集群会随机分配30000~32767的一个端口来映射,也可以手动指定该范围内的一个端口。如下所示:
30000~32767
然后可以通过在浏览器中输入任何一个node的IP加上对应的端口来访问服务。
0. 前言
之前搞过一段时间的K8s,算是对基本的概念和操作比较熟悉了,但是一段时间没搞,现在很多都想不起来了,又得去网上查,这里做一个笔记留存备忘。
1. 基本概念
如何将K8s中部署的服务暴露给外网访问
主要由3中方式:
其中最基本也是最简单的就是NodePort类型的Service来对外暴露访问接口,另外两种方式都需要云提供商的支持,比如LoadBalaner,需要对接到GKE等云平台的LB services。这里主要介绍一下最简单的NodePort服务。
使用NodePort这种方式对外暴露服务很简单,定义如下:
上述是一个对外暴露Hadoop的jobhistory的例子(默认19888端口),创建上面的服务,会在K8s集群的每一个Node上都开启一个端口来和Hadoop集群(k8s的应用)的19888端口映射,默认地,K8s集群会随机分配
30000~32767
的一个端口来映射,也可以手动指定该范围内的一个端口。如下所示:然后可以通过在浏览器中输入任何一个node的IP加上对应的端口来访问服务。