ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

まず、K8Sクラスタのインストールジェンキンスで

  • NFSサービスをインストールし、独自のネットワーク機器を選択し、私は(192.168.80.180)MASTER1ノードを選択しました

(1)MASTER1でNFSサービスをインストールします

yumをインストールNFS-utilsの-y

NFSを開始systemctl

(2)MASTER1上のNFS共有ディレクトリを作成します

ます。mkdir /データ/ V1 -p

猫の/ etc /輸出

/データ/ V1 192.168.80.0/24(rw,no_root_squash)

exportfsを有効にするには、設定ファイルを-arv

systemctl再起動NFS

  • kubernetesはジェンキンスを展開しました

(1)名前空間を作成

名前空間のジェンキンス-K8Sを作成kubectl

(2)PVを作成します

猫pv.yaml

apiVersion:V1

種類:PersistentVolume

メタデータ:

名前:ジェンキンス-K8S-PV

スペック:

容量:

storage: 10Gi

accessModes:

  • ReadWriteMany

    NFS:

    サーバー:192.168.80.180

    パス:/データ/ V1
    kubectl -f pv.yamlを適用

(3)PVCを作成

猫pvc.yaml
種類:PersistentVolumeClaim

apiVersion:V1

メタデータ:

名前:ジェンキンス-K8S-PVC

名前空間:ジェンキンス-K8S

スペック:

リソース:

requests:

  storage: 10Gi

accessModes:

- ReadWriteMany

ビューのPVとPVC結合状態

-n-ジェンキンスkubectl K8S PVCは、GET
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
(4)アカウントのSAを作成します

SAのジェンキンス-K8S-SA -nジェンキンス-K8Sを作成kubectl

(5)saアカウントは、RBACを行うことを許可しました

ジェンキンス-K8S-SA:-K8Sジェンキンス--clusterrole =クラスタ管理者--serviceaccount =ジェンキンス-K8Sジェンキンス-K8S-SA-クラスタ-nをclusterrolebinding作成kubectl

(6)展開ジェンキンスによって展開

猫ジェンキンス-deployment.yaml
種類:展開

apiVersion:アプリケーション/ V1

メタデータ:

名前:ジェンキンス

名前空間:ジェンキンス-K8S

スペック:

レプリカ:1

セレクタ:

matchLabels:

  app: jenkins

テンプレート:

metadata:

  labels:

    app: jenkins

spec:

  serviceAccount: jenkins-k8s-sa

  containers:

  - name: jenkins

    image: jenkins/jenkins:lts

    imagePullPolicy: IfNotPresent

    ports:

    - containerPort: 8080

      name: web

      protocol: TCP

    - containerPort: 50000

      name: agent

      protocol: TCP

    resources:

      limits:

        cpu: 1000m

        memory: 1Gi

      requests:

        cpu: 500m

        memory: 512Mi

    livenessProbe:

      httpGet:

        path: /login

        port: 8080

      initialDelaySeconds: 60

      timeoutSeconds: 5

      failureThreshold: 12

    readinessProbe:

      httpGet:

        path: /login

        port: 8080

      initialDelaySeconds: 60

      timeoutSeconds: 5

      failureThreshold: 12

    volumeMounts:

    - name: jenkins-volume

      subPath: jenkins-home

      mountPath: /var/jenkins_home

  volumes:

  - name: jenkins-volume

    persistentVolumeClaim:

      claimName: jenkins-k8s-pvc

chownコマンド-R 1000 /データ/ V1

-fジェンキンス-deployment.yamlを適用kubectl

-n-ジェンキンスGET PODS kubectl K8S
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
(7)と共にフロントエンドジェンキンスサービスと、外部ネットワークへのアクセスを提供

猫ジェンキンス-service.yamlの
apiVersion:V1

種類:サービス

メタデータ:

名前:ジェンキンスサービス

名前空間:ジェンキンス-K8S

ラベル:

app: jenkins

スペック:

セレクタ:

app: jenkins

タイプ:NodePort

ポート:

  • 名前:ウェブ

    ポート:8080

    targetPort:ウェブ

    nodePort:30002

  • 名前:エージェント

    ポート:50000

    targetPort:エージェントは
    -fジェンキンス-service.yamlを適用kubectl

kubectl GET SVC -nジェンキンス-K8S
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

第二に、ジェンキンスを設定

ジェンキンスは、ブラウザでのWebインタフェースにアクセスします。

http://192.168.80.199:30002/login?from=%2F
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

  • 管理者パスワードを取得します。

在nfs服务端,也就是master1节点获取密码:

cat /data/v1/jenkins-home/secrets/initialAdminPassword
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
把上面获取到的密码拷贝到上面管理员密码下的方框里
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
点击继续,出现如下界面
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

  • 安装插件

安装插件
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
插件安装好之后显示如下:
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

  • 创建管理员用户
    ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
    用户名和密码都设置成admin,线上环境需要设置成复杂的密码

修改好之后点击保存并完成,出现如下界面

点击保存并完成,出现如下界面
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
点击保存并完成,出现如下界面
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
三、测试jenkins的CI/CD

  • 在Jenkins中安装kubernetes插件

(1)在jenkins中安装k8s插件

Manage Jnekins------>Manage Plugins------>可选插件------>搜索kubernetes------>出现如下
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

选中kubernetes之后------>点击下面的直接安装------>安装之后选择重新启动jenkins--->重启之后登陆jenkins即可

  • 配置jenkins连接到我们存在的k8s集群

(1)点击系统管理->系统设置-新增一个云,在下拉菜单中选择kubernets并添加
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
(2)填写云kubernetes配置内容
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

(3)测试jenkins和k8s是否可以通信
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
点击连接测试,如果显示Connection test successful,说明测试成功,Jenkins可以和k8s进行通信

应用------>保存

  • 配置pod-template

(1)配置pod template

システム管理------> [システム設定------>ポッドテンプレートを追加します。------> Kubernetesポッドテンプレート--->構成は次のように

ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
(2)上記容器はポッドテンプレートを追加

次のように補給容器------>コンテナテンプレート------> ------>配置
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

ポッドテンプレート高度がある右下隅で、[詳細設定]をクリックし、次のように表示されます

ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
サービスアカウントでジェンキンス-K8S-SAを入力するとき、SA、これは我々がインストールジェンキンスを開始saのものです

(3)ポッドテンプレートに上記のボリュームを追加します。

ボリュームを追加------> [ホストの選択パスのボリューム
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

あなたは上記のように構成したら、アプリケーション------>保存

  • 独自のdockerhub資格情報を追加します。

ホーム------>クレデンシャルは------>店舗は----->の下に示し、ジェンキンス下ジェンキンスにスコープをクリックして
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
次のように表示され、このグローバル資格情報]をクリックします------>
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します
xianchao:ユーザ名

パスワード:1989 *****

ID:dockerhub

説明:

よりよいのために上記の変更にOKを選択した後

第三に、ジェンキンスによって展開K8Sをテスト

ホームに戻ります:

入力時にタスク------>タスクジェンキンス-可変テスト・デプロイの名前を入力します。------> ------パイプライン> OK ------>パイプラインのスクリプトを作成します。以下

ノード( 'testhan'){

stage('Test') {

  echo "Test Stage"

}
}

アプリケーション------>保存------>直ちに構築する
BlueOcean、次のインターフェイスを開きます
ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

私はそれぞれを奨励したいと思います

ジェンキンス統合kubernetesは、CI / CDのワークフローを実装します

おすすめ

転載: blog.51cto.com/12974849/2429873