Canalizaciones de CI / CD que abarcan varios clústeres de OpenShift

Tradicionalmente, las canalizaciones de CI / CD se han construido sobre servidores físicos y máquinas virtuales. Las plataformas de contenedores como Kubernetes y OpenShift llegaron a esta escena mucho más tarde. Sin embargo, a medida que se migran más y más cargas de trabajo a la plataforma OpenShift, también lo hacen las canalizaciones de CI / CD, y los trabajos de canalización se ejecutan cada vez más dentro de los contenedores que se ejecutan en el clúster.





Esta publicación es una traducción del blog de nuestro amigo Ales Nosik, el autor del blog autodenominado ("Ayudándote a navegar por el mundo de Kubernetes"). El lema de Ales: "Desarrollador de software y arquitecto apasionado por las nuevas tecnologías, el código abierto y la cultura DevOps. Hacer del mundo un lugar mejor con el software".





Puede hacer cualquier pregunta después de leer Ales en los comentarios. Bueno, y donde sin él, Ales quiere presentar para las preguntas más difíciles un conjunto de mochileros con un mapa de ruta de Red Hat. Y un sombrero.





En el mundo real, las empresas no se limitan a un solo clúster de OpenShift, sino que tienen varios a la vez. ¿Por qué? Para ejecutar cargas de trabajo tanto en varias nubes públicas como en sus propias instalaciones de TI. O, si la organización permanece leal a un único proveedor de plataforma, para operar de manera efectiva en diferentes regiones del mundo. Y a veces es necesario tener varios clústeres en una región, por ejemplo, si hay varias zonas de seguridad, cada una de las cuales debe tener su propio clúster.





, 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.








All Articles