溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

kubernetes 暴露服務(wù)端口的幾種方式

發(fā)布時(shí)間:2020-06-24 18:05:15 來(lái)源:網(wǎng)絡(luò) 閱讀:1592 作者:無(wú)鋒劍 欄目:云計(jì)算

kubernetes 暴露服務(wù)端口的幾種方式

如果希望將 Service 暴露在一個(gè)外部IP地址上。 Kubernetes 支持4種實(shí)現(xiàn)方式,詳細(xì)如下:

1:集群內(nèi)部實(shí)現(xiàn)訪問(wèn):Clusterip

Clusterip是集群內(nèi)部的私有ip,在集群內(nèi)部訪問(wèn)服務(wù)非常方便,也是kuberentes集群默認(rèn)的方式,直接通過(guò)service的Clusterip訪問(wèn),也可以直接通過(guò)ServiceName訪問(wèn)。集群外部則是無(wú)法訪問(wèn)的。

2:集群外部方式訪問(wèn):NodePort

NodePort在kubenretes里是一個(gè)早期廣泛應(yīng)用的服務(wù)暴露方式。Kubernetes中的service默認(rèn)情況下都是使用的ClusterIP這種類型,這樣的service會(huì)產(chǎn)生一個(gè)ClusterIP,這個(gè)IP只能在集群內(nèi)部訪問(wèn),要想讓外部能夠直接訪問(wèn)service,需要將service type修改為 nodePort。將service監(jiān)聽(tīng)端口映射到node節(jié)點(diǎn)。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-dm
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:alpine
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80

---

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30004
      protocol: TCP
  selector:
    name: nginx

創(chuàng)建

kubectl create -f nginx-ds.yaml

訪問(wèn)測(cè)試

在集群之外,可以通過(guò)任何一個(gè)node節(jié)點(diǎn)的 ip:nodeport 都可以訪問(wèn)集群中服務(wù)

3:LoadBalancer

LoadBlancer Service 是 kubernetes 深度結(jié)合云平臺(tái)的一個(gè)組件;當(dāng)使用 LoadBlancer Service 暴露服務(wù)時(shí),實(shí)際上是通過(guò)向底層云平臺(tái)申請(qǐng)創(chuàng)建一個(gè)負(fù)載均衡器來(lái)向外暴露服務(wù);目前 LoadBlancer Service 支持的云平臺(tái)已經(jīng)相對(duì)完善,比如國(guó)外的 GCE、DigitalOcean,國(guó)內(nèi)的 阿里云,私有云 Openstack 等等,由于 LoadBlancer Service 深度結(jié)合了云平臺(tái),所以只能在一些云平臺(tái)上來(lái)使用.

4:Ingress

Ingress是自kubernetes1.1版本后引入的資源類型。必須要部署Ingress controller才能創(chuàng)建Ingress資源,Ingress controller是以一種插件的形式提供。

Ingress 使用比較廣泛的有:nginx 和 traefik,個(gè)人推薦使用traefik。

Traefik 配置使用方法:

https://blog.51cto.com/michaelkang/2429929

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI