iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0
Kubernetes

從Docker到Kubernetes-新手入門筆記系列 第 28

Day28 Ingress Service-Kubernetes要如何處理Request

在之前docker的介紹是用nginx來處理incoming request,kubernetes把處理request抽象化成一個物件

處理kubernetes外部requests並導到對應的Cluster IP Service需要用到Ingress Service。

同樣在kubernetes也推薦使用nginx,但並不是向前面指定nginx image,然後用Deployment跑起來,

因為在kubernetes要修改nginx image下nginx.conf,並不是向在docker裡面那麼直觀,

所以也就有community寫好的yaml檔(https://github.com/kubernetes/ingress-nginx/)

教學參考官網https://kubernetes.github.io/ingress-nginx Deployment部分

必要的Generic Deployment

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml

結果:

在local測試只要套用Generic設定檔

部署到Google Cloud、AWS、Azure的話要另外套用對應的cloud provider,啟用Loading Balancing feature

再來是要建立類似routing設定檔,要告訴kubernetes,request url跟cluster service的對應關係,例如:

  • path: /
    • 對應frontend-service
  • path: /api
    • 對應nestjsapi-service

建立ingress-deployment.yaml

apiVersion: extensions/v1beta1 # 新"名詞"要再研究
kind: Ingress 
metadata: 
  name: ingress-service
  annotations: # 新"名詞"要再研究
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules: 
    - http:
          paths: # 以下就是不同path對應的clusterip-service
            - path: /
              backend:
                serviceName: frontend-service   
                servicePort: 4200
            - path: /api
              backend:
                serviceName: nestjsapi-service
                servicePort: 5000

最後要minikube enable ingress

minikube enable ingress


上一篇
Day27 建立Persistent Volume Claim(下)
下一篇
Day29 Kubernetes 環境變數及Secret Object
系列文
從Docker到Kubernetes-新手入門筆記30

尚未有邦友留言

立即登入留言