helm 部署
项目地址
Releases · helm/helm (github.com)
安装流程
[root@k8s-master2 ~]# mkdir helm
[root@k8s-master2 ~]# cd helm
tar zxvf helm-v3.5.4-linux-amd64.tar.gz
cp -av linux-amd64//helm /usr/local/bin/
helm help
helm create nginx
helm repo list
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo list
安装NFS
所有节点安装NFS客户端
选择一台做nfs server
进行如下配置(这里选择40.181节点):
- 创建根目录
- 编辑
vim /etc/exports
/mnt/nfs/ 192.168.40.0/24(rw,sync,fsid=0)
复制代码
- 同192.168.0.0/24一个网络号的主机可以挂载NFS服务器上的/mnt/nfs/目录到自己的文件系统中
- rw表示可读写
- sync表示同步写
- fsid=0表示将/mnt找个目录包装成根目录
- 启动nfs服务
systemctl start rpcbind.service
systemctl start nfs-server.service
复制代码
- 设置开机自启
systemctl enable rpcbind.service
systemctl enable nfs-server.service
复制代码
- 使用配置生效
- 查看挂载情况
本次使用nfs 做存储
PV 动态供给(StorageClass)
支持动态供给的存储插件:https://kubernetes.io/docs/concepts/storage/storage-classes/
(1)添加仓库
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
(2)更新仓库
(3)下载到本地
helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --untar
(4)修改values
repository: dyrnq/nfs-subdir-external-provisioner
tag: v4.0.2
pullPolicy: IfNotPresent
imagePullSecrets: []
nfs:
server: 192.168.40.181
path: /mnt/nfs
(5)安装
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/
改变默认 StorageClass
(1)列出你的集群中的 StorageClasses:
(2)标记一个 StorageClass 为默认的:
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Harbor
前提已部署ingress
参考
部署Ingress Controller1.31 以及使用案例_赵承胜博客的技术博客_51CTO博客
添加 Harbor Helm Chart 仓库,并将 Helm Chart 下载到本地。
helm repo add harbor https://helm.goharbor.io
helm pull harbor/harbor --untar
编辑 harbar/values.yaml 文件:
- 修改 externalURL,表示外部客户端访问 Harbor 的地址。
- 修改存储类名称storageClass: "nfs-client" (之前我们创建的存储类)
☆ (部署之前接的删除之前部署的pvc )
accessMode: ReadWriteMany # 卷的访问模式,需要修改为ReadWriteMany,允许多个组件读写,否则有的组件无法读取其它组件的数据
执行下面命令在 cloudnative-lab 命名空间部署 Harbor。
helm install harbor harbor
服务验证
访问
https://core.harbor.domain
用户 admin 密码如下:
cat harbor/values.yaml | grep 123
harborAdminPassword: "Harbor12345"
WebUI 上传 Helm Charts
首先新建一个项目名为 demo。
从 Helm Chart 仓库 找一个别人分享的 Helm Chart,这里我选择一个 Kafka Helm Chart。
仓库地址 https://artifacthub.io/
使用以下命令拉取 Kafka Helm Chart。
helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull bitnami/kafka
在 Harbor 界面选择 Kafka Helm Chart 的压缩文件,点击上传。
Helm Charts 上传成功后,就可以看到相关信息,包括: Chart 版本号、状态、作者、模板引擎、创建时间等信息。
添加 harbor helm 仓库
因为我们的 HTTPS 证书是自签名证书,在添加仓库的时候需要带上 ca.crt,如果是受信任的第三方 CA 签名的证书则无需此步骤。点击注册证书下载 ca.crt 文件。
添加仓库 ,安装kafka
helm repo add --ca-file ca.crt --username=admin --password=Harbor12345 myrepo https://core.harbor.domain/chartrepo/demo
helm repo list
helm install kafka --ca-file=ca.crt --username=admin --password=Harbor12345 myrepo/kafka