【kubernetes/k8s概念】helm安装部署ceph
1. Helm简介为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用。Helm 采用客户端/服务器架构,如下组件:Helm CLI:命令行客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。Tiller:是 Helm 的服务端,部署在 K...
1. Helm简介
为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用。
Helm 采用客户端/服务器架构,如下组件:
- Helm CLI:命令行客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。
- Tiller:是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
- Chart:Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。
- Repoistory:Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。
- Release:使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。
注:需要注意的是:Helm 中提到的 Release 和我们通常概念中的版本有所不同,这里的 Release 可以理解为 Helm 使用 Chart 包部署的一个应用实例。
2. Helm工作原理
Helm把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。
Chart Install 过程:
- Helm从指定的目录或者tgz文件中解析出Chart结构信息
- Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller
- Tiller根据Chart和Values生成一个Release
- Tiller将Release发送给Kubernetes用于生成Release
3. Helm安装
k8s所在机器上先安装依赖socat
3.1 客户端安装
下载地址:https://github.com/kubernetes/helm/releases
解压并至/usr/bin/目录下,执行命令发现tiller没有安装,接着安装服务端tiller
$ helm version
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Error: could not find tiller
3.2 服务端安装
使用阿里镜像来安装Tiller。
$ helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
$ helm serve &
$ helm repo add local http://localhost:8879/charts
3.3 添加Ceph-Helm charts到本地repo
$ git clone https://github.com/ceph/ceph-helm
$ cd ceph-helm/ceph
$ make
3.4 配置Ceph集群
$ cat ceph-overrides.yaml
network:
public: 192.168.74.57/22 # 主机机器的ip 而不是k8s集群的ip范围
cluster: 192.168.74.57/22 # 必须与public相同osd_devices:
- name: dev-sdb
device: /dev/sdb # 使用前或者重新安装前都要mkfs.ext4 /dev/vdb格式化,会自动分为两个分区
zap: "1"storageclass:
name: ceph-rbd
pool: rbd
user_id: admin
3.5 配置RBAC权限
kubectl apply -f ceph-helm/ceph/rbac.yaml
3.6 helm部署安装
helm install --name=ceph local/ceph --namespace=ceph -f ceph-overrides.yaml
QA
1. Helm查看版本出错
helm version
Client: &version.Version{SemVer:”v2.11.0″, GitCommit:”2e55dbe1fdb5fdb96b75ff144a339489417b146b”, GitTreeState:”clean”}
E1123 17:48:57.894265 12852 portforward.go:331] an error occurred forwarding 46664 -> 44134: error forwarding port 44134 to pod 6a33f6504eea56ab22cdce9e75e2fc044451831171eeac2fcd990b56e4ce042b, uid : unable to do port forwarding: socat not found.
Error: cannot connect to Tiller
解决所有k8s node节点安装 yum install -y socat
参考:
更多推荐
所有评论(0)