分布式存储系统使用kubernetes部署
环境搭建
快速搭建k3s环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 关闭防火墙
systemctl disable firewalld --now
# 下载 k3s 安装脚本:
curl -sfL https://get.k3s.io -o install.sh
# 运行安装脚本:
sudo sh install.sh
# 等待安装完成后,通过以下命令检查 k3s 是否已成功安装:
sudo systemctl status k3s
# 若要将当前用户添加到 Kubernetes 集群的 kubeconfig 文件中,以便能够使用 kubectl 命令行工具连接到集群,运行以下命令:
sudo cat /etc/rancher/k3s/k3s.yaml >> ~/.kube/config
# 确认是否已成功添加到 kubeconfig 文件中,运行以下命令:
kubectl get nodes将其他节点加入到kubernetes集群中
1
2
3
4
5# 查看 Kubernetes 集群主节点的 token
cat /var/lib/rancher/k3s/server/node-token
# 当前节点加入到主节点的集群中
sudo k3s agent --server https://<MASTER_IP>:6443 --token <NODE_TOKEN>
创建好部署文件
项目分为三个部分:master(主体), account(账户系统),rabbitmq(消息队列)
以account为例,创建account-deploy.yaml文件
1 | apiVersion: apps/v1 # deployment api 版本 |
主要信息:容器端口18081,限制使用资源
创建account-service.yaml文件
1 | apiVersion: v1 |
主要信息,service端口18081与目标pod端口做映射,并且选择器选择匹配account-deploy。
因为是部署阶段,可以暂时先用NodePort服务类型作为调试,测试account服务是否可用。
最终看到我们所有的endpoints跟pod都做到一一对应基本已经没什大问题了。
最后检查一下各个接口调用
部署过程遇到的坑
- 如果是一台机器,机器一定要有足够的剩余磁盘空间,部署时注意配置的内存限制。(否则master要是有磁盘或者内存压力就会自动产生污点无法调度,这种污点去除不掉,采用pod配置容忍依旧会因磁盘或者内存原因导致部署失败)所以建议两台虚拟机。
- 注意镜像打包时 —platform linux/amd64 指定镜像平台,不然也会因平台不一致导致container crash。
- 及时检查coreDNS pod的状态,否则就会出现容器内dns解析失败的问题,导致pod内连接我的mysql服务连接不上 pod内dns解析失败问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 贾小白博客!