前置要求: 本机需要有Docker 容器运行时环境
Kind是什么
kind is a tool for running local Kubernetes clusters using Docker container “nodes”. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI
- ① 使用Docker来运行k8s节点
- ② 可以同时部署多个集群以供测试
- ③ 支持多平台 MacOS Linux Windows
当然,这只是个人推荐,也有其他的本地kubernetes集群方案可供选择,例如 MiniKube KubeKey K3s ,看个人需求吧
Kind安装
安装方式很简单, 参考官网 二选一即可
使用命令行(注意区分操作系统 x84 和 arm)
# For Intel Macs [ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-darwin-amd64 # For M1 / ARM Macs [ $(uname -m) = arm64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-darwin-arm64 chmod +x ./kind mv ./kind /some-dir-in-your-PATH/kind二进制安装
前往官方github release页面下载最新release即可
解压后授权kind主程序
chmod +x ./kind
集群安装
根据自己编写一个配置文件(yml)
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
- role: worker
我这里配置了一个控制节点和3个工作节点
使用命令直接创建集群 ./kind create cluster --config cluster-conf.yml --name kiki
- config指定你的集群规划配置文件
- name指定当前集群名称,可以按照这种方式部署多个kubernetes集群
执行命令后,会首先拉取Docker镜像,好处就在于不用管kubernetes集群创建时的各种镜像问题

等待命令执行完成(镜像拉取成功后1min左右即可安装集群安装),你就有了一个指定节点数量和角色的集群,如下

kubectl 工具在kind的资源包中是不包含的,需要自行下载安装, 什么是kubectl?
简单查看一下集群的状态,所有pod处于running状态便表示安装成功
kubectl get pod -o wide --all-namespaces

控制面板
推荐使用官方Dashboard, 简单兼容性高, 当然自己也可以选择像 Kuboard Rancher Kubesphare 等第三方管理工具
新版Dashboard已经从CRD方式切换为使用Helm方式,简单2条命令即可完成安装
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

等待安装完成,开启Web访问(二选一)
- 端口转发:
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443 - kube proxy:
kubectl proxy --port=8001
访问令牌
创建ServiceAccount
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard创建ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard➜ kubectl apply -f serviceAccount.yml serviceaccount/admin-user created ➜ kubectl apply -f clusterRoleBinding.yml clusterrolebinding.rbac.authorization.k8s.io/admin-user created获取token
kubectl -n kubernetes-dashboard create token admin-user
网页访问
我这里采用端口转发的方式开启web访问入口,地址
https://localhost:8443注意是https
使用第三步获取到的token即可登录
至此, 一个本地基于Docker构建的多节点kubernetes集群已经构建完成,可以使用来作为学习 测试部署和CICD了 
