摘要:通過(guò)外網(wǎng)訪問(wèn)使用提醒請(qǐng)勿修改由創(chuàng)建的及的名稱和備注,否則會(huì)導(dǎo)致異常無(wú)法訪問(wèn)。通過(guò)外網(wǎng)暴露服務(wù)以后的插件,外網(wǎng)同時(shí)支持和兩種協(xié)議,下文示例中,對(duì)外暴露了三個(gè)端口,其中端口使用協(xié)議,和使用協(xié)議。是否支持多協(xié)議目前同時(shí)支持和協(xié)議。
外網(wǎng)模式下,ULB支持“報(bào)文轉(zhuǎn)發(fā)(ULB4)”及“請(qǐng)求代理(ULB7)”兩種轉(zhuǎn)發(fā)模式,推薦使用ULB4,因?yàn)閁LB4的性能更好;
使用外網(wǎng)ULB4來(lái)暴露服務(wù)非常簡(jiǎn)單,對(duì)于TCP協(xié)議,可不填寫(xiě)任何 annotations。
</>復(fù)制代碼
apiVersion: v1
kind: Service
metadata:
name: ucloud-nginx-out-tcp-new
labels:
app: ucloud-nginx-out-tcp-new
annotations:
"service.beta.kubernetes.io/ucloud-load-balancer-type": "outer"
# 代表ULB網(wǎng)絡(luò)類型,outer為外網(wǎng),inner為內(nèi)網(wǎng);outer為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "tcp"
# 表示ULB協(xié)議類型,tcp與udp等價(jià),表示ULB4;http與httpS等價(jià),表示ULB7;tcp為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-eip-bandwidth": "2"
# bandwidth下默認(rèn)為2Mpbs建議顯式聲明帶寬大小,避免費(fèi)用超標(biāo)。
"service.beta.kubernetes.io/ucloud-load-balancer-eip-chargetype": "month"
# 付費(fèi)模式,支持month,year,dynamic,默認(rèn)為month
"service.beta.kubernetes.io/ucloud-load-balancer-eip-quantity": "1"
# 付費(fèi)時(shí)長(zhǎng),默認(rèn)為1,chargetype為dynimic時(shí)無(wú)效
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80
selector:
app: ucloud-nginx-out-tcp-new
---
apiVersion: v1
kind: Pod
metadata:
name: test-nginx-out-tcp
labels:
app: ucloud-nginx-out-tcp-new
spec:
containers:
- name: nginx
image: uhub.service.ucloud.cn/ucloud/nginx:1.9.2
ports:
- containerPort: 80
protocol: TCP
相對(duì)于TCP應(yīng)用,務(wù)必在annotations中顯式聲明健康檢查的類型為port,否則ULB可能將正常工作的Pod認(rèn)為不健康,導(dǎo)致流量轉(zhuǎn)發(fā)異常。
</>復(fù)制代碼
apiVersion: v1
kind: Service
metadata:
name: ucloud-out-udp-new
labels:
app: ucloud-out-udp-new
annotations:
"service.beta.kubernetes.io/ucloud-load-balancer-type": "outer"
# 代表ULB網(wǎng)絡(luò)類型,outer為外網(wǎng),inner為內(nèi)網(wǎng);outer為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "udp"
# 表示ULB協(xié)議類型,tcp與udp等價(jià),表示ULB4;http與httpS等價(jià),表示ULB7;tcp為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-type": "port"
# 對(duì)于ULB4而言,不論容器端口類型是tcp還是udp,均建議顯式聲明為port。
spec:
type: LoadBalancer
ports:
- name: udp
protocol: UDP
port: 53
targetPort: 53
selector:
app: ucloud-out-udp-new
---
apiVersion: v1
kind: Pod
metadata:
name: test-out-udp
labels:
app: ucloud-out-udp-new
spec:
containers:
- name: dns
image: uhub.service.ucloud.cn/library/coredns:1.4.0
ports:
- name: udp
containerPort: 53
protocol: UDP
UK8S的cloudprovider 插件做一個(gè)大更新,大于等于19.05.3的版本支持多端口,指定ULB-id等功能,你可以通過(guò)如下命令查看cloudprovider的版本:
</>復(fù)制代碼
[root@10-9-53-181 ~]# /usr/local/bin/cloudprovider-ucloud version
CloudProvider-UCloud Version: cloudprovider-19.05.3
Go Version: go version go1.12.5 linux/amd64
Build Time: 2019-05-30-UTC/06:18:06
Git Commit ID: 2723d13b69a4d6f5b905a7f96bd7eed49617f439
升級(jí)指南即將發(fā)布,如有需求,請(qǐng)聯(lián)系UCloud技術(shù)支持。
老版本的ULB7只支持單種協(xié)議,即HTTP或HTTPS。 下文示例中,對(duì)外暴露2個(gè)端口都使用HTTP協(xié)議。
</>復(fù)制代碼
apiVersion: v1
kind: Service
metadata:
name: ucloud-nginx-out-tcp-new
labels:
app: ucloud-nginx-out-tcp-new
annotations:
"service.beta.kubernetes.io/ucloud-load-balancer-type": "outer"
# 代表ULB類型,outer為外網(wǎng),inner為內(nèi)網(wǎng);outer為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-listentype": "requestproxy"
# 代表監(jiān)聽(tīng)器的類型為請(qǐng)求代理,必須填寫(xiě)。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "http"
# 表示Verser的協(xié)議類型,此處為http,則所有的service端口對(duì)應(yīng)的Vserver protocol 都為http,反之亦然。
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80
name: http
- protocol: TCP
port: 443
targetPort: 80
name: httptoo
selector:
app: ucloud-nginx-out-tcp-new
---
apiVersion: v1
kind: Pod
metadata:
name: test-nginx-out-tcp
labels:
app: ucloud-nginx-out-tcp-new
spec:
containers:
- name: nginx
image: uhub.service.ucloud.cn/ucloud/nginx:1.9.2
ports:
- containerPort: 80
19.05.3以后的插件,外網(wǎng)ULB7同時(shí)支持HTTP和HTTPS兩種協(xié)議,下文示例中,對(duì)外暴露了三個(gè)端口,其中80端口使用HTTP協(xié)議,443和8443使用HTTPS協(xié)議。
</>復(fù)制代碼
apiVersion: v1
kind: Service
metadata:
name: ucloud-nginx-out-tcp-new
labels:
app: ucloud-nginx-out-tcp-new
annotations:
"service.beta.kubernetes.io/ucloud-load-balancer-type": "outer"
# 代表ULB類型,outer為外網(wǎng),inner為內(nèi)網(wǎng);outer為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-listentype": "requestproxy"
# 代表監(jiān)聽(tīng)器的類型為請(qǐng)求代理,5月30日后安裝的集群無(wú)需填寫(xiě)。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "https"
# 表示ULB協(xié)議類型,http與https等價(jià),表示ULB7;
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert": "ssl-b103etqy"
# 聲明要綁定的SSL證書(shū)Id,需要先將證書(shū)上傳至UCloud;
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-port": "4438443"
# 聲明使用SSL協(xié)議的Service端口,多個(gè)用""分隔;
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 443
targetPort: 80
name: https
- protocol: TCP
port: 8443
targetPort: 80
name: ssl
- protocol: TCP
port: 80
targetPort: 80
name: http
selector:
app: ucloud-nginx-out-tcp-new
---
apiVersion: v1
kind: Pod
metadata:
name: test-nginx-out-tcp
labels:
app: ucloud-nginx-out-tcp-new
spec:
containers:
- name: nginx
image: uhub.service.ucloud.cn/ucloud/nginx:1.9.2
ports:
- containerPort: 80
小于19.05.3版本的插件,所有service端口只能是HTTP或HTTPS,不能混合使用。
apiVersion: v1
kind: Service
me
name: ucloud-nginx-out-tcp-new
labels:
</>復(fù)制代碼
app: ucloud-nginx-out-tcp-new
annotations:
</>復(fù)制代碼
"service.beta.kubernetes.io/ucloud-load-balancer-type": "outer"
# 代表ULB類型,outer為外網(wǎng),inner為內(nèi)網(wǎng);outer為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-listentype": "requestproxy"
# 代表監(jiān)聽(tīng)器的類型為請(qǐng)求代理,插件版本小于19.05.3的版本必須填寫(xiě)。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "https"
# 表示Verser的協(xié)議類型,此處為https,則所有的service端口對(duì)應(yīng)的Vserver protocol 都為https,反之亦然。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert": "ssl-b103etqy"
# 聲明要綁定的SSL證書(shū)Id,需要先將證書(shū)上傳至UCloud;
spec:
type: LoadBalancer
ports:
</>復(fù)制代碼
- protocol: TCP
port: 443
targetPort: 80
name: https
- protocol: TCP
port: 80
targetPort: 80
name: httpstoo
selector:
</>復(fù)制代碼
app: ucloud-nginx-out-tcp-new
apiVersion: v1
kind: Pod
me
name: test-nginx-out-tcp
labels:
</>復(fù)制代碼
app: ucloud-nginx-out-tcp-new
spec:
containers:
name: nginx
image: uhub.service.ucloud.cn/ucloud/nginx:1.9.2
ports:
containerPort: 80
</>復(fù)制代碼
### HTTPS支持(cloudprovider-ucloud version>=19.05.3)
外網(wǎng)ULB支持HTTPS協(xié)議。用戶通過(guò)service.metadata.annotations中的service.beta.kubernetes.io/ucloud-load-balancer-ssl-cert來(lái)指定已經(jīng)上傳的TLS證書(shū)ID。
通過(guò)service.metadata.annotations中的service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-port來(lái)指定HTTPS服務(wù)端口,如有多端口,用""分隔。
如果某個(gè)ServicePort 被指定為HTTPS服務(wù)端口,并且已提交TLS證書(shū)ID,則該ServicePort所對(duì)應(yīng)的VServer協(xié)議為HTTPS。
使用ULB7的HTTPS協(xié)議模式時(shí),Pod內(nèi)的服務(wù)程序不需要實(shí)現(xiàn)HTTPS協(xié)議服務(wù),只需要提供HTTP服務(wù)即可,ULB7發(fā)往后端的報(bào)文為解密后的HTTP協(xié)議報(bào)文。
apiVersion: v1
kind: Service
me
name: ucloud-nginx-out-tcp-new
labels:
</>復(fù)制代碼
app: ucloud-nginx-out-tcp-new
annotations:
</>復(fù)制代碼
"service.beta.kubernetes.io/ucloud-load-balancer-type": "outer"
# 代表ULB類型,outer為外網(wǎng),inner為內(nèi)網(wǎng);outer為默認(rèn)值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "http"
# 表示ULB協(xié)議類型,http與https等價(jià),表示ULB7;
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert": "ssl-b103etqy"
# 聲明要綁定的SSL證書(shū)Id,需要先將證書(shū)上傳至UCloud;
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-port": "443"
# 聲明使用SSL協(xié)議的Service端口,多個(gè)用""分隔;
spec:
type: LoadBalancer
ports:
</>復(fù)制代碼
- protocol: TCP
port: 443
targetPort: 80
selector:
</>復(fù)制代碼
app: ucloud-nginx-out-tcp-new
apiVersion: v1
kind: Pod
me
name: test-nginx-out-tcp
labels:
</>復(fù)制代碼
app: ucloud-nginx-out-tcp-new
spec:
containers:
name: nginx
image: uhub.service.ucloud.cn/ucloud/nginx:1.9.2
ports:
containerPort: 80
</>復(fù)制代碼
### 常見(jiàn)問(wèn)題
#### 1. 如何區(qū)別使用ULB4還是ULB7?
通過(guò)service.metadata.annotations中的service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol值來(lái)聲明使用ULB4還是ULB7。
如果值為tcp或者udp則使用ULB4。
如果是http或者h(yuǎn)ttps,則使用ULB7。
#### 2. 一個(gè)LoadBalancer的Service是否支持多端口?
支持,UK8S會(huì)為service.spec.ports下每個(gè)ServicePort分別創(chuàng)建一個(gè)VServer,VServer端口為Service端口。
#### 3. 是否支持多協(xié)議?
目前UK8S同時(shí)支持HTTP和HTTPS協(xié)議。
#### 4. UK8S的LoadBalancer類型的Service是否支持UDP?
目前已支持,后續(xù)計(jì)劃支持,灰度中。
#### 5. 如果Loadbalancer創(chuàng)建外網(wǎng)ULB后,用戶在ULB控制臺(tái)頁(yè)面綁定了新的EIP,會(huì)被刪除嗎?
只有訪問(wèn)SVC的ExternalIP才能把流量導(dǎo)入后端Pod,訪問(wèn)其他EIP無(wú)效。刪除SVC時(shí),所有EIP都會(huì)被刪除。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/126267.html
相關(guān)文章
-
【容器云 UK8S】服務(wù)發(fā)現(xiàn):通過(guò)內(nèi)網(wǎng)ULB訪問(wèn)Service教程
摘要:通過(guò)內(nèi)網(wǎng)訪問(wèn)使用提醒請(qǐng)勿修改由創(chuàng)建的及的名稱和備注,否則會(huì)導(dǎo)致異常無(wú)法訪問(wèn)。控制創(chuàng)建所在子網(wǎng),填寫(xiě)子網(wǎng)通過(guò)內(nèi)網(wǎng)對(duì)外暴露服務(wù)代表類型,為外網(wǎng),為內(nèi)網(wǎng)為默認(rèn)值,此處可省略。通過(guò)內(nèi)網(wǎng)ULB訪問(wèn)Service1、使用提醒請(qǐng)勿修改由UK8S創(chuàng)建的ULB及Vserver的名稱和備注,否則會(huì)導(dǎo)致Service異常無(wú)法訪問(wèn)。除外網(wǎng)EIP外,ULB相關(guān)參數(shù)目前均不支持Update,如不確認(rèn)如何填寫(xiě),請(qǐng)咨詢UC...
-
【容器云 UK8S】服務(wù)發(fā)現(xiàn):Kubernetes重要概念Service(即服務(wù),本文中兩者等同)以
摘要:介紹本章節(jié)主要為您簡(jiǎn)要介紹中的一個(gè)重要概念即服務(wù),本文中兩者等同,以及的相關(guān)知識(shí)。在每臺(tái)的固定端口上暴露服務(wù),選擇的服務(wù)類型,集群會(huì)自動(dòng)創(chuàng)建一個(gè)類型的服務(wù),負(fù)責(zé)處理接收到的外部流量。集群外部的可以通過(guò)的方式訪問(wèn)該服務(wù)。Service 介紹本章節(jié)主要為您簡(jiǎn)要介紹 Kubernetes 中的一個(gè)重要概念 Service(即服務(wù),本文中兩者等同),以及ULB的相關(guān)知識(shí)。Service 介紹Serv...
-
【容器云 UK8S】服務(wù)發(fā)現(xiàn):通過(guò)ULB暴露Kubernetes Dashboard和Ingress
摘要:通過(guò)暴露是社區(qū)的一個(gè)開(kāi)源項(xiàng)目,你可以通過(guò)來(lái)部署更新應(yīng)用排查應(yīng)用故障以及管理集群資源。執(zhí)行以下命令安裝,使用的鏡像已經(jīng)去掉了的證書(shū)限制。不支持的版本范圍。通過(guò)ULB暴露Kubernetes DashboardDashboard是Kubernetes社區(qū)的一個(gè)Web開(kāi)源項(xiàng)目,你可以通過(guò)Dashboard來(lái)部署更新應(yīng)用、排查應(yīng)用故障以及管理Kubernetes集群資源。另外,Dashboard還提...
-
【容器云 UK8S】服務(wù)發(fā)現(xiàn):如何使用已有的ULB?
摘要:指定已有的實(shí)例創(chuàng)建,被刪除后,實(shí)例不會(huì)被刪除,僅刪除對(duì)應(yīng)的。下面我們來(lái)看下如何使用已有的實(shí)例。使用已有的內(nèi)網(wǎng)聲明使用已有的內(nèi)網(wǎng),需要聲明至少兩個(gè)。使用已有的ULB背景UK8S支持在創(chuàng)建LoadBalancer類型的Service時(shí),指定使用已有的ULB實(shí)例,而不是創(chuàng)建一個(gè)新的ULB實(shí)例。也支持多個(gè)Service復(fù)用一個(gè)ULB實(shí)例,但存在以下規(guī)則限制:已有的ULB實(shí)例,必須是你自行創(chuàng)建的ULB...
-
Service 介紹 容器云 UK8S
摘要:介紹介紹介紹是集群中的一個(gè)資源對(duì)象,用于定義如何訪問(wèn)一組帶有相同特征的。下面我們分別介紹下如何通過(guò)在內(nèi)網(wǎng)外網(wǎng)訪問(wèn)。
Service 介紹本篇目錄1. Service 介紹2. ULB 簡(jiǎn)要介紹本章節(jié)主要為您簡(jiǎn)要介紹 Kubernetes 中的一個(gè)重要概念 Service(即服務(wù),本文中兩者等同),以及ULB的相關(guān)知識(shí)。1. Service 介紹Service 是 Kubernetes 集群中...
發(fā)表評(píng)論
0條評(píng)論
Tecode
男|高級(jí)講師
TA的文章
閱讀更多
tensorflow指定cpu
閱讀 3539·2023-04-25 20:09
香港云服務(wù)器這幾天網(wǎng)絡(luò)有沒(méi)有丟包嚴(yán)重
閱讀 3740·2022-06-28 19:00
EPC單機(jī)掛載UHOST-RSSD高速磁盤(pán)
閱讀 3061·2022-06-28 19:00
GPU活動(dòng)使用TIPS
閱讀 3084·2022-06-28 19:00
為科研量身定制,UCloud推出“云極”高性能計(jì)算EPC
閱讀 3176·2022-06-28 19:00
UCloud 2021年終特惠已開(kāi)啟,快杰O型ARM服務(wù)器上海節(jié)點(diǎn)重磅上線!
閱讀 2881·2022-06-28 19:00
“懂運(yùn)維、精運(yùn)營(yíng)、重服務(wù)” UCloud發(fā)布混合云多云管理平臺(tái)UCMP
閱讀 3050·2022-06-28 19:00
軟件定義存儲(chǔ) ,UCloudStor存儲(chǔ)?體機(jī)強(qiáng)勢(shì)登場(chǎng)
閱讀 2639·2022-06-28 19:00
閱讀需要支付1元查看
<