成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Jenkins部署k8s應(yīng)用

IT那活兒 / 1960人閱讀
Jenkins部署k8s應(yīng)用

Jenkins Pipeline 流水線部署 Kubernetes 應(yīng)用

使用 kubeadm 來(lái)創(chuàng)建一個(gè)單 master 節(jié)點(diǎn)的 kubernets 集群

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.20.11

查看節(jié)點(diǎn)狀態(tài)和 pod 都已經(jīng)正常

kubectl get pod -A
NAMESPACE NAME                                          READY     STATUS     RESTARTS    AGE
kube-system   coredns-f9fd979d6-9t6qp             1/1            Running      0                  89s
kube-system   coredns-f9fd979d6-hntm8            1/1            Running      0                  89s
kube-system   etcd-jenkins                                 1/1            Running      0                 106s
kube-system   kube-apiserver-jenkins                 1/1            Running      0                 106s
kube-system   kube-controller-manager-jenkins  1/1            Running      0                 106s
kube-system   kube-proxy-8pzkz                         1/1            Running      0                 89s
kube-system   kube-scheduler-jenkins                 1/1            Running     0                  89s

去除 master 節(jié)點(diǎn)上的污點(diǎn),允許其他的 pod 調(diào)度在 master 節(jié)點(diǎn)上,不然后面 Jenkins 所創(chuàng)建的 pod 將無(wú)法調(diào)度在該節(jié)點(diǎn)上。

kubectl taint nodes $(hostname) node-role.kubernetes.io/master:NoSchedule-


Jenkins master

建議使用docker-compose來(lái)部署。運(yùn)行在kubernetes集群集群中也沒什么毛病,但是將Jenkins master獨(dú)立于kubernetes集群部署比較方便.

docker-compose.yaml:
version: 3.6
services:
  jenkins:
    image: jenkins/jenkins:2.263.4-lts-slim
    container_name: jenkins
    restart: always
    volumes:
      - ./jenkins_home:/var/jenkins_home
    network_mode: host
    user: root
    environment:
      - JAVA_OPTS=-Duser.timezone=Asia/Shanghai


使用docker-compose up來(lái)啟動(dòng),成功啟動(dòng)后會(huì)提示,日志輸出的密鑰就是admin用戶的默認(rèn)密碼,使用它來(lái)第一次登錄 Jenkins。

登錄上去之后,建議選擇 “選擇插件” 來(lái)安裝,盡可能少地安裝插件,按需安裝即可。在Jenkins的插件管理那里安裝上kubernetes插件。


接下來(lái)開始配置Jenkin與kubernetes 

配置 kubernets 的地方是在 系統(tǒng)管理 > 節(jié)點(diǎn)管理 > Configure Clouds。點(diǎn)擊 Add a new cloud,來(lái)添加一個(gè) kubernetes 集群。

在 Jenkins 的憑據(jù)那里添加上 kubeconfig 文件,憑據(jù)的類型選擇為 Secret file,然后將上面使用 kubeadm 部署生成的 kubeconfig 上傳到這里。

點(diǎn)擊連接測(cè)試,如果提示 Connected to Kubernetes v1.19.8 就說(shuō)明已經(jīng)成功連接上了 kubernetes 集群。


Jenkinsfile

流水線 Jenkinsfile,下面是一個(gè)簡(jiǎn)單的任務(wù),用于構(gòu)建 webp-server-go 項(xiàng)目的 docker 鏡像。

// Kubernetes pod template to run.
def JOB_NAME = "${env.JOB_NAME}"
def BUILD_NUMBER = "${env.BUILD_NUMBER}"
def POD_NAME = "jenkins-${JOB_NAME}-${BUILD_NUMBER}"
podTemplate(
# 這里定義 pod 模版
)
{ node(POD_NAME) {
    container(JOB_NAME) {
      stage("Build image") {
        sh """#!/bin/bash
          git clone https://github.com/webp-sh/webp_server_go /build
          cd /build
          docker build -t webps:0.3.2-rc.1 .
        """
      }
    }
  }
}

pod 模版如下,將模板的內(nèi)容復(fù)制粘貼到上面的 Jenkinsfile 中。在容器中構(gòu)建鏡像,使用 dind 的方案:將 pod 所在宿主機(jī)的 docker sock 文件掛載到 pod 的容器內(nèi),pod 容器內(nèi)只要安裝好 docker-cli 工具就可以像宿主機(jī)那樣直接使用 docker 了。

podTemplate(
  cloud: "kubernetes",
  namespace: "default",
  name: POD_NAME,
  label: POD_NAME,
  yaml: """
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: ${JOB_NAME}
    image: "debian:buster-docker"
    imagePullPolicy: IfNotPresent
    tty: true
    volumeMounts:
    - name: dockersock
      mountPath: /var/run/docker.sock
  - name: jnlp
    args: ["$(JENKINS_SECRET)", "$(JENKINS_NAME)"]
    image: "jenkins/inbound-agent:4.3-4-alpine"
    imagePullPolicy: IfNotPresent
  volumes:
  - name: dockersock
    hostPath:
      path: /var/run/docker.sock
""",
)

構(gòu)建 debian:buster-docker 鏡像,使用它來(lái)在 pod 的容器內(nèi)構(gòu)建 docker 鏡像,使用的 Dockerfile 如下:

FROM debian:buster
RUN apt update 
    && apt install -y --no-install-recommends
        vim 
        curl
        git
        make 
        ca-certificates
        gnupg
    && rm -rf /var/lib/apt/lists/*
RUN curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null
    && echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" > /etc/apt/sources.list.d/docker.list 
    && apt update -qq
    && apt-get install -y -qq --no-install-recommends docker-ce-cli
    && rm -rf /var/lib/apt/lists/*

定義好 jenkinsfile 文件并且構(gòu)建好 pod 模板中的鏡像后,接下來(lái)開始使用它來(lái)創(chuàng)建流水線任務(wù)。


流水線

在 Jenkins 上新建一個(gè)任務(wù),選擇任務(wù)的類型為 流水線

將定義好的 Jenkinsfile 內(nèi)容復(fù)制粘貼到流水線定義 Pipeline script 中并點(diǎn)擊保存。在新建好的 Job 頁(yè)面點(diǎn)擊 立即構(gòu)建 來(lái)運(yùn)行流水線任務(wù)。

在 kubernetes 集群的機(jī)器上使用 kubectl 命令查看 pod 是否正常 Running

kubectl get pod
NAME                                       READY    STATUS      RESTARTS   AGE
jenkins-webps-9-bs78x-5x204    2/2           Running      0                   66s


END



更多精彩干貨分享

點(diǎn)擊下方名片關(guān)注

IT那活兒

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://hztianpu.com/yun/129801.html

相關(guān)文章

  • 構(gòu)建與定制:唯品會(huì) PaaS 基于 Kubernetes 的實(shí)踐

    摘要:基于年底或年初沒有推廣的現(xiàn)狀,唯品會(huì)部門目前已經(jīng)做了兩年的時(shí)間。唯品會(huì)現(xiàn)狀唯品會(huì)目前線上有一千多個(gè)域,每個(gè)域之間相互的依賴比較復(fù)雜,每次的部署發(fā)布困難。這是唯品會(huì)的架構(gòu),主要包含持續(xù)集成和持續(xù)部署。 數(shù)人云上海&深圳兩地容器之Mesos/K8S/Swarm三國(guó)演義的嘉賓精彩實(shí)錄第三更來(lái)啦。唯品會(huì)是數(shù)人云Meetup的老朋友,去年曾做過(guò)RPC服務(wù)框架和Mesos容器化的分享。本次分享中,...

    JackJiang 評(píng)論0 收藏0
  • 【容器云 UK8S】最佳實(shí)踐:基于Jenkins的CI/CD實(shí)踐

    摘要:擴(kuò)展性好當(dāng)集群的資源嚴(yán)重不足而導(dǎo)致排隊(duì)等待時(shí),可以很容易的添加一個(gè)到集群中,從而實(shí)現(xiàn)擴(kuò)展。用法,選擇盡可能使用這個(gè)節(jié)點(diǎn)鏡像,填寫,這個(gè)容器鏡像是我們的運(yùn)行環(huán)境。更新文件,這里我們只是將中的鏡像更換成最新構(gòu)建出的鏡像?;贘enkins的CI/CD實(shí)踐[TOC]一、概要提到K8S環(huán)境下的CI/CD,可以使用的工具有很多,比如Jenkins、Gitlab CI、新興的drone等,考慮到大多公司...

    Tecode 評(píng)論0 收藏0
  • 基于kubernetes+docker+jenkins的DevOps實(shí)踐

    摘要:一個(gè)小服務(wù)器加本地一個(gè)閑置從機(jī)撐進(jìn)去這么多東西很顯然爆了,于是把拆出來(lái),用上了公共的云服務(wù)容器鏡像服務(wù)。使用對(duì)集群外暴露服務(wù)這里使用的是在中部署有官方部署手冊(cè),基本按著走一遍就能部署上去了。 基于kubernetes+docker+jenkins的DevOps實(shí)踐 之前自己的項(xiàng)目開發(fā)就搭了個(gè)cicd的環(huán)境,那時(shí)候是在本就小的可憐的服務(wù)器上搭了一套 jenkins + docker...

    zhichangterry 評(píng)論0 收藏0
  • 基于kubernetes+docker+jenkins的DevOps實(shí)踐

    摘要:一個(gè)小服務(wù)器加本地一個(gè)閑置從機(jī)撐進(jìn)去這么多東西很顯然爆了,于是把拆出來(lái),用上了公共的云服務(wù)容器鏡像服務(wù)。使用對(duì)集群外暴露服務(wù)這里使用的是在中部署有官方部署手冊(cè),基本按著走一遍就能部署上去了。 基于kubernetes+docker+jenkins的DevOps實(shí)踐 之前自己的項(xiàng)目開發(fā)就搭了個(gè)cicd的環(huán)境,那時(shí)候是在本就小的可憐的服務(wù)器上搭了一套 jenkins + docker...

    paulli3 評(píng)論0 收藏0
  • Kubernetes持續(xù)集成:Jenkins關(guān)于java.nio.file.NoSuchFileEx

    摘要:嘗試運(yùn)行腳本發(fā)生了的錯(cuò)誤。錯(cuò)誤信息接下來(lái)就是,天的調(diào)查,關(guān)于這個(gè)錯(cuò)誤的能查到的資料幾乎沒有,也嘗試了很多方法,無(wú)果非常煎熬。問(wèn)題解決了參考文檔初試使用完成持續(xù)構(gòu)建與發(fā)布集群安全配置 背景 為了使用Kubernetes管理并自動(dòng)化部署應(yīng)用程序,領(lǐng)導(dǎo)糾結(jié)了幾個(gè)同事搭了一個(gè)Kubernetes集群環(huán)境。不過(guò),為了減少?gòu)?fù)雜度,采用了非官方推薦的方式: API Server使用http方式 不...

    tomener 評(píng)論0 收藏0
  • k8s中imagePullSecrets

    摘要:在集群的使用過(guò)程中,初學(xué)者可能會(huì)碰到這樣的怪異問(wèn)題在一個(gè)集群里,部署服務(wù)用的私有鏡像倉(cāng)庫(kù),如的時(shí)候,只有個(gè)別的服務(wù)是部署成功的,其他都是部署失敗的,錯(cuò)誤的原因就是鏡像拉取失敗,如下 在k8s集群的使用過(guò)程中,初學(xué)者可能會(huì)碰到這樣的(怪異)問(wèn)題: 在一個(gè)k8s集群里,部署服務(wù)(用的私有鏡像倉(cāng)庫(kù),如harbor)的時(shí)候,只有個(gè)...

    番茄西紅柿 評(píng)論0 收藏2637

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<