Kind快速部署Kubernetes多集群

2023-12-18 16:33:48 浏览数 (1)

Kind架构及原理 Kind 使用一个 container 来模拟一个 node,在 container 里面跑 systemd ,并用 systemd 托管 kubelet 以及 containerd,然后通过容器内部的 kubelet 把其他 K8s 组件,比如 kube-apiserver、etcd、CNI 等跑起来。

它可以通过配置文件的方式创建多个 container 来模拟创建多个 node,并以这些 node 构建一个多节点的 Kubernetes 集群。

Kind 内部使用的集群部署工具是 kubeadm,借助 kubeadm 提供的 Alpha 特性,它可以部署包括 HA master 的高可用集群。同时,在 HA master 下, 它还额外部署了一个 Nginx,用来提供负载均衡 vip。

Docker 安装

宿主机安装Docker

代码语言:javascript复制
root@k8s:~# for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt-get remove $pkg; done
代码语言:javascript复制
root@k8s:~# apt-get update
root@k8s:~# apt-get install ca-certificates curl gnupg
root@k8s:~# install -m 0755 -d /etc/apt/keyrings
root@k8s:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
root@k8s:~# chmod a r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
root@k8s:~# echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
root@k8s:~# apt-get update

安装Docker

代码语言:javascript复制
root@k8s:~# apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Kind安装

首先我们下载Kind二进制包

代码语言:javascript复制
root@k8s:~# wget https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64
root@k8s:~# mv kind-linux-amd64 /usr/bin/kind
root@k8s:~# chmod  x /usr/bin/kind

指定版本号并创建集群

代码语言:javascript复制
root@k8s:~# cat >kind-demo.yaml<<EOF
kind: Cluster
name: k8s-kind-demo
apiVersion: kind.x-k8s.io/v1alpha4
networking:
        disableDefaultCNI: false
nodes:
        - role: control-plane
          #- role: control-plane
          #- role: control-plane
        - role: worker
        - role: worker
        - role: worker
EOF

参数详解:

  • name 设置集群名称
  • networking.disableDefaultCNI 创建的集群默认自带一个轻量级的 CNI 插件 kindnetd ,我们也可以禁用默认设置来安装其他 CNI,比如 Calico。
  • nodes control-plance master节点数量
  • nodes worker node节点数量

快速创建集群

本次版本采用v1.24.15

代码语言:javascript复制
root@k8s:~# kind create cluster --config=kind-demo.yaml --image=kindest/node:v1.24.15 --name=k8s-kind-demo

日志输出以下
Creating cluster "k8s-kind-demo" ...
 ✓ Ensuring node image (kindest/node:v1.24.15) 


	

0 人点赞