1. 程式人生 > 其它 >|NO.Z.00154|——————————|CloudNative|——|KuberNetes&服務釋出.V05|-------------------------------------------------------|service.v01|概述|

|NO.Z.00154|——————————|CloudNative|——|KuberNetes&服務釋出.V05|-------------------------------------------------------|service.v01|概述|



[CloudNative:KuberNetes&服務釋出.V05]                                                               [Applications.KuberNetes] [|DevOps|k8s|服務釋出|在k8s中如何釋出服務|service|使用service代理k8s內部服務|]








一、在k8s中如何釋出服務概述
### --- 服務訪問分為兩種形式:

~~~     第一種:服務之間的呼叫;就是我們部署了兩個應用,這兩個都是後端應用;比如是ServerA,serviceB兩個服務之間的呼叫。
~~~     第二種:使用者流量的訪問,使用者通過域名去訪問。
~~~     # 東西流量:服務之間的訪問,一般有service實現
~~~     # 南北流量:使用者從外網進來的流量,一般有ingress實現
二、傳統模式和k8s下如何釋出服務的:傳統模式:在沒有使用k8s之前,是如何實現東西流量的呼叫的? 三、傳統模式和k8s下如何釋出服務的:在k8s中釋出服務的方式
### --- 在k8s中釋出服務的方式

~~~     # 比如Node中是java程序;比如Java1要呼叫Java2是如何呼叫的:
~~~     方案一:直接使用localhost,這種是可以的,但是java1和java2並不一定是在同一臺宿主機上的,所以不能使用localhost呼叫。
~~~     方案二:一般都是加入負載均衡。一般都是加入一個域名,通過pass或者location來呼叫。java1通過域名加路徑來訪問java2 
~~~     # 第二種:
~~~     使用的是springclus架構;使用的是Eureka。
~~~     java1和java2啟動的時候會通過啟動註冊的方式把自己的資訊註冊到Eureka中,
~~~     Eureka會有一張登錄檔,這張登錄檔記錄了每個應用的IP地址加埠,
~~~     然後這個登錄檔會被java1和java2拉取到自己的本地儲存。
~~~     加入java1訪問java2就會讀取這個檔案,對應這個檔案會解析出java2的IP地址和埠,
~~~     就可以訪問到java2了。這種方式就是不需要使用nginx進行反代的。
~~~     這就是Eureka比較好用的地方:因為它本身就為我們實現了高可用的機制,
~~~     容錯的機制,負載均衡的機制。
四、在k8s中,是如何實現東西流量的呼叫的?k8s模式下?
### --- 在k8s中,是如何實現東西流量的呼叫的?k8s模式下?

~~~     Java1和Java2是以Pod的形式部署的,在這個k8s中有service
~~~     我們會給k8s中裝入service:java1-svc和Java2-svc
~~~     這個service通過selector匹配這個Pod,所以說在k8s中給java1和java2建立一個service,
~~~     這樣java1想要訪問java2的話,就可以直接使用http://java2-svc:埠號就可以訪問到java24
~~~     若是在你的k8s中部署了springclus架構,
~~~     並且沒有把Eureka元件給拋棄掉的話,就可以不用建立service,而是直接使用Eureka來實現。
五、南北流量東西流量實現方式:
### --- 南北流量:是如何實現的:傳統模式

~~~     假設有使用者進行訪問我們的域名:www.a.com/api;經過公網的DNS解析,
~~~     解析到這個域名的IP地址是什麼,這個IP地址到服務後臺負載均衡裝置上,假設到了Nginx上。
~~~     假設www.a.com訪問到這個負載均衡器上nginx,
~~~     這個API介面會在nginx上配置這個service的域名,他就可以訪問到我們的服務
~~~     比如是springcluts架構,它會提供一個Zuul,它會做pass的路由。
~~~     只需要把API介面指向Zuul就可以了。根指向我們的前端。

### --- 南北流量:在k8s中是如何通過域名的方式訪問到我們的服務的。

~~~     Node03是部署的我們的前端應用。
~~~     Ingress提供一個LB的功能;會在Ingress配置這個域名,配置之後會匹配到這個service上。
~~~     Ingress是通過yaml檔案通過註釋的方式去寫Ingress去寫這個配置檔案的。
~~~     在Ingress上配置了兩個路由,一個是根www.a.com到我們的前端上,
~~~     一個是到後端應用上的:/api/java1,這樣就實現了南北流量的呼叫。








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)