在本地运行,我们主要用于学习和测试,接下来我们还是回到主题,继续搭建线上的TeamCity服务。
使用腾讯云容器服务(TKE)搭建和托管TeamCity 创建TeamCity Server容器服务在TKE创建服务的部分细节在之前的教程中我们讲述过,这里主要讲解一些主要的点。由于TeamCity这边需要使用到数据卷做持久化,那么在TKE中,我们如果实现容器服务的持久化呢?
腾讯云容器服务是基于 Kubernetes 编排系统搭建的,创建服务时可以设置以下类型的数据卷:
· 本地硬盘:将容器所在宿主机的文件目录挂载到容器的指定路径中(对应Kubernetes的HostPath), 也可以不填写源路径(对应Kubernetes的EmptyDir),不填写时将分配主机的临时目录挂载到容器的挂载点,指定源路径的本地硬盘数据卷适用于将数据持久化存储到容器所在宿主机,EmptyDir适用于容器的临时存储。
· 云硬盘:腾讯云基于CBS扩展的Kubernetes的块存储插件。可以指定一块腾讯云的 CBS 云硬盘挂载到容器的某一路径下,容器的迁移,云硬盘会跟随迁移,使用云硬盘数据卷适用于数据的持久化保存,可用于Mysql等有状态服务,设置云硬盘数据卷的服务,实例数量最大为 1。
· NFS盘:可以使用腾讯云的文件存储CFS, 也可使用自建的文件存储NFS, 只需要填写NFS路径,使用NFS数据卷适用于多读多写的持久化存储,适用于大数据分析、媒体处理、内容管理等场景。
· 配置项:将配置项中指定 key 映射到容器中(key作为文件名),使用配置项数据卷主要用于业务配置文件的挂载,可以用于挂载配置文件到指定容器目录。
使用数据卷时有以下注意事项:
1.创建数据卷后需要设置容器的挂载点。
2.同一个服务下数据卷的名称和容器设置的挂载点不能重复。
3.本地硬盘数据卷源路径为空时,系统分配临时目录在
/var/lib/kubelet/pods/pod_name/volumes/kubernetes.io~empty-dir.
使用临时的数据卷的生命周期与实例的生命周期保持一致。
4.数据卷挂载需要设置权限,默认设置为读写权限。
了解了这些,接下来的实践我们使用本地硬盘和云硬盘来实现我们云端的数据持久化。
创建TeamCity Server容器服务主要分为以下几个步骤:
1. 创建服务,设置镜像
镜像名称为:jetbrains/teamcity-server,如下图所示(注意是直接输入):
2. 配置数据卷。
数据卷我们这里选择云硬盘,其中“vol”为硬盘命名:
这里我们需要在云硬盘控制台添加好相应的云硬盘:
3. 添加挂载点,以保存数据和日志内容,如下图所示:
其中“vol”为刚创建的数据卷名称,中间部分为容器内的路径,右侧部分为设置该路径的权限。
4. 配置端口映射
TeamCity Server的默认端口为8111,我们可以这么来配置: