Tradicionalmente, os pipelines de CI / CD foram construĂdos sobre servidores fĂsicos e máquinas virtuais. Plataformas de contĂŞiner como Kubernetes e OpenShift chegaram a esse cenário muito mais tarde. No entanto, Ă medida que mais e mais cargas de trabalho sĂŁo migradas para a plataforma OpenShift, tambĂ©m o sĂŁo os pipelines CI / CD, e os trabalhos de pipeline sĂŁo cada vez mais executados dentro de contĂŞineres em execução no cluster.
Esta postagem é uma tradução do blog de nosso amigo Ales Nosik, autor do blog que se autodenomina ("Ajudando a navegar pelo mundo do Kubernetes"). O lema de Ales: "Desenvolvedor e arquiteto de software apaixonado por novas tecnologias, código aberto e cultura DevOps. Tornando o mundo um lugar melhor com software."
Você pode fazer qualquer pergunta depois de ler Ales nos comentários. Bem, e onde sem ele - Ales quer apresentar para as perguntas mais complicadas um conjunto de mochileiros com um mapa de rotas da Red Hat. E um chapéu.
No mundo real, as empresas não estão limitadas a um único cluster OpenShift, mas possuem vários ao mesmo tempo. Por quê? Para executar cargas de trabalho em várias nuvens públicas e em suas próprias instalações de TI. Ou - se a organização permanecer fiel a um único provedor de plataforma - para operar com eficácia em diferentes regiões do mundo. E às vezes é necessário ter vários clusters em uma região, por exemplo, se houver várias zonas de segurança, cada uma das quais deve ter seu próprio cluster.
, 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.