従来、CI / CDパイプラインは、物理サーバーと仮想マシンの上に構築されてきました。KubernetesやOpenShiftなどのコンテナープラットフォームは、ずっと後にこのシーンに登場しました。ただし、OpenShiftプラットフォームに移行されるワークロードが増えるにつれて、CI / CDパイプラインも移行され、パイプラインジョブはクラスター上で実行されているコンテナー内でますます実行されます。
この投稿は、自称ブログの作成者である友人のAles Nosikのブログの翻訳です(「Kubernetesの世界をナビゲートするのに役立ちます」)。Alesのモットー:「ソフトウェア開発者およびアーキテクトは、新しいテクノロジー、オープンソース、およびDevOps文化に情熱を注いでいます。ソフトウェアで世界をより良い場所にする」。
コメントでAlesを読んだ後、質問をすることができます。ええと、それがなければ、アレスは最も難しい質問のために、レッドハットからのルートマップを備えたバックパッカーのセットを提示したいと考えています。そして帽子。
現実の世界では、企業は1つのOpenShiftクラスターに限定されず、一度に複数のクラスターを持っています。どうして?さまざまなパブリッククラウドと独自のIT施設の両方でワークロードを実行するため。または、組織が単一のプラットフォームプロバイダーに忠実であり続ける場合は、世界のさまざまな地域で効果的に運営するために。また、たとえば、複数のセキュリティゾーンがあり、それぞれに独自のクラスターが必要な場合など、1つのリージョンに複数のクラスターが必要になる場合があります。
, OpenShift. , CI/CD , , .
CI/CD- Jenkins
Jenkins – CI/CD. - Hudson…, , . , Jenkins, OpenShift? , , . , Jenkins ( -Jenkins), OpenShift. -Jenkins , -Jenkins, . OpenShift (Dev, Test Prod), :
Jenkins OpenShift Kubernetes-plugin, -Jenkins worker- . , , . :
stage ('Build') {
node ("dev") {
// running on dev cluster
}
}
stage ('Test') {
node ("test") {
// running on test cluster
}
}
stage ('Prod') {
node ("prod") {
// running on prod cluster
}
}
OpenShift Jenkins, openshift. -Jenkins, worker-pod’ . , -Jenkins OpenShift, . Jenkins- worker-pod -Jenkins. , -Jenkins worker-, OpenShift.
, . -Jenkins worker- pod- OpenShift, worker- . OpenShift , Jenkins- worker. Jenkins, Jenkins- , .
Kubernetes- Tekton
, CI/CD Tekton. Jenkins, Tekton – Kubernetes- : Kubernetes Kubernetes. Tekton – . , OpenShift?
Tekton. , execute-remote-pipeline, Tekton-, OpenShift. . Tekton OpenShift . , , OpenShift (Dev, Test Prod):
Dev. Dev Test, , , Prod. :
$ tkn pipeline start dev --showlog
Pipelinerun started: dev-run-bd5fs
Waiting for logs to be available...
[execute-remote-pipeline : execute-remote-pipeline-step] Logged into "https://api.cluster-affc.sandbox1480.opentlc.com:6443" as "system:serviceaccount:test-pipeline:pipeline-starter" using the token provided.
[execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] You have one project on this server: "test-pipeline"
[execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] Using project "test-pipeline".
[execute-remote-pipeline : execute-remote-pipeline-step] Welcome! See 'oc help' to get started.
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] Logged into "https://api.cluster-affc.sandbox1480.opentlc.com:6443" as "system:serviceaccount:prod-pipeline:pipeline-starter" using the token provided.
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] You have one project on this server: "prod-pipeline"
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] Using project "prod-pipeline".
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] Welcome! See 'oc help' to get started.
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step] [prod : prod-step] Running on prod cluster
[execute-remote-pipeline : execute-remote-pipeline-step] [execute-remote-pipeline : execute-remote-pipeline-step]
[execute-remote-pipeline : execute-remote-pipeline-step]
, Tekton. – .
, . Kubernetes- Tekton , RBAC. , , (, Test ), (Prod), , (Prod). , , (Prod), , (Test). , Prod Test- -, Test Prod.
, , Jenkins Tekton CI/CD, OpenShift, , .
, OpenShift, , -, .
: Ales Nosek
13 Apache Airflow OpenShift, , .
13 . OpenShift
, OpenShift' .
– .
20 . OpenShift Virtualization: , serverless ,
– OpenShift Virtualization.