如何基於k8s快速搭建TeamCity(YAML分享)

前言

最近有朋友基於之前的博客《Docker最全教程之使用TeamCity來完成內部CI、CD流程(十七)》搭建TeamCity時出現了一些問題,由於平常比較忙,沒有及時答覆,非常抱歉。

這裡分享下基於本地k8s集群(雲端k8s服務注意使用雲盤或者其他存儲)搭建TeamCity的相關Yaml的配置文件,注意使用“kubectl apply -f ”命令執行。

服務端YAML定義

<code>apiVersion: apps/v1beta1/<code><code>kind: Deployment/<code><code>metadata:/<code><code> labels:/<code><code> app: teamcity/<code><code> name: teamcity/<code><code>spec:/<code><code> replicas: 1 #實例數量/<code><code> revisionHistoryLimit: 2 #保留的歷史記錄數,設置為0將清理部署的所有歷史記錄,無法回滾/<code><code> strategy:/<code><code> type: Recreate #更新策略為快速更新,即關閉所有實例重新創建/<code><code> template: #pod模板/<code><code> metadata:/<code><code> labels:/<code><code> app: teamcity/<code><code> spec:/<code><code> containers:/<code><code> - image: jetbrains/teamcity-server #鏡像/<code><code> imagePullPolicy: Always #拉取策略/<code><code> name: teamcity/<code><code> ports: #端口列表/<code><code> - containerPort: 8111 #端口/<code><code> resources:/<code><code> limits:/<code><code> cpu: 1000m #最大CPU,這裡為1核/<code><code> memory: 4184Mi #最大內存/<code><code> requests:/<code><code> cpu: 97m #預分配CPU,這裡為0.097核/<code><code> memory: 2092Mi #預分配內存/<code><code> volumeMounts:/<code><code> - mountPath: /data/teamcity_server/datadir/<code><code> name: data-vol/<code><code> - mountPath: /opt/teamcity/logs/<code><code> name: log-vol/<code><code> nodeName: k8s-node1 #強制約束將Pod調度到指定的Node節點上/<code><code> restartPolicy: Always #重啟策略/<code><code> terminationGracePeriodSeconds: 30 #刪除需要時間/<code><code> volumes:/<code><code> - name: data-vol/<code><code> hostPath: #使用主機目錄/<code><code> path: /var/teamcity/<code><code> - name: log-vol/<code><code> emptyDir: {} #臨時目錄/<code><code> hostNetwork: true/<code><code>---/<code><code>kind: Service/<code><code>apiVersion: v1/<code><code>metadata:/<code><code> name: teamcity-service/<code><code>spec:/<code><code> type: NodePort #通過節點端口提供對外訪問/<code><code> ports:/<code><code> - port: 8111/<code><code> nodePort: 30001/<code><code> selector:/<code><code> app: teamcity/<code>

代理端YAML定義

<code>apiVersion: extensions/v1beta1/<code><code>kind: Deployment/<code><code>metadata:/<code><code> labels:/<code><code> app: tc-agent/<code><code> name: tc-agent/<code><code>spec:/<code><code> replicas: 3/<code><code> revisionHistoryLimit: 2 #保留的歷史記錄數,設置為0將清理部署的所有歷史記錄,無法回滾/<code><code> strategy:/<code><code> rollingUpdate: #滾動更新配置/<code><code> maxSurge: 1/<code><code> maxUnavailable: 0/<code><code> type: RollingUpdate #使用滾動更新策略/<code><code> template:/<code><code> metadata:/<code><code> labels:/<code><code> app: tc-agent/<code><code> spec:/<code><code> containers:/<code><code> - env:/<code><code> - name: AGENT_NAME #代理名稱/<code><code> value: Agent1/<code><code> - name: SERVER_URL #服務端訪問地址/<code><code> value: http://172.16.2.202:30001/<code><code> - name: DOCKER_IN_DOCKER/<code><code> value: start/<code><code> image: jetbrains/teamcity-agent/<code><code> imagePullPolicy: Always/<code><code> name: tc-agent/<code><code> resources: #資源限制/<code><code> limits:/<code><code> cpu: 4/<code><code> memory: 10024Mi/<code><code> requests: #代理構建時消耗比較大,儘量分配多點資源/<code><code> cpu: 1/<code><code> memory: 4096Mi/<code><code> securityContext:/<code><code> privileged: true #特級權限/<code><code> volumeMounts:/<code><code> - mountPath: /data/teamcity_agent/conf/<code><code> name: vol/<code><code> - mountPath: /var/lib/docker/<code><code> name: vol/<code><code> dnsPolicy: ClusterFirst/<code><code> nodeName: k8s-node3 #強制約束將Pod調度到指定的Node節點上/<code><code> restartPolicy: Always/<code><code> terminationGracePeriodSeconds: 30/<code><code> volumes:/<code><code> - name: vol/<code><code> emptyDir: {} #臨時目錄/<code><code> hostNetwork: true/<code><code>---/<code><code>apiVersion: v1/<code><code>kind: Service/<code><code>metadata:/<code><code> labels:/<code><code> app: tc-agent/<code><code> name: tc-agent/<code><code>spec:/<code><code> ports:/<code><code> - name: tcp-9090-9090/<code><code> nodePort: 0/<code><code> port: 9090/<code><code> protocol: TCP/<code><code> targetPort: 9090/<code><code> selector:/<code><code> app: tc-agent/<code><code> sessionAffinity: None/<code><code> type: ClusterIP/<code> 
如何基于k8s快速搭建TeamCity(YAML分享)

如果喜歡作者的文章,請關注【麥扣聊技術】訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

文檔官網:docs.xin-lai.com

QQ群:

編程交流群<85318032>

產品交流群<897857351>


分享到:


相關文章: