基于本地虚拟机搭建k8s集群

本文详述了如何使用multipass在本地创建虚拟机并搭建k8s集群,包括创建虚拟机、安装containerd和kubernetes组件、配置master和数据节点,以及部署测试应用的过程。在搭建过程中,遇到的网络配置、组件版本兼容性和权限问题等进行了深入探讨,为读者提供了一条可能的实践路径。
摘要由CSDN通过智能技术生成

在学习kubernetes/k8s的时候,需要搭建一个学习环境。可以用官方提供的模拟器,不过由于是模拟器,有些东西和实际还是有区别的。下面通过虚拟机来进行搭建。

创建虚拟机

multipass是ubuntu的一个轻量级虚拟机,占用资源比较小,本次就选择multipass。

通过multipass来创建和管理虚拟机节点,官方地址https://multipass.run/,安装后分别创建三个虚拟机

#注意maste的至少需要2V2G,不然启动不起来
$ multipass launch -n master -c 2 -m 2G -d 40G
$ multipass launch -n node1 -c 2 -m 1G -d 40G
$ multipass launch -n node2 -c 2 -m 1G -d 40G
#查看虚拟机列表
$ multipass list
Name                    State             IPv4             Image
master                  Running           172.26.69.30     Ubuntu 20.04 LTS
node1                   Running           172.26.70.162    Ubuntu 20.04 LTS
node2                   Running           172.26.71.167    Ubuntu 20.04 LTS

multipass的其他一些管理虚拟机的命令

# 启动实例
multipass start master
#进入节点
multipass shell master
# 停止实例
multipass stop master
# 删除实例(删除后,还会存在)
multipass delete master
# 释放实例(彻底删除),释放占用的空间
multipass purge

每个节点安装kubernetes所需的基础组件

然后分别进入每个节点执行如下操作

安装containerd

安装containerd,由于kubernetes已经改用containerd而不是docker,这里安装containerd

安装必要依赖

#进入节点
$ multipass shell master
#更新源
$ sudo apt-get update
$ sudo apt-get install -y ca-certificates curl gnupg lsb-release

添加 GPG 密钥

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

设置 apt 仓库

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装containerd

#安装containerd
$ sudo apt-get update
$ sudo apt-get install -y containerd.io
# 锁定 containerd.io 版本࿰
搭建K8s集群一般需要至少两个节点,你可以在Ubuntu虚拟机搭建一个包含两个节点的集群。下面是一个简单的流程: 1. 在Ubuntu虚拟机上安装KubernetesDocker: ``` sudo apt-get update sudo apt-get install docker.io sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo touch /etc/apt/sources.list.d/kubernetes.list echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl ``` 2. 初始化K8s集群,并将第一个节点设置为主节点: ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 3. 安装网络插件: ``` sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 4. 将其他节点加入到集群中: ``` sudo kubeadm join <主节点IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` 5. 部署一个Deployment: ``` sudo kubectl create deployment nginx --image=nginx ``` 6. 部署一个Service: ``` sudo kubectl expose deployment nginx --port=80 --type=LoadBalancer ``` 7. 通过Service的IP地址访问部署的Nginx服务。 8. 进行弹性部署,可以通过以下命令来修改Deployment的副本数: ``` sudo kubectl scale deployment nginx --replicas=3 ``` 以上是一个简单的K8s集群搭建流程,可以根据实际需要进行适当的修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾生有牙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值