# Kind (K8s) ```shell! # 在 macOS 上用 Homebrew 安裝 Kind brew install kind # 創建 Kind 集群,查看並指定上下文設定 kind create cluster --name tsipkun kubectl config get-contexts kubectl config use-context kind-tsipkun # 驗證 Kind 集群狀態 kubectl get nodes kubectl cluster-info # 本地私有映像檔未上傳到公有倉庫的,必須導入 Kind 集群 (名稱不帶 kind- 前綴) kind load docker-image wujidadi/workerman:20250315144332 --name tsipkun # 建立 pod kubectl apply -f {path of pod yaml file} kubectl get pods # 進入容器 kubectl exec -it {pod name} -c {container name} -- {command} # ex: kubectl exec -it workerman-pod -c main-app -- zsh # 刪除 pod kubectl delete pod {pod name} ``` ## kind-config.yaml * **apiVersion** 目前推薦使用 `kind.x-k8s.io/v1alpha4`,基本上用它就好 * **nodes.role** 一般是 `control-plane`,一般集群至少需要且只需要一個 control-plane 還有一個常用的值是 `worker`,待研究 ## Loopback 問題 * 在 K8s 容器內,監聽 IP 和 port 不能使用 loopback 介面的 **localhost** 或 **127.0.0.1**,否則會映射不到宿主上 * ChatGPT o3-mini-high 模型的說明: > 簡單來說,容器內的 **localhost** 或 **127.0.0.1** 只代表這個容器自己的「內部網路」,類似你家裡的私人房間。當你在容器內只用這個地址監聽時,只有容器內部的程式能連上它,但外面的宿主機或其他容器是「看不到」這個房間的。 > > 舉個例子: > > - **內部房間(localhost):** 如果你在自己的房間裡開了一家小店,只有房間裡的人(容器內的程式)能進來。 > - **大廳(0.0.0.0):** 如果你把小店設在家裡的客廳(用 0.0.0.0 綁定所有網路介面),那麼家裡的其他人(宿主機或其他容器)就能找到並進來。 > > 因此,如果你希望容器的服務能夠通過 port mapping 從外部連接到宿主機,就需要讓它監聽在能夠被外部訪問的介面上,而不是僅限於內部的 loopback。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up