这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战
来源
Artifact Hub 是helm 的官方chart 仓库,这是因为helm 自已的hub弃用了,迁移到了Artifact Hub
热门
Artifact Hub 仓库非常的活跃,从官方的 包和版本 发布图可以看得起来
chart 数据从20年4年的900 上涨到了 4600个, 版本发布从4000次,到60000次,可见非常活跃,且chart众多
对比
像这样的仓库,阿里云也有一个的,目前还可以使用helm add repo 添加上,但是不知道为什么 页面一直在升级中, 非常期待再次开放!
分类
打开 artifacthub.io/ 网站,在Artifact Hub 搜索框回车,可以查看所有的包
左边分类非常 齐全,且方便,有如下:
- 种类
- 类别
- 厂商
- 存储类型
- 许可证
- 弃用
而种类和类别里面还可以 选择相应的分类,,比如 helm plugins 就可以找到前面我们安装的helm push , 且有该类别的数量总数
目前该类别中 星星最多的插件是 2to3(迁移和清理helm2的配置并发布到helm3)
使用
搜索一下redis,点击进入后,可以看到有良好介绍界面
右边有4个按钮可以点击
- INSTALL 安装说明
- TEMPLATES 模版文件
- VALUES SCHEMA values值
- CHANGELOG 变更日志
右中间部则说明了 该chart的发布时期,chart版本以及redis版本
点击INSTALL 按钮,显示先增加仓库,然后可以选择 版本安装
bitnami仓库 在安装helm时已经配置,这里我们安装一下chart既可,若想安装其他版本,查看右中间 CHART VERSIONS 下面see all ,将列出所有版本
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-redis bitnami/redis --version 14.8.7
但是往下看的时候可以发面,,这chart包括了2种不同的集群
- 一个主从redis集群,可选择哨兵
- 一个分片集群
安装后输出如下,可以看出 默认是主从集群,且没有哨兵的模式
NAME: my-redis
LAST DEPLOYED: Fri Jul 30 17:53:12 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
Redis™ can be accessed on the following DNS names from within your cluster:
my-redis-master.default.svc.cluster.local for read/write operations (port 6379)
my-redis-replicas.default.svc.cluster.local for read-only operations (port 6379)
To get your password run:
export REDIS_PASSWORD=$(kubectl get secret --namespace default my-redis -o jsonpath="{.data.redis-password}" | base64 --decode)
To connect to your Redis™ server:
1. Run a Redis™ pod that you can use as a client:
kubectl run --namespace default redis-client --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis:6.2.5-debian-10-r0 --command -- sleep infinity
Use the following command to attach to the pod:
kubectl exec --tty -i redis-client \
--namespace default -- bash
2. Connect using the Redis™ CLI:
redis-cli -h my-redis-master -a $REDIS_PASSWORD
redis-cli -h my-redis-replicas -a $REDIS_PASSWORD
To connect to your database from outside the cluster execute the following commands:
kubectl port-forward --namespace default svc/my-redis-master 6379:6379 &
redis-cli -h 127.0.0.1 -p 6379 -a $REDIS_PASSWORD
接下来可以看看redis是否可用
使用kubectl get secret --namespace default my-redis -o jsonpath="{.data.redis-password}" | base64 --decode
获取redis 密码
使用kubectl exec --tty -i my-redis-master-0 -- bash
登陆到redis mysql容器内,连接到redis,并设置一个key
当然你如果想在机器访问,使用port-forward转发也可以的 kubectl port-forward --address 0.0.0.0 svc/my-redis-master 6379:6379
和以前一样,加一个--address参数,方便其他机器访问
总结
Artifact Hub 包含了非常多的chart包,平时用到的各种数据库,devops工具,代理,监控等应有尽有,而文档全面,教程细节,非常方便我们使用
在chart页面下方列出了 参数详解,完全可以根据相关文档 安装自已所需的软件,觉得安装软件慢可以更改image地址,加速chart在k8s里面的部署