liusheng / liusheng.github.io

Liusheng's blog
http://liusheng.github.io
5 stars 1 forks source link

【笔记】K8s集群基本操作记录 #31

Closed liusheng closed 3 years ago

liusheng commented 3 years ago

0. 前言

之前搞过一段时间的K8s,算是对基本的概念和操作比较熟悉了,但是一段时间没搞,现在很多都想不起来了,又得去网上查,这里做一个笔记留存备忘。

1. 基本概念

如何将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的一个端口来映射,也可以手动指定该范围内的一个端口。如下所示:

然后可以通过在浏览器中输入任何一个node的IP加上对应的端口来访问服务。