1. 程式人生 > 其它 >|NO.Z.00418|——————————|CloudNative|——|KuberNetes&NetworkPolicy.V10|-------------------------------------------------|Ingress.v01|服務釋出限制.v01|

|NO.Z.00418|——————————|CloudNative|——|KuberNetes&NetworkPolicy.V10|-------------------------------------------------|Ingress.v01|服務釋出限制.v01|



[CloudNative:KuberNetes&NetworkPolicy.V10]                                                       [Applications.KuberNetes] [|NetworkPolicy|服務釋出限制於Ingress|環境準備|沒有網路策略限制驗證|]








一、服務釋出限制於Ingress:架構圖
二、架構圖概述
### --- 架構圖概述

~~~     一個專案前端和閘道器對外暴露,其它的應用是不需要對外暴露得
~~~     假設有一個SpringCloud專案,可能會有一個nodejs作為前端,zuul作為閘道器入口,
~~~     釋出應用的時候,會在ingress-nginx上配置一個根到前端
~~~     再配置一個api到zuul,這個zuul就會實現內部的路由。
~~~     那麼就需要這2個服務暴露對外即可,其它的微服務是不需要暴露在外的。
~~~     就需要把nodejs和zuul公佈於ingress controller,只要ingress controller訪問這2個微服務,
~~~     那麼就在這個名稱空間下配置網路策略,只需要ingress,controller前端訪問nodejs和zuul
三、建立nginx服務
### --- 建立nginx服務

[root@k8s-master01 ~]#  kubectl  create deploy nginx --image=registry.cn-beijing.aliyuncs.com/dotbalo/nginx:latest -n nw-demo
deployment.apps/nginx created
### --- 暴露服務

[root@k8s-master01 ~]# kubectl expose deploy nginx -n nw-demo --port=80
service/nginx exposed 
四、檢視建立的pod和service
### --- 檢視建立的pod

[root@k8s-master01 ~]# kubectl get po -n nw-demo -owide
NAME                     READY   STATUS    RESTARTS   AGE     IP               NODE           NOMINATED NODE   READINESS GATES
nginx-67d8d8bffb-6zjzx   1/1     Running   0          4m51s   172.25.92.116    k8s-master02   <none>           <none>
### --- 檢視建立的service

[root@k8s-master01 ~]# kubectl get svc -n nw-demo -owide
NAME    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE   SELECTOR
nginx   ClusterIP   10.96.82.110   <none>        80/TCP    55s   app=nginx
### --- 檢視建立的endpoints

[root@k8s-master01 ~]# kubectl get endpoints -n nw-demo -owide
NAME    ENDPOINTS          AGE
nginx   172.25.92.116:80   61s
五、驗證測試
### --- 驗證在沒有做任何網路策略的情況下是否可以通訊
~~~     在宿主機上訪問nginx服務

[root@k8s-master01 ~]# curl 10.96.82.110
<h1>Welcome to nginx!</h1>
### --- 在不同namespace下通過pod驗證是否可以通訊
~~~     # 通過default名稱空間下pod驗證

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS    RESTARTS   AGE   IP               NODE           NOMINATED NODE   READINESS GATES
debug-tools                   1/1     Running   1          29m   172.25.244.242   k8s-master01   <none>           <none>
~~~     # 驗證是否可以訪問
~~~     跨namespace反問是可以通訊的 

[root@k8s-master01 ~]# kubectl exec -ti debug-tools  -- bash
(14:30 debug-tools:/) curl http://nginx.nw-demo
<h1>Welcome to nginx!</h1>








===============================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)