kind 快速开始
使用二进制安装
在发布页面上下载。
1 2 3
| curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/v0.13.0/kind-linux-amd64 chmod +x ./kind mv ./kind /some-dir-in-your-PATH/kind
|
创建集群
1 2 3 4 5 6
| kind create cluster
kind create cluster --name kind-2
kind delete cluster
|
列出kind集群
与特定集群交互
1 2 3
| kubectl cluster-info --context kind-kind kubectl cluster-info --context kind-kind-2
|
删除集群
1 2 3 4
| kind delete cluster
kind delete cluster --name kind-2
|
加载容器镜像到集群
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| kind load docker-image my-custom-image-0 my-custom-image-1
kind load docker-image my-custom-image-0 my-custom-image-1 --name kind-2
kind load image-archive /my-image-archive.tar
docker build -t my-custom-image:unique-tag ./my-image-dir kind load docker-image my-custom-image:unique-tag kubectl apply -f my-manifest-using-my-image:unique-tag
docker exec -it my-node-name crictl images
|
Kubernetes 默认拉取策略是 IfNotPersent
;除非镜像标签是 latest
或省略,在这种情况下,默认策略是 Always
。
IfNotPresent
:Kubelet 跳过拉取已存在的镜像。
指定拉取策略:
iamgePullPolicy: IfNotPresent
或 imagePullPolicy: Never
配置你的 kind 集群
详细配置
一个配置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane
extraPortMappings: - containerPort: 30080 hostPort: 30080 protocol: TCP
- role: worker kubeadmConfigPatches: - | kind: JoinConfiguration nodeRegistration: kubeletExtraArgs: node-labels: "ingress-ready=true" extraPortMappings: - containerPort: 80 hostPort: 80 listenAddress: "0.0.0.0" protocol: TCP - containerPort: 443 hostPort: 443 protocol: TCP - role: worker - role: worker
|
使用指定配置文件创建集群,使用 --config
标志。
1
| kind create cluster --config kind-example-config
|
多节点集群
1 2 3 4 5 6 7
| kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - role: worker
|
控制平面 HA
1 2 3 4 5 6 7 8 9 10
| kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: control-plane - role: control-plane - role: worker - role: worker - role: worker
|
映射端口到主机
使用 extraPortMappings
映射额外端口到主机
1 2 3 4 5 6 7 8 9
| kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane extraPortMappings: - containerPort: 80 hostPort: 80 listenAddress: "0.0.0.0" protocol: udp
|
如果使用暴露主机端口的 NodePort
服务或守护程序集,这可能很有用。
注意:将 listenAddress
绑定到 127.0.0.1
可能会影响您访问服务的能力。
您可能希望查看 Ingress 指南 和 LoadBalancer 指南。
导出集群日志
1 2 3
| kind export logs Exported logs to: /tmp/396758314
|
日志结构:
1 2 3 4 5 6 7 8 9 10
| . ├── docker-info.txt └── kind-control-plane/ ├── containers ├── docker.log ├── inspect.json ├── journal.log ├── kubelet.log ├── kubernetes-version.txt └── pods/
|
参考