【笔记】安装Helm和Alicloud Logtail
文章目录
1. 故事背景
原本我是在自建k8s集群里,集成阿里云的日志服务,发现需要使用Helm
来安装,这个过程也遇到一些坑,所以一起在这里记录下来。
2. 提前准备
- 本次试验是在
CentOS 7.4 64位
系统,root
用户下进行 - Kubernetes(k8s)集群
3. 安装Helm
一般需要两个步骤。
- 安装Client
- 安装Server(helm init)
注意:如果安装期间遇到问题,可以使用
helm reset -f
,强制重置`
期间我遇到两个坑。
1. helm init需要科学上网
有几个选择,最好的方案是使用阿里云的库
2. 安装helm chart遇到权限问题
报错信息截选
Error:
release alibaba-log-controller failed: namespaces "default" is forbidden:
User "system:serviceaccount:kube-system:default"
cannot get namespaces in the namespace "default"
说白了,默认的default
用户没有权限,要么给这个用户修改权限,要么新建一个用户给helm使用。(新版本的K8S基于RBAC,经常会遇到这样的问题)
3.1 安装Client
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
3.2 创建用户tiller
这里我选择了新建一个用户给Helm
(这里给了很大的权限)
rbac-config.yml内容
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
创建ServiceAccount和ClusterRoleBinding
kubectl apply -f rbac-config.yml
3.3 安装server(helm init)
helm init
在缺省配置下
Helm
会通过gcr.io/kubernetes-helm/tiller
镜像安装配置Tiller
缺省仓库是
https://kubernetes-charts.storage.googleapis.com
由于在国内可能无法访问
gcr.io
,storage.googleapis.com
等域名,阿里云容器服务为此提供了镜像站点。
这里我不使用科学上网(因为不会),使用阿里的镜像,同时把仓库的地址由改成aliyun
,最后指定ServiceAccount
为tiller
,具体如下:
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.10.0 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts --service-account tiller
4. 安装Logtail
官方参考传送门 - 自建Kubernetes安装方式
wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/alicloud-log-k8s-custom-install.sh; chmod 744 ./alicloud-log-k8s-custom-install.sh; sh ./alicloud-log-k8s-custom-install.sh {your-project-suffix} {region-id} {aliuid} {access-key-id} {access-key-secret}
到这里就很容易了,根据阿里官网说明替换上对应的参数即可。
5. 结束
如果还有其他的问题,可留言交流。
文章作者 xifan
上次更新 2018-09-16