基本知識有了,接下來我們透過 Hands-on Lab 來體驗 kubernetes 吧!
我們今天是透過在 Kubernetes 集群上部署一個基本的 Web 應用,並使用 kubectl 命令進行管理。
這篇文章我們可以:
系統是使用 Ubuntu 22.04 LST
如果要安裝 Minikube,請使用以下指令安裝
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb
啟動本地 Kubernetes 集群:
minikube start
確保 kubectl 配置為使用我們的集群:
kubectl config use-context minikube
編寫一個 YAML 文件來部署 Web 應用。
我們需要建立一個名為 deployment.yaml 的文件,內容如下:
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
配置文件定義了一個 Kubernetes Deployment,名為 webapp-deployment,該 Deployment 會建立兩個副本的 Nginx 容器。
它使用 app: webapp 作為選擇標籤,並指定容器的端口為 80。
應用 Deployment:
kubectl apply -f deployment.yaml
建立一個服務來暴露 Web 應用。
建立一個名為 service.yaml 的文件,內容如下:
apiVersion: v1
kind: Service
metadata:
  name: webapp-service
spec:
  type: NodePort
  selector:
    app: webapp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
配置文件定義了一個 Kubernetes Service,名為 webapp-service,其類型為 NodePort。
這個 Service 會選擇具有 app: webapp 標籤的 Pods,並將外部的 80 端口映射到內部容器的 80 端口,以提供對 Web 應用的訪問。
應用服務:
kubectl apply -f service.yaml
檢查 Deployment 的狀態:
kubectl get deployments
檢查 Pods 的狀態:
kubectl get pods
檢查服務的狀態:
kubectl get services
查找分配給服務的 NodePort,並通過瀏覽器訪問:
minikube service webapp-service --url
此時輸入該網址就可以看到我們建立的預設網頁了

將 Deployment 擴展到 3 個副本:
kubectl scale deployment webapp-deployment --replicas=3
驗證擴展情況:
kubectl get pods

刪除 Deployment 和服務:
kubectl delete -f deployment.yaml
kubectl delete -f service.yaml