概要
ZCP はバージョン 1.2.0 にアップグレードされ、Kubernetes 1.13 をサポートするようになりました。
Kubernetes 1.13 の主な変更点の一つは、Docker の代わりに ContainerD を使用することです。詳しくは リンクをご参照ください。
ZCP CI/CD パイプラインでは、これまで Docker ビルド時に Host Worker ノードの Docker Daemon を使用していましたが、ZCP 1.2.0 以降、Host Worker ノードに Docker Daemon が存在しなくなりました。そのため、Docker build の際に Docker daemon を含む Dind イメージを使用するようにパイプラインを修正する必要があります。
パイプライン修正事項
podTemplate(label:label, serviceAccount: "zcp-system-sa-${ZCP_USERID}", containers: [ containerTemplate(name: 'maven', image: 'maven:3.5.2-jdk-8-alpine', ttyEnabled: true, command: 'cat'), // Docker ビルドイメージとして dind を使用 // containerTemplate(name: 'docker', image: 'docker', ttyEnabled: true, command: 'cat'), containerTemplate(name: 'docker', image: 'docker:17-dind', ttyEnabled: true, command: 'dockerd-entrypoint.sh', privileged: true), // kubectl をバージョン 1.13.6 に更新 // containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl', ttyEnabled: true, command: 'cat') containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl:v1.13.6', ttyEnabled: true, command: 'cat') ], volumes: [ // Docker daemon のマウントを削除 // hostPathVolume(hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock'), persistentVolumeClaim(mountPath: '/root/.m2', claimName: 'zcp-jenkins-mvn-repo') ]) {
6~7 行目: Docker イメージを dind に変更
- 基本 Docker イメージを 17-dind に変更しました。
- Pod 起動時に Docker daemon を実行するように
dockerd-entrypoint.sh
に変更しました。 - Docker daemon の実行を許可するために
privileged: true
オプションを追加しました。
9~10 行目: kubectl イメージを v1.13.6 に更新
- k8s-kubectl イメージのバージョンを v1.13.6 に変更しました。
Docker Hub へ接続できないクラスタでは、ZCP の提供する Harbor Registry に対象イメージをプッシュして使用してください。
14 行目: Host Worker ノードの Docker daemon のボリュームマウントを削除
オンライン相談
問い合わせ