前言

最近有朋友基于之前的博客《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: 1 #实例数量   revisionHistoryLimit: 2 #保留的历史记录数,设置为0将清理部署的所有历史记录,无法回滚   strategy:   type: Recreate   #更新策略为快速更新,即关闭所有实例重新创建  template: #pod模板    metadata:   labels: app: teamcity   spec:   containers: - image: jetbrains/teamcity-server  #镜像 imagePullPolicy: Always  #拉取策略  name: teamcity  ports:  #端口列表   - containerPort: 8111  #端口  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: 30 #删除需要时间   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: 8111    nodePort: 30001 selector:   app: teamcity

代理端YAML定义

apiVersion: extensions/v1beta1
kind: Deployment
metadata:   labels: app: tc-agent   name: tc-agent
spec:   replicas: 3 revisionHistoryLimit: 2 #保留的历史记录数,设置为0将清理部署的所有历史记录,无法回滚   strategy:   rollingUpdate: #滚动更新配置  maxSurge: 1 maxUnavailable: 0   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: 4  memory: 10024Mi requests: #代理构建时消耗比较大,尽量分配多点资源   cpu: 1  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: 30   volumes:    - name: vol emptyDir: {} #临时目录  hostNetwork: true
---
apiVersion: v1
kind: Service
metadata:   labels: app: tc-agent   name: tc-agent
spec:   ports:  - name: tcp-9090-9090   nodePort: 0 port: 9090  protocol: TCP   targetPort: 9090    selector:   app: tc-agent   sessionAffinity: None   type: ClusterIP

如何基于k8s快速搭建TeamCity(YAML分享)相关推荐

  1. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

  2. 基于 Jenkins 快速搭建持续集成环境

    持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...

  3. 基于Jenkins 快速搭建持续集成环境

    2019独角兽企业重金招聘Python工程师标准>>> 持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开 ...

  4. 基于halo快速搭建一个属于你自己的博客网站

    基于halo快速搭建一个属于你自己的博客网站 公众号 前置条件 JDK安装 下载halo配置文件 下载halo的启动jar 验证启动 公众号 前置条件 首先你需要有一台自己的服务器,比如你去各类云上面 ...

  5. 基于Jenkins快速搭建持续集成环境

    看了园友张善友的博文,尝试成功.便有此作.原网址: 基于 Jenkins 快速搭建持续集成环境 天下事有难易乎?为之,则难者亦易矣:不为,则易者亦难矣. 首先要学会使用MSBuild构建脚本 附网址: ...

  6. 如何基于Docker快速搭建Elasticsearch集群?

    如何基于Docker快速搭建Elasticsearch集群? Elasticsearch  作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步 ...

  7. 阿里云上基于WordPress快速搭建个人博客

    阿里云上基于WordPress快速搭建个人博客 文章目录 阿里云上基于WordPress快速搭建个人博客 一.服务器环境: 二.环境部署: 1.重置实例密码 2.链接ECS服务器 3.安装Apache ...

  8. 第一章:基于 SpringBoot 快速搭建QQ机器人,并监听群事件

    第一章:基于 SpringBoot 快速搭建QQ机器人 前言:知识与储备 这个QQ机器人能干什么? 第一步:搭建Maven项目环境 第二步:编写pom文件 第三步:编写启动类 第四步:创建配置文件 第 ...

  9. 基于Flask快速搭建一个管理系统

    1. 用到的技术 1.1 导模块 from flask import Flask, render_template, jsonify, redirect, request, url_for, sess ...

最新文章

  1. 计算机二级函数知识,2017年全国计算机二级考试MS Office高级应用知识点:INDIRECT函数...
  2. 一种安全的static变量Get/Set方式
  3. c语言switch写值班表,如何用asp编写按周轮换的值班表?例,1月份的值班领导有4位,怎样写可以让4位领导的名字自动到时间显示...
  4. 碉堡!Mysql8.0竟然可以直接操作json文档了。。。
  5. C库函数 - strcspn()
  6. AspNetCore 基于AOP实现Polly的使用
  7. 工作164:对父和混入的理解
  8. html5开发之ios屏幕适配,iOS开发屏幕尺寸以及屏幕适配等问题(转载内容)
  9. laravel 定时任务问题的总结
  10. pytorch报错: invalid argument 0: Sizes of tensors must match except in dimension 0.
  11. Linux内核源码目录
  12. 编码器计数原理与电机测速原理——多图解析
  13. 【教你Win7下如何激活快速启动栏】
  14. 大数据时代,个人信息安全由谁来保护?
  15. 裁员潮来袭,如何度过这两年“艰苦岁月”
  16. Vuforia开发问题记录(四)------- Vuforia AR项目在小米8 SE上运行黑屏
  17. WSTMart商城系统数据字典
  18. 虚拟机创作ubuntu18的ISO镜像
  19. SQL 增加或删除一列
  20. 通过google地图来查看台湾街景

热门文章

  1. Android 使用XmlPullParser解析xml
  2. airpods2使用_如何使用AirPods和AirPods Pro:完整指南
  3. 电热水器工作过程 c语言,热水器工作流程图
  4. 在c语言中load,一道题理清Objective-C中的load和initialize
  5. 2018-04-12
  6. ActiveMQ与spring整合
  7. SpringBoot获取ApplicationContext
  8. linux上怎么快速删除一个目录?
  9. 浅谈SQL注入风险 - 一个Login拿下Server(转)
  10. 依赖Zookeeper生成全局唯一序列号