使用 k8s 快速部署應用服務

Ryan_zheng發表於2024-04-26

以下是一個完整的例子,展示瞭如何使用Kubernetes部署一個簡單的Web應用程式。這個例子包括一個Deployment和一個Service。

首先,建立一個名為webapp-deployment.yaml的Deployment配置檔案:

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

這個Deployment配置將建立一個名為webapp-deployment的Deployment,它包含兩個副本的Pods,每個Pod都執行一個Nginx容器,監聽80埠。

接下來,建立一個名為webapp-service.yaml的Service配置檔案:

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

這個Service配置將建立一個名為webapp-service的Service,它將外部請求的80埠轉發到標籤為app: webapp的Pods的80埠。type: LoadBalancer指示雲提供商為Service提供一個外部可訪問的負載均衡器。

現在,使用kubectl命令來建立這些資源:

kubectl apply -f webapp-deployment.yaml
kubectl apply -f webapp-service.yaml

檢查Deployment和Pods的狀態:

kubectl get deployment webapp-deployment
kubectl get pods -l app=webapp

檢查Service的狀態,並獲取外部訪問的IP地址(如果是LoadBalancer型別):

kubectl get service webapp-service

如果一切正常,你應該能夠看到Pods正在執行,Service已經分配了一個外部IP地址。你可以透過瀏覽器訪問這個IP地址來檢視Nginx的預設歡迎頁面。

如果你需要更新應用程式,比如使用一個新版本的Nginx映象,你只需要更新webapp-deployment.yaml檔案中的映象標籤,並重新應用配置:

containers:
- name: webapp
  image: nginx:1.19.0 # 更新為新的映象版本
  ports:
  - containerPort: 80

然後執行:

kubectl apply -f webapp-deployment.yaml

Kubernetes將執行滾動更新,逐步替換舊的Pods,而不會中斷服務。

請記住,這個例子假設你已經有一個Kubernetes叢集在執行,並且你的kubectl配置正確。如果你使用的是雲服務提供商的Kubernetes服務,LoadBalancer型別的Service將自動為你建立一個外部負載均衡器。如果你在本地或沒有負載均衡器的環境中執行,你可能需要使用NodePort或其他方法來暴露你的服務。

原文地址:https://www.ryanzoe.top/k8s/%e4%bd%bf%e7%94%a8-k8s-%e5%bf%ab%e9%80%9f%e9%83%a8%e7%bd%b2%e5%ba%94%e7%94%a8%e6%9c%8d%e5%8a%a1/

相關文章