Contenedores Y Openshift Flashcards
Para que es el servicio de kubernetes
Container orcheststion and management
Para que es el servicio etcd
Cluster state and config
Para que es el servicio CRDs
Kubernetes operators
Para que es el contenedor CRI-O
Container runtime
Que sistema operativo corre Openshift
Red hat coreOS
Cuales son las capas de openshift container platform
DevOps Tools and User Experience Containerized Services.|Runtimes and xPaaS Kubernetes|etcd|CRDs CRI-O Redhat coreOS
En qué consiste cada capa de openshift
DevOps Tools and User Experience Containerized Services.|Runtimes and xPaaS Kubernetes|etcd|CRDs CRI-O Redhat coreOS
Web consolé,CLI,Rest,API,SCM Integration
Auth, networking, Image registry
Java,Ruby,Node.js and more
Container orchestation and Management
Cluster state and configs
Kubernetes operators
Container runtime
Container optimized OS
Cuales son las capas de openshift
Routing layer
Openshift
Service layer
Certified hardware/cloud provider
Cual es el flujo de un desarrollador y operador para desplegar
Developer
SCM(git/svn)—>MASTER node
CI/CD—>MASTER node
Operations
Existing automation toolsets—>MASTER note
Cuales son los 6 tipos de recursos de kubernetes
Pods (po) Servicios (svc) Controladores de réplicacion (rc) Volúmenes persistentes (pv) Reclamaciones de volumen persistente (pvc) Config maps (cm) y secrets
Cuales son los tipos de recursos en openshift
Configuración de implementación (dc)
Configuración de compilación (bc)
Rutas
Como se obtienen los tipos de recursos de openshift
oc api-resources o kubectl api-resources
Cuales son los dos tipos de redes en kubernetes
SDN( software defined Network) y enrutwdores
Como se puede acceder a un puerto del contenedor por SDN
Especificando El atributo NodePort
Cual es la sintaxis de un recurso pod yaml
apiVersion: v1 kind: Pod1 metadata: name: wildfly2 labels: name: wildfly3 spec: containers: - resources: limits : cpu: 0.5 image: do276/todojee name: wildfly ports: - containerPort: 80804 name: wildfly env:5 - name: MYSQL_ENV_MYSQL_DATABASE value: items - name: MYSQL_ENV_MYSQL_USER value: user1 - name: MYSQL_ENV_MYSQL_PASSWORD value: mypa55
Cual es la estructura de un servicio en yaml
{ "kind": "Service", 1 "apiVersion": "v1", "metadata": { "name": "quotedb" 2 }, "spec": { "ports": [ 3 { "port": 3306, "targetPort": 3306 } ], "selector": { "name": "mysqldb" 4 } } }
Como se modifica el puerto de los servicios
oc edit svc
Como se hace forward de un puerto con oc
oc port-forward mysql-openshift-1-glqrp 3306:3306
Como se crea una aplicación a partir de un repo git
oc new-app https://github.com/openshift/ruby-hello-world –name=ruby-hello –as-deployment-config
Como se crea una aplicación a apartar de un repositorio Docker
oc new-app –docker-image=myregistry.com/mycompany/myapp –name=myapp –as-deployment-config
Como se obtiene la descripción de los componentes más importantes del cluster en openshift
oc get all
Como se exporta un recurso en yaml
oc get RESOURCE_TYPE RESOURCE_NAME -o yaml
Como se crea un recurso a partir de un archivo yaml
oc create -f FILE
Como se modifica un recurso con el editor
oc edit
Como se elimina un recurso en openshift
oc delete RESOURCE_TYPE
Como se ejecuta un comando dentro de un contenedor en openshift
oc exec CONTAINER_ID options
Como se etiquetan los recursos en yaml
apiVersion: v1 kind: Service metadata: ...contents omitted... labels: app: nexus template: nexus-persistent-template name: nexus ...contents omitted...
Como se obtienen las las etiquetas
oc get svc,dc -l app=nexus
Cual es la estructura de una ruta en yaml?
{ "apiVersion": "v1", "kind": "Route", "metadata": { "name": "quoteapp" }, "spec": { "host": "quoteapp.apps.example.com", "to": { "kind": "Service", "name": "quoteapp" } } }
Como se expone una ruta de un aplicativo llamado quote y servicio quotedb
oc expose service quotedb –name quote
Cual es el nombre defecto de una ruta?
route-name-project-name.default-domain
Como se obtienen todos los HAProxy pods con el aplicativo router
oc get pod –all-namespaces -l app=router
En qué proyecto se despliega por defecto una ruta
openshift-ingress
Como se lista la información de la ruta de un pod
oc describe pod router-default-746b5cfb65-f6sdm
Mostrar working pods en línea
oc get pods -w
Como se muestran los logs de un bullid manual
oc logs -f bc/php-helloworld
Como se elimina is ruta de un aplicativo gflllf
oc delete route/php-helloworld
Como se muestra la información de las rutas
oc describe svc/php-helloworld —name= ${RHT_OCP4_DEV_USER}-xyz
Como se muestran los image Streams de openshift
oc get is -n openshift
Como se crea una aplicación nueva usando image streams
oc new-app –as-deployment-config php~http://my.git.server.com/my-app –name=myapp
O
Usa -i php para indicar proyecto en caso de no usar la tilde
Como se crea una aplicación a partir de un repositorio git local
oc new-app –as-deployment-config .
Como se crea una aplicación con un repositorio git remoto
oc new-app –as-deployment-config \
https: //github.com/openshift/sti-ruby.git \
- -context-dir=2.0/test/puma-test-app
Como se crea una aplicación a partir de un branch específico de repositorio git remoto
oc new-app –as-deployment-config \
https://github.com/openshift/ruby-hello-world.git#beta4
Como se crea un recurso De una aplicación nueva en openshift en yaml
oc -o json new-app –as-deployment-config \
> php~http://services.lab.example.com/app \
> –name=myapp > s2i.json
Cual es la estructura de un recurso tipo imageStream
{ "kind": "ImageStream", 1 "apiVersion": "image.openshift.io/v1", "metadata": { "name": "myapp", 2 "creationTimestamp": null "labels": { "app": "myapp" }, "annotations": { "openshift.io/generated-by": "OpenShiftNewApp" } }, "spec": { "lookupPolicy": { "local": false } }, "status": { "dockerImageRepository": "" } }, ...output omitted...
Cual es la estructura de un buildconfig
...output omitted... { "kind": "BuildConfig", 1 "apiVersion": "build.openshift.io/v1", "metadata": { "name": "myapp", 2 "creationTimestamp": null, "labels": { "app": "myapp" }, "annotations": { "openshift.io/generated-by": "OpenShiftNewApp" } }, "spec": { "triggers": [ { "type": "GitHub", "github": { "secret": "S5_4BZpPabM6KrIuPBvI" } }, { "type": "Generic", "generic": { "secret": "3q8K8JNDoRzhjoz1KgMz" } }, { "type": "ConfigChange" }, { "type": "ImageChange", "imageChange": {} } ], "source": { "type": "Git", "git": { "uri": "http://services.lab.example.com/app" 3 } }, "strategy": { "type": "Source", 4 "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "openshift", "name": "php:7.3" 5 } } }, "output": { "to": { "kind": "ImageStreamTag", "name": "myapp:latest" 6 } }, "resources": {}, "postCommit": {}, "nodeSelector": null }, "status": { "lastVersion": 0 } }, ...output omitted...
Cual es un ejemplo de un deployment config
...output omitted... { "kind": "DeploymentConfig", 1 "apiVersion": "apps.openshift.io/v1", "metadata": { "name": "myapp", 2 "creationTimestamp": null, "labels": { "app": "myapp" }, "annotations": { "openshift.io/generated-by": "OpenShiftNewApp" } }, "spec": { "strategy": { "resources": {} }, "triggers": [ { "type": "ConfigChange" 3 }, { "type": "ImageChange", 4 "imageChangeParams": { "automatic": true, "containerNames": [ "myapp" ], "from": { "kind": "ImageStreamTag", "name": "myapp:latest" } } } ], "replicas": 1, "test": false, "selector": { "app": "myapp",
"deploymentconfig": "myapp" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "app": "myapp", "deploymentconfig": "myapp" }, "annotations": { "openshift.io/generated-by": "OpenShiftNewApp" } }, "spec": { "containers": [ { "name": "myapp", "image": "myapp:latest", 5 "ports": [ 6 { "containerPort": 8080, "protocol": "TCP" }, { "containerPort": 8443, "protocol": "TCP" } ], "resources": {} } ] } } }, "status": { "latestVersion": 0, "observedGeneration": 0, "replicas": 0, "updatedReplicas": 0, "availableReplicas": 0, "unavailableReplicas": 0 } }, ...output omitted...
Como se listan los builds
oc get builds
Como se obtienen los config de un build
oc get buildconfig
Como se compila un aplicativo en openshift
oc start-build myapp
Que es el context-dir en la creación de un nuevo aplicativo
Sub directorio para la aplicación Usado como fuente para compilación
Como se listan los templates
oc get templates -n openshift
Como se obtiene un listado
oc get template mysql-persistent -n openshift -o yaml
apiVersion: template.openshift.io/v1 kind: Template labels: ...value omitted... message: ...message omitted ... metadata: annotations: description: ...description omitted... iconClass: icon-mysql-database openshift.io/display-name: MySQL openshift.io/documentation-url: ...value omitted... openshift.io/long-description: ...value omitted... openshift.io/provider-display-name: Red Hat, Inc. openshift.io/support-url: https://access.redhat.com tags: database,mysql 1 labels: ...value omitted... name: mysql-persistent 2 objects:3 - apiVersion: v1 kind: Secret metadata: annotations: ...annotations omitted... name: ${DATABASE_SERVICE_NAME} 4 stringData: ...stringData omitted... - apiVersion: v1 kind: Service metadata: annotations: ...annotations omitted... name: ${DATABASE_SERVICE_NAME} spec: ...spec omitted... - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ${DATABASE_SERVICE_NAME} spec: ...spec omitted... - apiVersion: v1 kind: DeploymentConfig metadata: annotations: ...annotations omitted... name: ${DATABASE_SERVICE_NAME} spec: ...spec omitted... parameters: 5 - ...MEMORY_LIMIT parameter omitted... - ...NAMESPACE parameter omitted... - description: The name of the OpenShift Service exposed for the database. displayName: Database Service Name name: DATABASE_SERVICE_NAME 6 required: true value: mysql - ...MYSQL_USER parameter omitted... - description: Password for the MySQL connection user. displayName: MySQL Connection Password from: '[a-zA-Z0-9]{16}' 7 generate: expression name: MYSQL_PASSWORD required: true - ...MYSQL_ROOT_PASSWORD parameter omitted... - ...MYSQL_DATABASE parameter omitted... - ...VOLUME_CAPACITY parameter omitted... - ...MYSQL_VERSION parameter omitted...
Como se crea un recurso a partir de un sr
oc create -f todo-template.yaml
deploy-multicontainer]$ oc create -f todo-template.yaml \
> -n openshift
Como se ven los procesos
oc process –parameters mysql-persistent -n openshift
oc process –parameters mysql-persistent -n openshift