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

2021-12-23 dotNET跨平臺

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

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


apiVersion: apps/v1beta1kind: Deploymentmetadata:  labels:    app: teamcity  name: teamcityspec:  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: ServiceapiVersion: v1metadata:  name: teamcity-servicespec:  type: NodePort #通過節點埠提供對外訪問  ports:    - port: 8111      nodePort: 30001  selector:    app: teamcity


apiVersion: extensions/v1beta1kind: Deploymentmetadata:  labels:    app: tc-agent  name: tc-agentspec:  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: v1kind: Servicemetadata:  labels:    app: tc-agent  name: tc-agentspec:  ports:  - name: tcp-9090-9090    nodePort: 0    port: 9090    protocol: TCP    targetPort: 9090  selector:    app: tc-agent  sessionAffinity: None  type: ClusterIP

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

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

QQ群:

編程交流群<85318032> 

產品交流群<897857351>

相關焦點

  • 如何快速成為一名優秀的YAML工程師?
    目前k8s的使用範圍越來越廣,而接觸和使用k8s就必須會編寫YAML文件。
  • 資料分享 2021 Kubernetes架構師:基於世界500強的k8s實戰課程(K8s實戰第二期) 網盤雲
    資料分享 2021 Kubernetes架構師:基於世界500強的k8s實戰課程(K8s實戰第二期) 網盤雲我剛好有這方面的學習資料
  • 教你一次性成功安裝K8S集群(基於一主兩從模式)
    所以,我就改變了學習策略,先不搞環境搭建了。先通過官網學習了K8S的整體架構,底層原理,又硬啃了一遍K8S源碼。別問我為哈這樣學,只是我覺得對我個人來說,這樣學能讓我更好的理解整套雲原生體系。這不,這次,我總結了如何一次性成功安裝K8S集群的方法。我們今天先來說說如何基於一主兩從模式搭建K8S集群。後面,我們再上如何完全無坑搭建K8S高可用集群的方案。
  • java工具之解析yaml文件
    工具使用背景很多配置項都是使用yaml的格式進行配置的, 按一定的格式進行縮進
  • 新版K8S視頻教程,捲起來!
    今天給大家分享一套K8S視頻教程,希望大家喜歡;文末獲取資源視頻目錄:(轉載自網際網路,如侵權,聯繫三蛋刪除)01.K8s課程內容介紹02.K8s介紹和特性03.K8s集群架構組件組件(安裝Docker)16.搭建K8s集群(二進位方式)-部署Node組件(kubelet和kube-proxy)17.搭建K8s集群(二進位方式)-部署CNI網絡和集群測試18.搭建K8s集群(兩種搭建方式總結)19.K8s核心技術-命令行工具kubectl20.K8s核心技術-資源編排(yaml)介紹21.K8s核心技術-
  • 基於k8s部署cicd之新建jenkins任務、編寫shell命令(5)
    收錄於話題 #k8s 該系列文章講解如何基於k8s環境下快速搭建ci/cd,該系列文章需要你對以下知識點有學習過:1、對docker有較熟練的操作和認識
  • K8S-Nacos高可用集群搭建
    K8S-Nacos高可用集群搭建背景隨著項目業務發展,微服務架構升級,傳統的配置文件方式和資料庫方式已經無法滿足對配置管理的需求.
  • 這麼笨的史丹利,是怎麼學會這該死的k8s容器化的?
    這次,我不僅將學習k8s的技巧分享給大家,還會分享大家一些方法論,比如:本次我將從如下幾個方面為大家介紹,我學習k8s的歷程,和一些經驗心得。網上絕不僅有的笨人學習方法:不會k8s是真的不行!這類人的方法論比較成熟,所以,大家明白了如何能快速掌握k8s的技巧了嗎?如果,你的回答是:恭喜你,你成功的升級為一名書呆子了。。。你其實啥都不知道。。我們繼續向下。
  • Kind + Docker 一鍵部署K8s集群
    docker學習和實踐都很容易,但是K8S的由於集群化,部署需要較多的機器,環境搭建學習實踐比較費勁這一度影響了K8S技術的普及。所以業界也除了一些簡易版的K8s集群環境,比如K3S(5 less than k8s),本文蟲蟲給大家介紹也是這樣一個項目Kind,一鍵部署的單機K8S環境,可以用於學習、本地開發和CI環境。
  • mac 上學習k8s系列(27)Deployment Job CronJob
    在學習完上一講mac 上學習k8s系列(26)ReplicationController、ReplicaSet、StatefulSet
  • 初識K8S之理論和搭建
    一、什麼是k8sk8s是分布式系統集中式管理。它可以看作是一個分布式系統支撐平臺。二、為什麼要用k8s,它有什麼好處1、 開發人員發布的是鏡像,鏡像裡面是包括環境和包括代碼。所以說本地和線上的運行環境是一樣的。不會存在本地可以。
  • Jenkins連接k8s的多種姿勢
    網絡策略打通3.3 證書的生成和配置3.4 配置連接外部的 k8s 集群4、測試驗證4.1 配置 pod template4.2 自由風格構建測試4.3 流水線構建測試1、概述本文分享的是基於C、D用作不同業務線集群因此,我們可以將不同環境定義為如下兩種情況:同集群:指k8s集群內部的jenkins連接本集群跨集群:指外部的jenkins連接k8s集群,或者是jenkins連接外部的k8s集群2、同集群同集群下,
  • k8s之nginx-Ingress-controller如何做高可用應對大並發請求?
    nginx-ingress-controller如何實現高可用?Ingress Controller是集群流量的接入層,對它做高可用非常重要,可以基於keepalive實現nginx=ingress-controller高可用,具體實現如下:Ingress-controller根據daemonSet + nodeSeletor方式部署在k8s指定的兩個work
  • k8s重器之Service
    Service是k8s的核心,通過創建Service,可以為一組具有相同功能的容器應用提供一個統一的入口地址,並將請求進行負載分發到各個容器應用上。sessionAffinity: string #是否支持session,可選值為ClientIP,表示同一個客戶端 ports: - name: string protocol: string #埠協議,支持TCP、UDP,默認是TCP port: int #宿主機埠 targetPort: int #目標Pod的埠 nodePort: int #k8s
  • 虛擬機k8s搭建教程
    ,關注我們點擊文末「閱讀原文」解鎖資料對於學習k8s時,搭建環境是一個很麻煩的一步,在此,闡述下虛擬機搭建k8s,一主一從。="ens33"ONBOOT="yes"IPADDR="192.168.16.135"NETMASK="255.255.255.0"DNS1="192.168.16.2"4.關閉防火牆k8s
  • 基於 Kubernetes 構建企業 Jenkins 持續集成平臺
    那麼我們如何創建 Jenkins Pipline 呢?Change YAML File Stage" sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s.yaml"}第六步,部署stage('Deploy') { echo "6.
  • 搭建一個高可用的鏡像倉庫,這是我見過最詳細、最簡單的教程
    大家好,我是小碗湯,今天分享一篇搭建一個高可用鏡像倉庫的教程
  • K8S中部署應用流程你清楚嗎?
    《Kubernetes是什麼?》《Kubernetes和Docker到底有啥關係?》