如何基于k8s快速搭建TeamCity(YAML分享)
前言
最近有朋友基于之前的博客《Docker最全教程之使用TeamCity来完成内部CI、CD流程(十七)》搭建TeamCity时出现了一些问题,由于平常比较忙,没有及时答复,非常抱歉。
这里分享下基于本地k8s集群(云端k8s服务注意使用云盘或者其他存储)搭建TeamCity的相关Yaml的配置文件,注意使用“kubectl apply -f <路径>”命令执行。
服务端YAML定义
apiVersion: apps/v1beta1
kind: Deployment
metadata:
labels:
app: teamcity
name: teamcity
spec:
replicas: #实例数量
revisionHistoryLimit: #保留的历史记录数,设置为0将清理部署的所有历史记录,无法回滚
strategy:
type: Recreate #更新策略为快速更新,即关闭所有实例重新创建
template: #pod模板
metadata:
labels:
app: teamcity
spec:
containers:
- image: jetbrains/teamcity-server #镜像
imagePullPolicy: Always #拉取策略
name: teamcity
ports: #端口列表
- containerPort: #端口
resources:
limits:
cpu: 1000m #最大CPU,这里为1核
memory: 4184Mi #最大内存
requests:
cpu: 97m #预分配CPU,这里为0.097核
memory: 2092Mi #预分配内存
volumeMounts:
- mountPath: /data/teamcity_server/datadir
name: data-vol
- mountPath: /opt/teamcity/logs
name: log-vol
nodeName: k8s-node1 #强制约束将Pod调度到指定的Node节点上
restartPolicy: Always #重启策略
terminationGracePeriodSeconds: #删除需要时间
volumes:
- name: data-vol
hostPath: #使用主机目录
path: /var/teamcity
- name: log-vol
emptyDir: {} #临时目录
hostNetwork: true
---
kind: Service
apiVersion: v1
metadata:
name: teamcity-service
spec:
type: NodePort #通过节点端口提供对外访问
ports:
- port:
nodePort:
selector:
app: teamcity
代理端YAML定义
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: tc-agent
name: tc-agent
spec:
replicas:
revisionHistoryLimit: #保留的历史记录数,设置为0将清理部署的所有历史记录,无法回滚
strategy:
rollingUpdate: #滚动更新配置
maxSurge:
maxUnavailable:
type: RollingUpdate #使用滚动更新策略
template:
metadata:
labels:
app: tc-agent
spec:
containers:
- env:
- name: AGENT_NAME #代理名称
value: Agent1
- name: SERVER_URL #服务端访问地址
value: http://172.16.2.202:30001
- name: DOCKER_IN_DOCKER
value: start
image: jetbrains/teamcity-agent
imagePullPolicy: Always
name: tc-agent
resources: #资源限制
limits:
cpu:
memory: 10024Mi
requests: #代理构建时消耗比较大,尽量分配多点资源
cpu:
memory: 4096Mi
securityContext:
privileged: true #特级权限
volumeMounts:
- mountPath: /data/teamcity_agent/conf
name: vol
- mountPath: /var/lib/docker
name: vol
dnsPolicy: ClusterFirst
nodeName: k8s-node3 #强制约束将Pod调度到指定的Node节点上
restartPolicy: Always
terminationGracePeriodSeconds:
volumes:
- name: vol
emptyDir: {} #临时目录
hostNetwork: true
---
apiVersion: v1
kind: Service
metadata:
labels:
app: tc-agent
name: tc-agent
spec:
ports:
- name: tcp--
nodePort:
port:
protocol: TCP
targetPort:
selector:
app: tc-agent
sessionAffinity: None
type: ClusterIP
如何基于k8s快速搭建TeamCity(YAML分享)的更多相关文章
- 基于 Jenkins 快速搭建持续集成环境--转
源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...
- 2019基于Hexo快速搭建个人博客,打造一个炫酷博客(1)-奥怪的小栈
本文转载于:奥怪的小栈 这篇文章告诉你如何在2019快速上手搭建一个像我一样的博客:基于HEXO+Github搭建.并完成SEO优化,打造一个炫酷博客. 本站基于HEXO+Github搭建.所以你需要 ...
- 基于Docker快速搭建多节点Hadoop集群--已验证
Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...
- springboot+dubbo基于zookeeper快速搭建一个demo
由于小编是在windows环境下搭建的,故该示例均为在windows下操作,这里只是提供一个快速搭建思路,linux操作也基本上差不多. 首先本示例的dubbo是基于zookeeper发布订阅消息的, ...
- 如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目
目录 前言 项目目录 搭建项目 1. docker安装启动mysql以及redis 1.1 安装mysql 1.2 安装redis 2. 初始化数据库 3.创建项目 4.初始化代码 4.1 全局配置文 ...
- 基于 Jenkins 快速搭建持续集成环境
什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...
- 基于Vue-cli 快速搭建项目
Vue-cli可以快速帮助我们创建一个项目,这是官方给我们提供的脚手架.下面我说一下vue-cli的使用方法. 一.准备工作 在使用vue-cli时,首先需要安装nodejs,npm,其次需全局安装v ...
- 基于Docker快速搭建ELK【华为云技术分享】
[摘要] 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索. 准备镜像 l 获取ES镜像:docker pull ...
- 基于Docker快速搭建ELK
[摘要] 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索. 准备镜像 l 获取ES镜像:docker pull ...
随机推荐
- Unity 登录白屏或者黑屏
如果有一天,突然,你的Unity抽风了,登录界面白屏或者黑屏,不要急着重装.我重装了3次,第四次我再也忍不住了,终于出手了. 找到 C:\Users\hasee\AppData\Roaming\Uni ...
- Vbox中unbuntu15.10与win10共享文件 及开启复制粘贴功能
学习linux,一直使用的是VMware虚拟机,虽然功能很强大,但总感觉页面切换很麻烦.所以转入Vbox的使用,下面介绍下unbuntu15.10与win10共享文件. 一 共享文件夹 步骤1:启动u ...
- spring源码系列7:Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别
概念 Bean创建过程中的"实例化"与"初始化"名词 实例化(Instantiation): 要生成对象, 对象还未生成. 初始化(Initialization ...
- 关于_GNU_SOURCE宏
是在features.h中用于特性控制的一个功能测试宏 /user/include/features.h /* If _GNU_SOURCE was defined by the user, turn ...
- 微信小程序自定义弹窗(可通用)
效果图 .wxml <cover-view class='mask' wx:if='{{isShow}}'> <cover-view class='modal'> <co ...
- 实验:用tcp请求http协议的接口
图示: 开启http服务,浏览器地址,访问测试页面 查看http报文,复制出来 用tcp工具请求测试 http 协议就是这样的,在tcp协议上面做了报文格式处理,连接发送数据后,就自动断开连接 jav ...
- JVM(2) Java内存溢出异常
在Java虚拟机运行时数据区中,除了程序计数器之外,虚拟机栈.本地方法栈.方法区和Java堆都有发生OutOfMemoryError(简称OOM)异常的可能. 一.Java堆溢出 Java堆用于存储对 ...
- FastReport快速实现条形码,二维码面单打印
一.什么是FastReport? FastReport是功能齐全的报表控件,使开发者可以快速并高效地为·NET/VCL/COM/ActiveX应用程序添加报表支持. FastReport有很多产品,如 ...
- 文件读取(filestream)
在stream中已经介绍过,文件读取应用filestream,其是以字节为单位读取文件的.在操作中,当应用filestream创建文件流,读取时应先定义一个字节数组,在转化成char类型,最后转化成s ...
- MAVEN(一) 安装和环境变量配置
一.安装步骤 1.安装maven之前先安装jdk,并配置好环境变量.确保已安装JDK,并 “JAVA_HOME” 变量已加入到 Windows 环境变量. 2.下载maven 进入官方网站下载网址如下 ...