helm安装mysql_helm安装配置

简介

helm是kubernetes的包管理工具,用于简化部署和管理 Kubernetes 应用。用来管理charts——预先配置好的安装包资源。

Helm和charts的主要作用:

应用程序封装

版本管理

依赖检查

便于应用程序分发

helm是一个C/S框架的软件,helm相当于一个客户端,tiller是一个服务端

Helm CLI 是 Helm 客户端,可以在本地执行

Tiller 是服务器端组件,在 Kubernetes 群集上运行,并管理 Kubernetes 应用程序的生命周期

Repository 是 Chart 仓库,Helm客户端通过HTTP协议来访问仓库中Chart的索引文件和压缩包

安装

安装之前需要先配置好kubeconfig,kubectl可以正常使用就表示kubeconfig已经配置正确,也可以通过环境变量KUBECONFIG指定helm使用的kubeconfig

安装helm

# 如下地址下载helm二进制文件

# 解压之后放在自己的PATH路径下

# https://github.com/helm/helm/releases

mkdir -pv helm && cd helm

wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz

tar xf helm-v2.9.1-linux-amd64.tar.gz

sudo mv linux-amd64/helm /usr/local/bin

rm -rf linux-amd64

# 查看版本,不显示出server版本,因为还没有安装server

helm version

复制代码

简单安装tiller(本次实验采用)

# 部署 tiller

helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 \

--stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 查看

kubectl get pods -n kube-system -l app=helm

kubectl get svc -n kube-system -l app=helm

复制代码

安全性更高的安装tiller(tls)

helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 \

--stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts \

--tiller-tls \

--tiller-tls-verify \

--tiller-tls-cert=cert.pem \

--tiller-tls-key=key.pem \

--tls-ca-cert=ca.pem \

--service-account=tiller

# 其他命令都需要使用 tls

# --tls

复制代码

配置rbac

cat >helm-rbac-config.yaml<

apiVersion: v1

kind: ServiceAccount

metadata:

name: tiller

namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1beta1

kind: ClusterRoleBinding

metadata:

name: tiller

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: cluster-admin

subjects:

- kind: ServiceAccount

name: tiller

namespace: kube-system

EOF

kubectl create -f helm-rbac-config.yaml

# 配置tiller使用创建的ServiceAccount

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

复制代码

查看状态

# 查看pod启动情况

kubectl get pod -n kube-system -l app=helm

# 再次查看版本,显示出server版本

helm version

复制代码

简单使用

查看可用charts

# 更新charts列表

helm repo update

# 搜索可用charts

helm search

helm search mysql

复制代码

查看已经安装的charts

helm list

# helm ls

复制代码

安装测试

以下两种部署方式任选一种

使用命令行模式部署

# 使用命令行模式部署

helm install -n mariadb-test \

--set persistence.enabled=false,mariadbRootPassword=will,mariadbUser=will,mariadbPassword=will,mariadbDatabase=will \

stable/mariadb

复制代码

使用配置文件定制部署

# 使用配置文件方式部署

# 查看可配置项

helm inspect values stable/mariadb

# 获取所有可配置项(去行空行和注释)

helm inspect values stable/mariadb | egrep -v '^\s*#|^$'

# 配置

cat >config.yml<

usePassword: true

mariadbRootPassword: will

mariadbUser: will

mariadbPassword: will

mariadbDatabase: will

persistence:

enabled: false

EOF

# 部署

helm install -n mariadb-test -f config.yml stable/mariadb

复制代码

测试

# 查看状态

helm ls

kubectl get pods

kubectl get svc

# 连接测试

kubectl run mariadb-cli --image=bitnami/mariadb:10.1.28-r1 -i --tty bash

mysql -hmariadb-test-mariadb -uwill -pwill will

show databases;

select version();

select user();

# 删除 mariadb-cli

kubectl delete deploy mariadb-cli

# 删除部署

helm delete mariadb-test --purge

复制代码

自定义chart

创建chart

# 创建

helm create hello

# chart目录结构介绍

hello

├── charts # 本chart依赖的chart

├── Chart.yaml # 描述chart的基本信息,如名称版本等

├── templates # kubernetes manifest文件模板目录

│   ├── deployment.yaml

│   ├── _helpers.tpl

│   ├── ingress.yaml

│   ├── NOTES.txt # 纯文本文件,可在其中填写chart的使用说明

│   └── service.yaml

└── values.yaml # chart配置的默认值

# 对chart的模板和配置进行测试

helm install --dry-run --debug ./

复制代码

测试安装chart

# 安装

helm install -n hello-test ./

# 查看

helm ls

kubectl get pods

kubectl get svc

# 端口转发

export POD_NAME=$(kubectl get pods --namespace default -l "app=hello,release=hello-test" -o jsonpath="{.items[0].metadata.name}")

kubectl port-forward $POD_NAME 8080:80

# 访问

curl http://127.0.0.1:8080

# 删除

helm delete hello-test --purge

复制代码

chart分发

# 打包为压缩包

helm package ./

复制代码

参考文档

https://blog.frognew.com/2017/12/its-time-to-use-helm.html

https://jimmysong.io/posts/manage-kubernetes-native-app-with-helm/

https://yq.aliyun.com/articles/159601

https://docs.helm.sh/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值