国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【容器云 UK8S】服務發現:通過外網ULB訪問Service教程

Tecode / 2568人閱讀

摘要:通過外網訪問使用提醒請勿修改由創建的及的名稱和備注,否則會導致異常無法訪問。通過外網暴露服務以后的插件,外網同時支持和兩種協議,下文示例中,對外暴露了三個端口,其中端口使用協議,和使用協議。是否支持多協議目前同時支持和協議。

通過外網ULB訪問Service

1、使用提醒

  1. 請勿修改由UK8S創建的ULB及Vserver的名稱和備注,否則會導致Service異常無法訪問。
  2. 除外網EIP外,ULB相關參數目前均不支持Update,如不確認如何填寫,請咨詢UCloud 技術支持。

2、使用UDP協議前必讀

  1. 目前ULB4針對UDP協議的健康檢查支持ping和port兩種模式,默認為ping,強烈推薦改為port;
  2. port健康檢查的后端實現是對UDP端口發送UDP報文( "Health Check" 字符串)和針對RS IP發送ICMP Ping報文。 如果超時時間內回復了UDP報文則認為健康;如果超時時間沒收到UDP回包,則以Ping的探測結果為準。因此您的應用程序需要響應UDP健康檢查報文。
  3. 需要注意的是UDP回包長度不要超過1440,以避免可能的分片導致ULB4無法收到健康檢查響應,導致健康檢查失敗。

3、選擇UL4還是ULB7

外網模式下,ULB支持“報文轉發(ULB4)”及“請求代理(ULB7)”兩種轉發模式,推薦使用ULB4,因為ULB4的性能更好;

4、操作指南

4.1、通過外網ULB4暴露服務(TCP)

使用外網ULB4來暴露服務非常簡單,對于TCP協議,可不填寫任何 annotations。
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為外網,inner為內網;outer為默認值,此處可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "tcp"
    # 表示ULB協議類型,tcp與udp等價,表示ULB4;http與httpS等價,表示ULB7;tcp為默認值,此處可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-eip-bandwidth": "2" 
    # bandwidth下默認為2Mpbs建議顯式聲明帶寬大小,避免費用超標。
    "service.beta.kubernetes.io/ucloud-load-balancer-eip-chargetype": "month" 
    # 付費模式,支持month,year,dynamic,默認為month
    "service.beta.kubernetes.io/ucloud-load-balancer-eip-quantity": "1" 
    # 付費時長,默認為1,chargetype為dynimic時無效    
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

4.2、通過外網ULB4暴露服務(UDP協議)

相對于TCP應用,務必在annotations中顯式聲明健康檢查的類型為port,否則ULB可能將正常工作的Pod認為不健康,導致流量轉發異常。

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網絡類型,outer為外網,inner為內網;outer為默認值,此處可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "udp"
    # 表示ULB協議類型,tcp與udp等價,表示ULB4;http與httpS等價,表示ULB7;tcp為默認值,此處可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-type": "port"
     # 對于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 

5、重要說明

UK8S的cloudprovider 插件做一個大更新,大于等于19.05.3的版本支持多端口,指定ULB-id等功能,你可以通過如下命令查看cloudprovider的版本:

[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

升級指南即將發布,如有需求,請聯系UCloud技術支持。

通過外網ULB7暴露服務(cloudprovider-ucloud version<19.05.3)

老版本的ULB7只支持單種協議,即HTTP或HTTPS。 下文示例中,對外暴露2個端口都使用HTTP協議。


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為外網,inner為內網;outer為默認值,此處可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-listentype": "requestproxy"
    # 代表監聽器的類型為請求代理,必須填寫。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "http"
    # 表示Verser的協議類型,此處為http,則所有的service端口對應的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

通過外網ULB7暴露服務(cloudprovider-ucloud version>=19.05.3)

19.05.3以后的插件,外網ULB7同時支持HTTP和HTTPS兩種協議,下文示例中,對外暴露了三個端口,其中80端口使用HTTP協議,443和8443使用HTTPS協議。


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為外網,inner為內網;outer為默認值,此處可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-listentype": "requestproxy"
    # 代表監聽器的類型為請求代理,5月30日后安裝的集群無需填寫。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "https"
    # 表示ULB協議類型,http與https等價,表示ULB7;
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert": "ssl-b103etqy"
    # 聲明要綁定的SSL證書Id,需要先將證書上傳至UCloud;
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-port": "4438443"
    # 聲明使用SSL協議的Service端口,多個用""分隔;
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

HTTPS支持(cloudprovider-ucloud version<19.05.3)

小于19.05.3版本的插件,所有service端口只能是HTTP或HTTPS,不能混合使用。

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為外網,inner為內網;outer為默認值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-listentype": "requestproxy"
# 代表監聽器的類型為請求代理,插件版本小于19.05.3的版本必須填寫。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "https"
# 表示Verser的協議類型,此處為https,則所有的service端口對應的Vserver protocol 都為https,反之亦然。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert": "ssl-b103etqy"
# 聲明要綁定的SSL證書Id,需要先將證書上傳至UCloud;

spec:
type: LoadBalancer
ports:

- protocol: TCP
  port: 443
  targetPort: 80
  name: https
- protocol: TCP
  port: 80
  targetPort: 80
  name: httpstoo

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


### HTTPS支持(cloudprovider-ucloud version>=19.05.3)

外網ULB支持HTTPS協議。用戶通過service.metadata.annotations中的service.beta.kubernetes.io/ucloud-load-balancer-ssl-cert來指定已經上傳的TLS證書ID。

通過service.metadata.annotations中的service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-port來指定HTTPS服務端口,如有多端口,用""分隔。

如果某個ServicePort 被指定為HTTPS服務端口,并且已提交TLS證書ID,則該ServicePort所對應的VServer協議為HTTPS。

使用ULB7的HTTPS協議模式時,Pod內的服務程序不需要實現HTTPS協議服務,只需要提供HTTP服務即可,ULB7發往后端的報文為解密后的HTTP協議報文。

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為外網,inner為內網;outer為默認值,此處可省略。
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "http"
# 表示ULB協議類型,http與https等價,表示ULB7;
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert": "ssl-b103etqy"
# 聲明要綁定的SSL證書Id,需要先將證書上傳至UCloud;
"service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-port": "443"
# 聲明使用SSL協議的Service端口,多個用""分隔;

spec:
type: LoadBalancer
ports:

- protocol: TCP
  port: 443
  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

### 常見問題

#### 1. 如何區別使用ULB4還是ULB7?

通過service.metadata.annotations中的service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol值來聲明使用ULB4還是ULB7。

如果值為tcp或者udp則使用ULB4。

如果是http或者https,則使用ULB7。

#### 2. 一個LoadBalancer的Service是否支持多端口?

支持,UK8S會為service.spec.ports下每個ServicePort分別創建一個VServer,VServer端口為Service端口。

#### 3. 是否支持多協議?

目前UK8S同時支持HTTP和HTTPS協議。

#### 4. UK8S的LoadBalancer類型的Service是否支持UDP?

目前已支持,后續計劃支持,灰度中。

#### 5. 如果Loadbalancer創建外網ULB后,用戶在ULB控制臺頁面綁定了新的EIP,會被刪除嗎?

只有訪問SVC的ExternalIP才能把流量導入后端Pod,訪問其他EIP無效。刪除SVC時,所有EIP都會被刪除。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/126267.html

相關文章

  • 容器 UK8S服務發現通過內網ULB訪問Service教程

    摘要:通過內網訪問使用提醒請勿修改由創建的及的名稱和備注,否則會導致異常無法訪問。控制創建所在子網,填寫子網通過內網對外暴露服務代表類型,為外網,為內網為默認值,此處可省略。通過內網ULB訪問Service1、使用提醒請勿修改由UK8S創建的ULB及Vserver的名稱和備注,否則會導致Service異常無法訪問。除外網EIP外,ULB相關參數目前均不支持Update,如不確認如何填寫,請咨詢UC...

    Tecode 評論0 收藏0
  • 容器 UK8S服務發現:Kubernetes重要概念Service(即服務,本文中兩者等同)以

    摘要:介紹本章節主要為您簡要介紹中的一個重要概念即服務,本文中兩者等同,以及的相關知識。在每臺的固定端口上暴露服務,選擇的服務類型,集群會自動創建一個類型的服務,負責處理接收到的外部流量。集群外部的可以通過的方式訪問該服務。Service 介紹本章節主要為您簡要介紹 Kubernetes 中的一個重要概念 Service(即服務,本文中兩者等同),以及ULB的相關知識。Service 介紹Serv...

    Tecode 評論0 收藏0
  • 容器 UK8S服務發現通過ULB暴露Kubernetes Dashboard和Ingress

    摘要:通過暴露是社區的一個開源項目,你可以通過來部署更新應用排查應用故障以及管理集群資源。執行以下命令安裝,使用的鏡像已經去掉了的證書限制。不支持的版本范圍。通過ULB暴露Kubernetes DashboardDashboard是Kubernetes社區的一個Web開源項目,你可以通過Dashboard來部署更新應用、排查應用故障以及管理Kubernetes集群資源。另外,Dashboard還提...

    Tecode 評論0 收藏0
  • 容器 UK8S服務發現:如何使用已有的ULB

    摘要:指定已有的實例創建,被刪除后,實例不會被刪除,僅刪除對應的。下面我們來看下如何使用已有的實例。使用已有的內網聲明使用已有的內網,需要聲明至少兩個。使用已有的ULB背景UK8S支持在創建LoadBalancer類型的Service時,指定使用已有的ULB實例,而不是創建一個新的ULB實例。也支持多個Service復用一個ULB實例,但存在以下規則限制:已有的ULB實例,必須是你自行創建的ULB...

    Tecode 評論0 收藏0
  • Service 介紹 容器 UK8S

    摘要:介紹介紹介紹是集群中的一個資源對象,用于定義如何訪問一組帶有相同特征的。下面我們分別介紹下如何通過在內網外網訪問。 Service 介紹本篇目錄1. Service 介紹2. ULB 簡要介紹本章節主要為您簡要介紹 Kubernetes 中的一個重要概念 Service(即服務,本文中兩者等同),以及ULB的相關知識。1. Service 介紹Service 是 Kubernetes 集群中...

    ernest.wang 評論0 收藏2037

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<