Kubernetes 部署簡單的應用
Kubernetes 是一個強大的容器編排平臺,它可以幫助我們自動化應用程序的部署、擴展和管理。在本期文章中,我們將學習如何使用 Kubernetes 部署一個簡單的應用程序。
1. 環境準備
確保你已經安裝了 Kubernetes 集群,并且 kubectl 工具已經配置好。如果你還沒有安裝 Kubernetes,可以參考我之前的文章《Kubernetes 的基本概念與安裝》。
2. 部署應用程序
我們將使用一個簡單的 Python 應用程序作為示例。這個應用程序會監聽 80 端口,并返回一個簡單的 HTML 頁面。
步驟 1: 創建 Docker 鏡像
首先,我們需要創建一個 Docker 鏡像。創建一個名為 app.py
的 Python 文件,內容如下:
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello():return "Hello, Kubernetes!"if __name__ == '__main__':app.run(host='0.0.0.0', port=80)
然后,創建一個名為 Dockerfile
的文件,內容如下:
FROM python:3.8-slimWORKDIR /appCOPY . /appRUN pip install flaskCMD ["python", "app.py"]
使用以下命令構建 Docker 鏡像:
docker build -t my-app:latest .
步驟 2: 推送 Docker 鏡像到容器鏡像倉庫
將 Docker 鏡像推送到你選擇的容器鏡像倉庫,例如 Docker Hub:
docker tag my-app:latest yourusername/my-app:latest
docker push yourusername/my-app:latest
步驟 3: 創建 Kubernetes Deployment
創建一個名為 deployment.yaml
的文件,內容如下:
apiVersion: apps/v1
kind: Deployment
metadata:name: my-app
spec:replicas: 3selector:matchLabels:app: my-apptemplate:metadata:labels:app: my-appspec:containers:- name: my-appimage: yourusername/my-app:latestports:- containerPort: 80
使用以下命令創建 Deployment:
kubectl apply -f deployment.yaml
步驟 4: 創建 Kubernetes Service
創建一個名為 service.yaml
的文件,內容如下:
apiVersion: v1
kind: Service
metadata:name: my-app-service
spec:selector:app: my-appports:- protocol: TCPport: 80targetPort: 80type: LoadBalancer
使用以下命令創建 Service:
kubectl apply -f service.yaml
3. 訪問應用程序
現在,你的應用程序已經在 Kubernetes 集群中運行。如果你使用的是云服務商提供的 Kubernetes 服務,Service 會被自動分配一個外網 IP 地址。你可以使用以下命令查看 Service 的狀態:
kubectl get service my-app-service
復制 Service 的外網 IP 地址,然后在瀏覽器中訪問它。你應該能看到一個顯示 “Hello, Kubernetes!” 的頁面。
4. 總結
通過本文,我們學習了如何使用 Kubernetes 部署一個簡單的應用程序。這個示例應用程序非常簡單,但它展示了 Kubernetes 的基本部署流程。你可以使用相同的方法部署更復雜的應用程序,并根據需要調整 Deployment 和 Service 的配置。