再见minikube,你该试试kind的了

为了便于k8s 开发,社区提供了minikube,它的原理是通过在虚拟机里面部署k8s 集群,从而帮助用户一键创建一个k8s集群。

再见minikube,你该试试kind的了

但这种方式比较笨重,需要我们本地环境能够支持虚拟化,譬如KVM,而且在虚拟机里面跑k8s 经常会面临资源不足的情况。那么能不能通过容器的方式启动一个k8s集群呢,为此社区提供了一个更加方便的集群部署方案 kind。从kind的图标就可以看出它将k8s的所有组件都放到容器里面运行。

再见minikube,你该试试kind的了

整个架构图如下,可以看到是将所有的k8s组件都以systemd的方式管理,放到了docker 容器里面运行。

再见minikube,你该试试kind的了

废话不多说,我们直接开干。首先安装kind 和kubectl

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

#安装kind
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64

然后就没有然后了。一条命令直接拉起一个k8s

# kind create cluster
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.21.1) 
 ✓ Preparing nodes 
 ✓ Writing configuration 
 ✓ Starting control-plane ️
 ✓ Installing CNI 
 ✓ Installing StorageClass 
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Have a nice day! 

我们设置一下kubectl 指向的集群
# kubectl cluster-info --context kind-kind

测试一下咱们的k8s 集群吧,测试一下集群里面安装哪些Pod。

]# kubectl  get pods --all-namespaces
NAMESPACE            NAME                                         READY   STATUS    RESTARTS   AGE
kube-system          coredns-558bd4d5db-stl6w                     1/1     Running   0          2m37s
kube-system          coredns-558bd4d5db-t427c                     1/1     Running   0          2m37s
kube-system          etcd-kind-control-plane                      1/1     Running   0          2m41s
kube-system          kindnet-2vkrm                                1/1     Running   0          2m38s
kube-system          kube-apiserver-kind-control-plane            1/1     Running   0          2m41s
kube-system          kube-controller-manager-kind-control-plane   1/1     Running   0          2m41s
kube-system          kube-proxy-wg988                             1/1     Running   0          2m38s
kube-system          kube-scheduler-kind-control-plane            1/1     Running   0          2m41s
local-path-storage   local-path-provisioner-547f784dff-d7mc4      1/1     Running   0          2m37s

nice,不仅如此,我们甚至可以通过kind 部署集群,先定义集群信息,如下所示,然后再执行kind 创建集群。

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

就可以部署一个包含一个master 和两个work的集群了。

我们深入容器内部看一下kind 是如何实现的。我们既然kind 启动的容器里面,查看里面运行的k8s 进程,他们都是通过systemd维护的。

# ps -ef|grep kube

还可以看到containerd 进程(1.21 版本k8s CRI 默认是containerd)。在容器内执行查看容器命令和通过kubectl 查询的效果一致。

# crictl pods
POD ID              CREATED             STATE               NAME                                         NAMESPACE            ATTEMPT             RUNTIME
69d19f68f2e27       17 minutes ago      Ready               coredns-558bd4d5db-stl6w                     kube-system          0                   (default)
f0c38d8ee81c1       17 minutes ago      Ready               coredns-558bd4d5db-t427c                     kube-system          0                   (default)
c5f04a7ede1c3       17 minutes ago      Ready               local-path-provisioner-547f784dff-d7mc4      local-path-storage   0                   (default)
74edb02aec4ba       17 minutes ago      Ready               kindnet-2vkrm                                kube-system          0                   (default)
4afa9b1c08f2e       17 minutes ago      Ready               kube-proxy-wg988                             kube-system          0                   (default)
ad983cdb2106f       18 minutes ago      Ready               kube-scheduler-kind-control-plane            kube-system          0                   (default)
9bfd0f99be135       18 minutes ago      Ready               kube-apiserver-kind-control-plane            kube-system          0                   (default)
13c2a792e3f45       18 minutes ago      Ready               kube-controller-manager-kind-control-plane   kube-system          0                   (default)
137ae1b147e3e       18 minutes ago      Ready               etcd-kind-control-plane                      kube-system          0                   (default)

如果需要测试k8s ,kind 比 minikube更加轻量高效,必须强烈推荐!

展开阅读全文

页面更新:2024-04-10

标签:高效   笨重   不仅如此   集群   拉起   容器   图标   废话   组件   虚拟机   进程   命令   原理   方式   科技   社区

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top