Day 5: Kubernetes 基本架構及安裝
Day 6: 使用 kubectl 指令管理 Kubernetes 集群
Day 7: Kubernetes Pod 與 Deployment 深入解析
Day 8: Kubernetes Service 與負載均衡機制
Day 9: Kubernetes Persistent Volumes (PV) 與 Persistent Volume Claims (PVC)
Kubernetes Service 為一組動態 Pod 提供穩定的訪問入口,並通過內置的負載均衡機制將流量均勻分配給所有 Pod。NodePort 類型的 Service 將流量通過節點上的指定端口暴露給外部,方便外部客戶端訪問集群內的服務。
為了讓上一篇部署的apache服務能夠被外部訪問,需要暴露端口!
本篇需要包含上一篇部署的deployment.yml才算完整的部署喔
建立目錄跟開啟編輯器應該不用再提醒了吧!
#建立目錄(上一篇已經建立的話可忽略)
mkdir apache
cd apache
sudo nano service.yml
貼入以下內容
apiVersion: v1
kind: Service
metadata:
name: apache-service
spec:
selector:
app: apache
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080 # 手動指定 NodePort
type: NodePort
建立了完整的service.yml文件之後
再用套用指令,去吃到這個文件
kubectl apply -f service.yml
再來打開瀏覽器
通過節點 IP 和端口 30080 訪問 Apache 服務:
http://localhost:30080
或
http://Node-IP:30080
確認流量是否均勻分配到不同的pod上面
多次刷新頁面之後直接查看日誌是否有被打到
kubectl logs <pod-name>
通過curl工具輪詢之後再查看pod日誌
for i in {1..10}; do curl http://<Node-IP>:30080; done
至此,就是deployment+service的應用了!