FinOps实践--OptScale从0到1
什么是FinOps
FinOps 是一种用于优化云资源使用和成本管理的实践。它通过监控、分析和优化云资源的使用,帮助企业降低成本并提高效率。
什么是OptScale
OptScale 是基于 Kubernetes 的云原生监控和成本管理工具。它可以帮助企业监控云资源的使用情况,并提供成本分析和优化建议。
部署
OptScale 部署前注意
- 一定要遵循官方文档使用Ubuntu进行部署,使用CentOS部署会绝对失败,因为官方的部署程序中很多都是用Ubuntu的内部命令
- 需要准备一台可以连接外网的机器,因为部署过程中需要下载很多东西
- 配置一定要高最低配8c16g,推荐16c32g
开始部署
环境准备
安装基础依赖
# 安装基础依赖 |
克隆仓库
git clone https://github.com/hystax/optscale.git |
进入部署目录
cd optscale/optscale-deploy |
准备虚拟环境
virtualenv -p python3.9 venv |
部署K8,Docker基础运行环境
ansible-playbook -e "ansible_ssh_user=<user>" -k -K -i "<ip address>," ansible/k8s-master.yaml |
ansible-playbook是一个自动化运维工具,用于执行预定义的任务和配置管理。
如果是本机部署添加上 -e “ansible_connection=local”
一切正常的话,就已经部署好docker和k8了
常见问题
-
Q:创建一个用户后,发现跳板机的passwd被禁用了怎么办
A:通过alias解决 -
Q:我的服务器不能访问外网怎么办
A:使用代理 https://zhuanlan.zhihu.com/p/1151023289 -
Q:ansible-playbook是通过远程SSH连接来部署的,我没有办法让他在远程连接的session中挂上代理
A:修改optscale用户的.bashrc来进行代理的配置&修改.bash_profile# 如果存在 ~/.bashrc,则加载它
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi -
Q:出现报错
fatal: [172.28.30.40]: FAILED! => {"changed": false, "dest": "/tmp/helm-install.sh", "elapsed": 10, "msg": "Request failed: <urlopen error [Errno 99] Cannot assign requested address>", "url": "https://git.io/get_helm.sh"}
A:还是外网的原因,手动下载脚本放到/tmp/helm-install.sh
# 删除部署脚本的
- name: Download Helm install script
get_url:
url: https://git.io/get_helm.sh
dest: /tmp/helm-install.sh
mode: 0755
上述图片有误,正确路径就是/tmp/helm-install.sh 记得给755权限
开始构建(可选)
根目录下.build.sh |
我直接跳过了这步,使用官方提供的镜像来部署
开始部署
./runkube.py --with-elk -o overlay/user_template.yml -- meow-optscale latest (offical) |
等待完成之会访问 IP就可以访问了
常见问题
- Q:报错
登录上去直接 docker pull k8s.gcr.io/kube-proxy:v1.17.3 发现是相同的报错,明明已经终端内挂了代理为什么还是这样
A:因为需要配置docker的代理 https://blog.csdn.net/Mingcai_Xiong/article/details/144591364"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
],
开始使用
注册账户
什么,你说给我发了邮件,为什么我没有收到捏,我们还需要配置SMTP的邮箱发送
有两种方式
修改该文件配置后重新部署–参考上方部署阶段命令
- 通过k8的etcd
kubectl exec -it etcd-0 etcd-walker |
修改菜单内的smtp选项
连接数据源
选择一个进行连接
等到这个变成绿色,就有实例还有推荐减配的一些东西了
后续升级
./runkube.py --with-elk --update-only -- meow-optscale latest |
k8命令参考
kubectl delete pod --all -n [namespace] k8重启pod--有损 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 喵喵博客!