kind启动kubernetes

安装 Kind

请访问官网  https://kind.sigs.k8s.io/docs/user/quick-start/#installing-from-release-binaries  下载 Kind 安装包。

安装什么架构的 Kubernetes,可访问官网  https://kind.sigs.k8s.io/docs/user/configuration/  了解。

部署 一个主节点,两个工作节点的集群

编写 cluster.yaml,定义集群架构

vim cluster.yaml, 内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
    kubeadmConfigPatches:
      - |
        kind: InitConfiguration
        nodeRegistration:
          kubeletExtraArgs:
            node-labels: "ingress-ready=true"        
    extraPortMappings:
      - containerPort: 80
        hostPort: 80
        protocol: TCP
      - containerPort: 443
        hostPort: 443
        protocol: TCP
  - role: worker
  - role: worker

创建集群并且指定 Kubernetes 版本

执行以下命令:

1
2
3
kind create cluster
--name=yzhou-k8s-dev \
--config=cluster.yaml

output log:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
➜  kind kind create cluster
--name=yzhou-k8s-dev \
--config=cluster.yaml
Creating cluster "yzhou-k8s-dev" ...
 ✓ Ensuring node image (kindest/node:v1.30.0) 🖼
 ✓ Preparing nodes 📦 📦 📦
 ✓ Writing configuration 📜
 ✓ Starting control-plane 🕹️
 ✓ Installing CNI 🔌
 ✓ Installing StorageClass 💾
 ✓ Joining worker nodes 🚜
Set kubectl context to "kind-yzhou-k8s-dev"
You can now use your cluster with:

kubectl cluster-info --context kind-yzhou-k8s-dev

Have a nice day! 👋

注意:本篇 Blog 仅介绍了如何通过 Kind 快速搭建 1 个 k8s 集群,若需部署其他组件,还需阅读官网了解更多信息,例如 安装 ingress nginx(需注意 ingress 与 Kubernetes 版本匹配)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/deploy/static/provider/kind/deploy.yaml

若出现 raw.githubusercontent.com 无法访问,可以通过访问  https://www.ipaddress.com/ip-lookup,查看该域名解析的 IP 地址,再通过修改 Hosts 来隐射 IP 地址。

安装完之后,记得通过官网的案例(https://kind.sigs.k8s.io/docs/user/ingress/#ingress-nginx) 来测试在 Ingress 安装是否成功。

将镜像导入到 kind

kind 的  load  命令可以帮助我们将 Docker 中的镜像导入到由 kind 创建的集群中,命令如下:

1
kind load docker-image  registry.k8s.io/e2e-test-images/agnhost:2.39

部署测试应用

此处使用 kind 官网提供的测试用例

1
kubectl apply -f https://kind.sigs.k8s.io/examples/ingress/usage.yaml

测试 ingress 连通性 image.png ![[image-20240814221742608.png]]

卸载一下:

1
kubectl delete -f https://kind.sigs.k8s.io/examples/ingress/usage.yaml

安装 kubectl

请访问 kubectl 官网  https://kubernetes.io/zh-cn/docs/tasks/tools/, 安装 kubectl。 例如 Mac 系统,访问 “在 macOS 上安装 kubectl” 文档  https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/

1
2
3
4
5
6
7
# 针对系统 CPU,下载对应 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"

chmod +x ./kubectl

sudo mv ./kubectl /usr/local/bin/kubectl
# sudo chown root: /usr/local/bin/kubectl

或者使用 brew 安装

1
brew install kubectl

查看安装结构

1
2
3
4
5
docker ps -a
CONTAINER ID   IMAGE                                            COMMAND                   CREATED             STATUS                     PORTS                       NAMES
f4bb1b7990e4   kindest/node:v1.27.0                             "/usr/local/bin/entr…"   About an hour ago   Up About an hour                                       yzhou-k8s-dev-worker2
151335202d41   kindest/node:v1.27.0                             "/usr/local/bin/entr…"   About an hour ago   Up About an hour                                       yzhou-k8s-dev-worker
b981f4c5fdba   kindest/node:v1.27.0                             "/usr/local/bin/entr…"   About an hour ago   Up About an hour           127.0.0.1:51052->6443/tcp   yzhou-k8s-dev-control-plane

使用 K8s Cluster

切换已创建好的集群上下文

1
kubectl cluster-info --context kind-yzhou-k8s-dev

output log:

1
2
3
4
5
➜  kind kubectl cluster-info --context kind-yzhou-k8s-dev
Kubernetes control plane is running at https://127.0.0.1:63797
CoreDNS is running at https://127.0.0.1:63797/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

查看集群 Node

1
kubectl get node

output log:

1
2
3
4
5
➜  kind kubectl get nodes
NAME                          STATUS   ROLES           AGE   VERSION
yzhou-k8s-dev-control-plane   Ready    control-plane   47s   v1.27.0
yzhou-k8s-dev-worker          Ready    <none>          25s   v1.27.0
yzhou-k8s-dev-worker2         Ready    <none>          24s   v1.27.0

其他操作

查看集群

1
kind get clusters

删除 clusters

1
kind delete cluster --name [集群名称]

删除后,使用  docker ps -a  检查节点是否删除。

refer
1.https://kind.sigs.k8s.io/
2.https://xie.infoq.cn/article/b686d00d5a6049fefc00eddeb

注意 1.27 不能使用。现在使用的是 1.30

这个是 kind 启动不了的 https://blog.csdn.net/qq_20614905/article/details/122253725 image.png ![[image-20240814221939291.png]]

image.png ![[image-20240814222003566.png]]

查看当前 namespace 下的镜像名称

1
kubectl -n namespace get pods -o jsonpath='{.items[*].spec.containers[*].image}' | tr ' ' '\n' | sort | uniq

kind 的限制,无法更新配置,只能重新开始部署集群。

Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up