---
# System prepended metadata

title: Kubernetes 學習筆記

---

# Kubernetes 常用指令

### 語法格式
```bash
kubectl [command] [type] [name] [flags]
```

- kubectl get pod / get po / get pods
- kubectl get service / get services / get svc
- kubectl get deployment / get deployments / get deploy
- kubectl delete po / svc

###### (可加 -o wide 顯示更多 pod 的資訊)
- kubectl describe pod / svc / deploy
- kubectl attach <pod> -i : 直接與pod互動
- 取得log
```bash
kubectl logs <podName>
# streaming 輸出 log，類似 'tail' Linux 命令
kubectl logs -f <pod-name>
```

ref: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
    
    
### 問題
Q: pod 與 service 之定義
A:
Pod 是 Kubernetes 中最小的部署單位，它可以包含一個或多個緊密耦合的 Container，這些 Container 共享網路、存儲等資源。每個 Pod 有自己的 IP 地址，通常在短期內是穩定的，但可能隨時會改變，因為 Pod 是易揮發的，當 Pod 崩潰或被刪除時，Kubernetes 會重新創建一個新的 Pod，可能會分配一個新的 IP。

Service 是 Kubernetes 中的穩定訪問點，它為一組 Pod 提供統一的訪問入口。Service 通常通過一個靜態的 IP 地址（ClusterIP）或域名來讓其他 Pod 或外部用戶訪問背後的 Pod 群組。Service 會自動負載均衡到它後端的所有 Pod 上，即使 Pod 被刪除和重建，Service 仍然保持穩定的訪問地址。