iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0

前言:

  • 建立微服務

建立微服務

  • 如何建立微服務先撇出不使用Istio建立起一個基本需要有幾個要素,以下會做個簡單範例:
    1. 第一個,需要有服務也就是所謂的pod
    2. 第二個,service因為在K8S世界中要讀取服務(pod)一定要透過Service的方式
    3. 第三個,ingress算是一個類似nginx的轉導router,用ingress方式設定網址綁定憑證(在GCP中若使用ingress防火牆規則將不受限制需要透過cloud armor去阻擋)

Deployment(Pod)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

Service

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
spec:
  rules:
  - host: "test.com"
    http:
      paths:
      - pathType: Prefix
        path: "/nginx"
        backend:
          service:
            name: nginx
            port:
              number: 80
  • 服務如何部署至建立起的運作
    • 在K8S世界中所有服務流程都是透過YAML,不得不說很多時候自己比較像是YAML工程師,這裡建議可以使用Helm若需要管理部署可以有很大的幫助,畢竟大量的YAML是非常眼花撩亂的
    • 然而服務的建立也需要有相對應的image當你本機建立起dockerfile build image只需要在GCP上開立一個私倉push image放至對應服務image並且標上tag就可以很簡單的切換服務版本,這在更版上也是非常的便利。

結語:

  • 今天介紹GCP K8S如何用最簡單的最低標準方式建立起一個服務並切運行換版,雖然這篇較與Istio沒相關但也是建立起整個服務上很重要的基礎。

上一篇
GCP K8S Istio建置(二)
下一篇
Istio 1.7
系列文
淺談 Istio30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言