helm系列1--helm简介及安装

本文介绍如何在Kubernetes环境中安装和配置Helm,包括客户端工具的安装、Tiller服务端的部署及权限配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

helm简介

Helm is the best way to find, share, and use software built forKubernetes.

Helm之于Kubernetes好比yum之于RHEL,或者apt-get之于UbuntuHelm使用Chart帮助我们管理应用,Chart就好像RPM一样,里面描述了应用及其依赖关系。

主要概念:

ChartHelm管理的应用部署包,一个结构相对固定的目录或者tgz压缩文件,Chart之间可相互依赖

ReleaseChart部署之后的事例,每一次helm install就会生成一个新的release

HELM安装流程

1.    安装客户端工具helm

下载 Helm 2.6.1注意需要翻墙):

[root@node01 ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.7.0-linux-amd64.tar.gz

csdn资源也有,

网址:https://download.youkuaiyun.com/download/u013289746/10462621

[root@node01 ~]# tar -zxvf helm-v2.7.0-linux-amd64.tgz

[root@node01 ~]# mv linux-amd64/helm /usr/local/bin/helm

[root@node01 ~]# helm version

Client:&version.Version{SemVer:"v2.7.0",GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6",GitTreeState:"clean"}

Error: cannot connect to Tiller

报错为没有tiller server,我们接下来安装tiller;

2.      Helm TILLER安装

Helm TillerHelmserverTiller有多种安装方式,比如本地安装或以pod形式部署到Kubernetes集群中。本文以pod安装为例,安装Tiller的最简单方式是helm init, 该命令会检查helm本地环境设置是否正确,helm init会连接kubectl默认连接的kubernetes集群(可以通过kubectl config view查看),一旦连接集群成功,tiller会被安装到kube-system namespace

[root@node01 ~]# yum install socat  #注意必须在授权之前安装

[root@node01 ~]#helm init --service-account tiller--skip-refresh

注意由于某些原因需要网络可以访问gcr.iokubernetes-charts.storage.googleapis.com,如果无法访问可以通过helm init –service-accounttiller –tiller-image <your-docker-registry>/tiller:2.7.2 –skip-refresh使用私有镜像仓库中的tiller镜像

也可以使用阿里的服务端tiller,并创建阿里的repo--upgrade能够保证已经装上tiller server端的情况下进行安装)

[root@node01 ~]# helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.7.2 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
[root@node01 ~]# kubectl get pod -n kube-system -l app=helm
NAME                             READY     STATUS    RESTARTS   AGE
tiller-deploy-587df449fb-c6tzp   1/1Running09m

3.    权限配置

按照上述方法安装之后执行helm version,会报权限的错误

解决办法:

权限方法1

创建tillerserviceaccountclusterrolebinding

 

[root@node01 ~]# kubectl create serviceaccount --namespace kube-system tiller
[root@node01 ~]# kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
[root@node01 ~]# kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

权限方法2Kubernetes RBAC配置

因为我们将tiller部署在Kubernetes 1.8上,Kubernetes APIServer开启了RBAC访问控制,所以我们需要创建tiller使用的service account: tiller并分配合适的角色给它。详细内容可以查看helm文档中的Role-basedAccess Control。这里简单起见直接分配cluster-admin这个集群内置的ClusterRole给它。

创建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
kubectl create -f rbac-config.yaml
serviceaccount "tiller" created
clusterrolebinding "tiller" created
[root@node01 ~]#  kubectl -n kube-system get pods|grep tiller
tiller-deploy-2372561459-f6p0z         1/1       Running   0          1h
[root@node01 ~]#  helm version
Client: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
[root@node01 ~]# helm create helm-test
[root@node01 ~]# helm install --dry-run --debug helm-test
[root@node01 ~]# cd helm-test 
[root@node01 ~]# helm install .
[root@node01 ~]# $ helm list

常见错误:

1.an error occurred forwarding 41746 -> 44134: error forwarding port44134 to pod a2976f378ae41750ce35ac9b42d2bd0b2cade3c7c7f8b102a5e2ebf7624be5ef,uid : unable to do port forwarding: socat not found.

解决方案:

yum intall socat

2.helm版本的问题

解决方案:

尽量使用较新的版本

具体helm的用法,可以直接输入helm –help来进行查看;

 

参考网址:

Kuberneteshttps://jimmysong.io/kubernetes-handbook/

中文社区:https://www.kubernetes.org.cn/

https://jimmysong.io/kubernetes-handbook/practice/helm.html

https://www.kubernetes.org.cn/tags/helm

http://blog.youkuaiyun.com/weiguang1017/article/details/78045013

https://www.kubernetes.org.cn/3435.html

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值