Bootstrap

k8s-第八节-Helm

Helm & 命名空间

介绍

  • Helm类似 npm,pip,docker hub, 可以理解为是一个软件库,可以方便快速的为我们的集群安装一些第三方软件。
  • 使用 Helm 我们可以非常方便的就搭建出来 MongoDB / MySQL 副本集群,YAML 文件别人都给我们写好了,直接使用。

官网 https://helm.sh/zh/
应用中心 https://artifacthub.io/

安装 Helm

安装 文档 https://helm.sh/zh/docs/intro/install/

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

安装 MongoDB 示例


# https://artifacthub.io/packages/helm/bitnami/mongodb

# 安装
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-mongo bitnami/mongodb

# 指定密码和架构
helm install my-mongo bitnami/mongodb --set architecture="replicaset",auth.rootPassword="mongopass"

# 删除
helm ls
helm delete my-mongo

# 查看密码
kubectl get secret my-mongo-mongodb -o json
kubectl get secret my-mongo-mongodb -o yaml > secret.yaml

# 临时运行一个包含 mongo client 的 debian 系统
kubectl run mongodb-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mongodb:4.4.10-debian-10-r20 --command -- bash

# 进去 mongodb
mongo --host "my-mongo-mongodb" -u root -p mongopass

# 也可以转发集群里的端口到宿主机访问 mongodb
kubectl port-forward svc/my-mongo-mongodb 27017:27018

将 Portainer 部署到您的集群中

使用以下命令将 Portainer 存储库添加到 Helm:

$ helm repo add portainer https://portainer.github.io/k8s/ 
$ helm repo update

接下来运行以下命令之一来部署 Portainer 应用程序。

使用 NodePort 公开 Portainer

$ helm install --create-namespace -n portainer portainer portainer/portainer

这是最简单的方法。您将能够在运行 Portainer Pod 的节点上使用端口 30777 通过 HTTP 访问 Portainer。 HTTPS 流量将使用自签名证书在端口 30779 上提供服务。如果您想在使用此方法部署时提供自己的 SSL 证书,请参阅 Portainer 文档。

使用负载均衡器公开 Portainer

$ helm install --create-namespace -n portainer portainer portainer/portainer \
    --set service.type=LoadBalancer

此方法类似于 NodePort,但它将在您的节点前使用负载均衡器。访问负载均衡器 IP 上的端口 9000 以通过 HTTP 访问 Portainer。端口 9443 支持 HTTPS

;