使用Kind搭建本地k8s集群环境

目录

1.前提条件

2.安装Kind

3.使用Kind创建一个K8s集群

3.1.创建一个双节点集群(一个Master节点,一个Worker节点)

3.2.验证一下新创建的集群信息

3.3.删除刚刚新建的集群

4.安装集群客户端

4.1.安装kubectl

4.1.1.验证kubectl

4.2.安装Lens

4.2.1.下载最新Lens安装包

4.2.2.打开Lens

4.参考文章


1.前提条件

本地环境需要的系统和软件,win10系统推荐这种方式

  • win10 + WSL2 + Ubuntu(截止202308最新版本是20.04.xx) +Docker(Docker Desktop是兼容WSL2的)

图1 允许Ubuntu直接使用Win10安装的Docker Desktop
图2 Win10 安装WSL2后,再安装Ubuntu子系统,Docker Desktop可以在Ubuntu中使用docker命令

若是一直使用Linux统开发,则直接安装Docker即可以使用了

  • Linux + Docker

2.安装Kind

bash 复制代码
# 在本地路径下创建文件夹kind
mkdir -p kind
# 将Kind的二进制文件下载到本地
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.12.0/kind-linux-amd64
# 授权给当前用户执行权限
chmod +x ./kind
# 将可执行文件移动到路径/usr/bin/下(该路径下的二进制文件是全局可执行的)
mv ./kind /usr/bin/kind

安装好之后,可以立刻验证一下版本
图3 安装Kind之后,验证一下版本信息

整个安装过程比较简单,也有很多可以参考的博客文章,可能需要注意的是操作用户的权限问题,注意使用命令:

bash 复制代码
# 使用root用户执行命令
sudo ${command}
# 切换用户
su - ${username}
# 对某个二进制文件授权
chmod u+x+r+r ${executable_binary_file}
# 修改某个文件的归属权限
chown -R ${file}

3.使用Kind创建一个K8s集群

3.1.创建一个双节点集群(一个Master节点,一个Worker节点)

为何是双节点?因为正常的集群都是多节点的,但是本地开发环境的资源可能比较有限,节点多了,本地电脑就会变卡,2个节点是比较实际的,可以体验多节点的特性,又可以最大程度节约资源

bash 复制代码
# 创建集群配置文件,1个master node,1个worker node。
cat << EOF > kind-clusters-mutil-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
EOF

# start to create cluster
kind create cluster --name k8s-local-dev --config ./kind-clusters-mutil-config.yaml

3.2.验证一下新创建的集群信息

图4 验证新创建的新集群k8s-local-dev

其中,在Docker Desktop中,也可以看到两个集群节点的容器。
图5 Docker Desktop可以查看集群节点的运行状态

从这里也能看到,为什么我推荐使用Kind,因为kind创建的集群也是镜像式的,如果使用其他的,例如Docker Desktop自带的Dev environment或者K3s或者minkube,都是很多image下载下来,然后启动一堆容器,删除集群的时候就很麻烦,当然,这是我的一家之言,对于这一点,其实也有人专门写文章分析这几个的利弊。

3.3.删除刚刚新建的集群

bash 复制代码
# 查询刚刚新建的集群名
kind get clusters
# 根据集群名称删除集群
kind delete cluster --name k8s-local-dev

图6 删除新建的集群

4.安装集群客户端

4.1.安装kubectl

bash 复制代码
# 下载最新版本的kubectl命令二进制文件
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# 授权二进制文件已执行权限(如果是root用户操作,可以不用sudo)
sudo chmod 777 ./kubectl

# 将kubectl命令移动到/usr/local/bin目录下(这样就可以全局执行了)
mv ./kubectl /usr/local/bin/

官方文档中,非常全面,但是我这里简化一下,只针对我本地Unbuntu系统设置

4.1.1.验证kubectl

图7 安装kubectl之后,验证

查看新集群的信息

bash 复制代码
# 查看kubectl版本信息
kubectl version
# 查看当前版本
kubectl cluster-info
# 查看集群信息
kubectl config get-clusters
# 查看当前context
kubectl config get-contexts
# 查看当前context
kubectl config current-context

图8 当前集群的信息

这里涉及的内容需要理解k8s的访问权限设置,分为user(credentials)、cluster、context如何配置,起到什么作用,我之前也写过一篇如何配置kubectl访问集群的文章(点击传送

其中,这个配置可以通过以下命令查看

bash 复制代码
# 查看kubectl访问k8s集群的配置
kubectl config view

这是一个配置文件,可以直接打开文件进行修改

bash 复制代码
cat ~/.kube/config

4.2.安装Lens

Lens是其中比较推荐的可视化k8s客户端工具之一,开始是完全免费的,之后分了收费版本,变得有点无语,不过仍旧是比较推荐的工具,毕竟可视化界面操作非常方便,只要选择personal版本就可以了

4.2.1.下载最新Lens安装包

也可以自行选择版本,看自己需要
图9 选择windows版本下载

选择Personal版本的,必然会跳到付费界面,一直卡住,自行研究一下即可,不赘述。

4.2.2.打开Lens

图10 Lens的集群列表界面

第一次安装的话,会直接从path:~/.kube/config中复制放到用户目录下,所谓的用户目录可以在上图的settings中找到。
图11 Lens访问集群的相关配置

这个配置和kubectl的配置一样的,如果cluster信息变更后,Lens的配置可能没有更新,可以直接从kubectl的kubeconfig中copy到对应的目录下。否则会出现如下情况:
图12 kubeconfig有误,无法访问集群

4.参考文章

kind

Kind创建单、多集群 -- Jason Tan's blog

https://www.cnblogs.com/yakniu/p/16435276.html

Lens download portal | The Kubernetes IDE

在 Linux 系统中安装并设置 kubectl | Kubernetes

Minikube vs. kind vs. k3s vs k3d vs MicroK8s_ghostwritten的博客-CSDN博客

相关推荐
Python私教1 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
O&REO3 小时前
单机部署kubernetes环境下Overleaf-基于MicroK8s的Overleaf应用部署指南
云原生·容器·kubernetes
politeboy3 小时前
k8s启动springboot容器的时候,显示找不到application.yml文件
java·spring boot·kubernetes
运维小文4 小时前
K8S资源限制之LimitRange
云原生·容器·kubernetes·k8s资源限制
登云时刻4 小时前
Kubernetes集群外连接redis集群和使用redis-shake工具迁移数据(二)
redis·容器·kubernetes
wuxingge12 小时前
k8s1.30.0高可用集群部署
云原生·容器·kubernetes
志凌海纳SmartX13 小时前
趋势洞察|AI 能否带动裸金属 K8s 强势崛起?
云原生·容器·kubernetes
锅总13 小时前
nacos与k8s service健康检查详解
云原生·容器·kubernetes
BUG弄潮儿14 小时前
k8s 集群安装
云原生·容器·kubernetes
颜淡慕潇16 小时前
【K8S系列】kubectl describe pod显示ImagePullBackOff,如何进一步排查?
后端·云原生·容器·kubernetes