程式狂想筆記

一個攻城師奮鬥史

0%

Kind 建置 Cluster

最近看 Kuberenets 看到 DaemonSet,由於目前 Kind 跟 MiniKube 都是使用單結點,沒辦法用 Cluster,今天照 Kind 實作看看。

安裝 Kind

1
2
3
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/

可以看kind – Quick Start

建置 Cluster

1
2
3
4
5
# 預設 cluster context 名稱為 `kind`.
kind create cluster

# 名稱為 kind-2
kind create cluster --name kind-2

這邊建立出來會有兩個 Cluster
但這兩個 Cluster 是分開的

等等,我不是要分開的

查看哪些 Cluster

1
2
3
4
5
kind get clusters
# kind
# kind-2
kubectl cluster-info --context kind-kind
kubectl cluster-info --context kind-kind-2

等等,我不是要分開的

刪除 Cluster

1
kind delete cluster --name kind-2

Multi-node clusters

1
2
3
4
5
6
7
# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
1
2
3
4
5
6
7
8
9
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: control-plane
- role: control-plane
- role: worker
- role: worker
- role: worker

上面 yml 選一個跑

1
kind create cluster --config kind-example-config.yaml

建立這麼簡單
感覺跟 Docker Swarm 一樣

我以為要注意在連 Cluster 看當下 node 有哪些 container
看來全部都合起來了

看完,真的是白擔心了
真的可以單結點來測試

不過,DaemonSet 好像能控制在哪個 nodes 執行
建立 Cluster 多 node 也不錯

發現重開機,kubectl 就會連不到
所以,應該只能重建

後來有爬到原因,原因是 Kind 是使用 Docker in Docker 技術,所以Container 建立的時候是使用容器的 IP,所以重開機的時候,重啟IP會不一樣,Kubernetes 會連不到之前設定,所以重建會比較快。

安裝 kubectl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

echo "$(<kubectl.sha256) kubectl" | sha256sum --check


sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

#
# chmod +x kubectl
# mkdir -p ~/.local/bin/kubectl
# mv ./kubectl ~/.local/bin/kubectl
# and then add ~/.local/bin/kubectl to $PATH