以下是一個完整的例子,展示瞭如何使用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/