目录
3.1.创建一个双节点集群(一个Master节点,一个Worker节点)
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创建单、多集群 -- 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博客