在这里插入图片描述

作者|段超
来源|尔达 Erda 公众号

**导读:Erda 作为一站式云原生 PaaS 平台,现已面向广大开发者完成 70w+ 核心代码全部开源!**在 Erda 开源的同时,我们计划编写《基于 K8s 的云原生 PaaS 平台基础架构》系列文章,希望我们的一点经验可以帮助更多企业完善 PaaS 平台基础架构的建设。

系列文章推荐:

Kind (Kubernets in Docker),是一个可以快速在本地部署一套 K8s 的工具,非常适合本地部署调试或者想要体验最新版本 K8s 的场景。

简单创建

brew install kind
kind create cluster --name test

Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.13.4)  
 ✓ Preparing nodes   
 ✓ Creating kubeadm config   
 ✓ Starting control-plane  ️ 
Cluster creation complete. You can now use the cluster with:

[root@node-2 ~]# kubectl get node
NAME                 STATUS   ROLES    AGE   VERSION
kind-control-plane   Ready    master   99s   v1.13.4

默认会创建一个单节点的集群,想要创建更复杂的集群?配置文件走起。

创建一个特定版本 K8s 的集群

配置文件

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
- role: worker
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
- role: worker
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4

创建集群

kind create cluster --name kind --config  cluster.yaml

其他版本的集群,其镜像列表见这里

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rhiQyF3I-1626949248140)(https://intranetproxy.alipay.com/skylark/lark/0/2021/png/21956387/1623736869110-8a0697a4-5d27-4082-835f-da75e5636b19.png#clientId=u0b4d5ebf-29db-4&from=paste&id=u5a355fee&margin=%5Bobject%20Object%5D&name=image.png&originHeight=186&originWidth=720&originalType=url&ratio=2&size=140326&status=done&style=none&taskId=u0783965a-c42c-44a1-b38c-72253f2c7de)]

创建一个包含 Ingress 的集群

配置文件

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
  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
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
- role: worker
  image: kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4

  • extraPortMappings allow the local host to make requests to the Ingress controller over ports 80/443

创建集群

 kind create cluster --name kind-ingress --config  cluster.yaml

部署 Ingress

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

安装完后就可以在本地访问 Ingress 了

curl http://127.0.0.1
curl -k https://127.0.0.1:443

可玩性

kind 采用容器来模拟 node 节点,因此可以到容器里面进行 node 相关的操作,比如修改 kube-apiserver 的配置文件,查看 etcd 等。
在这里插入图片描述

在这里插入图片描述

如果关于 Erda 你有更多想要了解的内容,欢迎添加小助手微信(Erda202106)进入交流群讨论,或者直接点击下方链接了解更多!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐