helm3 Artifact Hub

1,530 阅读3分钟

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

image.png

来源

Artifact Hub 是helm 的官方chart 仓库,这是因为helm 自已的hub弃用了,迁移到了Artifact Hub

热门

Artifact Hub 仓库非常的活跃,从官方的 包和版本 发布图可以看得起来

chart 数据从20年4年的900 上涨到了 4600个, 版本发布从4000次,到60000次,可见非常活跃,且chart众多 image.png

对比

像这样的仓库,阿里云也有一个的,目前还可以使用helm add repo 添加上,但是不知道为什么 页面一直在升级中, 非常期待再次开放!

image.png

分类

打开 artifacthub.io/ 网站,在Artifact Hub 搜索框回车,可以查看所有的包

左边分类非常 齐全,且方便,有如下:

  • 种类
  • 类别
  • 厂商
  • 存储类型
  • 许可证
  • 弃用

而种类和类别里面还可以 选择相应的分类,,比如 helm plugins 就可以找到前面我们安装的helm push , 且有该类别的数量总数

目前该类别中 星星最多的插件是 2to3(迁移和清理helm2的配置并发布到helm3)

image.png

使用

搜索一下redis,点击进入后,可以看到有良好介绍界面

image.png

右边有4个按钮可以点击

  • INSTALL 安装说明
  • TEMPLATES 模版文件
  • VALUES SCHEMA values值
  • CHANGELOG 变更日志

右中间部则说明了 该chart的发布时期,chart版本以及redis版本

点击INSTALL 按钮,显示先增加仓库,然后可以选择 版本安装

image.png

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

image.png

当然你如果想在机器访问,使用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里面的部署

image.png