# 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 仍然保持穩定的訪問地址。