在 Kubernetes 上使用 GoCD 入门
第1步:设置你的Kubernetes集群
在开始使用GoCD on Kubernetes之前,请确保你已经查看了以下列表。
1. 安装kubectl
Kubernetes命令行工具kubectl
用于集群管理目的。Kubernetes安装文档提供了为不同平台安装kubectl的各种方法。
2. 设置Kubernetes集群
在安装GoCD之前,你需要设置一个Kubernetes集群。一些流行的选项是:
选项1:Minikube (设置指南)
安装minikube后,使用kubeadm
启动器启动minikube。该kubeadm
工具包有助于轻松引导集群,以便授予适当的权限来对Kubernetes认证和授权(RBAC)资源进行读写操作。
minikube start --vm-driver=virtualbox --bootstrapper=kubeadm --memory 4096
提示:你可以使用此命令在minikube上启用Ingress
minikube addons enable ingress
选项2:Google Kubernetes Engine或GKE (设置指南)
提示:一旦集群运行,执行以下命令以查看kubectl是否正在使用正确的上下文。
kubectl config current-context
选项3:Amazon Elastic Kubernetes服务(EKS) (入门指南)
提示:eksctl是一个有用的CLI,用于在Amazon EKS上设置Kubernetes集群
3. 安装并配置Helm - Kubernetes包管理器
Helm是Kubernetes的包管理器。Kubernetes包称为charts。Charts是为Kubernetes策划的应用程序。
安装Helm客户端
Helm客户端是一个CLI,可以让你在Kubernetes上安装和更新打包应用。Helm的安装文档详细介绍了安装Helm客户端的各种方法。
安装后,验证Helm版本
$ helm version
version.BuildInfo{Version:"v3.0.3", GitCommit:"ac925eb7279f4a6955df663a0128044a8a6b7593", GitTreeState:"clean", GoVersion:"go1.13.7"}
对于Helm客户端v2及以下版本:
使用RBAC安装Helm服务器(Tiller)
使用Helm时,一个好的实践是为特定的Tiller服务账户授予权限,以控制应用程序部署的范围。你可以参考Kubernetes RBAC文档了解更多关于Kubernetes服务账户和RBAC的信息。
要为具有相当宽松的cluster-admin角色的Tiller创建服务账户,请创建一个名为rbac-config.yaml
的文件,并包含以下内容:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
注意:该cluster-admin
角色默认存在于Kubernetes集群中,你无需创建它。
kubectl create -f rbac-config.yaml
现在我们已经创建并分配了Helm服务账户的角色,让我们使用该服务账户部署Tiller。
helm init --service-account tiller
对于Helm客户端v3:
作为Helm v3的一部分,Tiller已经被移除以简化使用Helm的体验。不再需要拥有集群管理员权限或将Tiller安装到每个命名空间中。随着Tiller的移除,Helm v3现在使用本地kubeconfig文件中定义的设置和访问权限。
想要了解更多关于Tiller移除的信息,请访问Helm v3 更改日志.
Helm的权限现在通过你的kubeconfig文件进行评估。请参考使用kubeconfig文件组织集群访问和Helm RBAC指南为您的集群配置更安全、更高级的RBAC。