@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

instalar-openshift-kubernetes-dockers-vmware-workstation-0

Instalar Openshift, Kubernetes y Dockers en VMware Workstation

Instalar Openshift, Kubernetes y Dockers en VMware Workstation

Os explicamos como generar un laboratorio de Openshift, Kubernetes y Dockers sobre Centos 7 y VMware Workstation. La idea es que una vez montado, ser capaz de levantar un servicio simple, como un WordPress con una base de datos MariaDB.

Antes de nada, explicaremos qué es Openshift y Kubernetes, ya que de Dockers ya hemos hablado alguna vez. Creo que esta imagen define muy bien lo que es cada cosa, pero vamos a las definiciones más genéricas ya que queremos realizar un manual de instalación:

instalar-openshift-kubernetes-dockers-vmware-workstation-1

¿Qué son Openshift y Kubernetes?

Desarrollado por RedHat con tecnología OpenSource, es una de las soluciones PAAS más importantes del mercado. Utiliza tanto Dockers como Kubernetes, actuando Openshift como integrador.

Kubernetes es la solución de orquestación que utiliza Openshift, un poderoso sistema de administración y desarrollo de clústeres de contenedores.

Si vais a la página oficial podréis curiosar de una forma gratuita con Openshift.

instalar-openshift-kubernetes-dockers-vmware-workstation-2

La evolución de la tecnología de contenedores sobre una infraestructura tradicional o virtual:

instalar-openshift-kubernetes-dockers-vmware-workstation-0

Instalación Openshift en Centos 7 sobre VMware Workstation

Esta vez no voy a utilizar mi laboratorio tradicional, sino que lo voy a crear sobre mi portátil MSI con 48GB de RAM e procesador i7.

A continuación, os coloco los requerimientos mínimos, así que no me queda otra que hacerlo así porque mis servidores no tienen más de 16GB cada uno:

instalar-openshift-kubernetes-dockers-vmware-workstation-3

Generaremos 3 máquinas Centos 7, una para el Master y dos Nodos.

instalar-openshift-kubernetes-dockers-vmware-workstation-5

Pasos previos a realizar en todos los nodos salvo que se indique:

  • Deshabilitamos Selinux
    • vi /etc/selinux/config
    • Dejamos el valor SELINUX en Disabled y Targeted
  • Deshabilitamos Iptables
    • systemctl disable firewalld
    • systemctl stop firewalld
  • Lanzamos la instalación de los paquetes necesarios
    • yum install centos-release-openshift-origin
    • yum install wget git net-tools bind-utils iptables-services bridge-utils bash-completion origin-clients docker pyOpenSSL
  • Modificamos el fichero /etc/hosts (sino tendréis que instalar BIND)
      • Añadimos las IPs y nombres de los hosts. En mi caso:
        • 192.168.28.133 node2 node2.openshift.maquinasvirtuales.eu
        • 192.168.28.132 node1 node1.openshift.maquinasvirtuales.eu
        • 192.168.28.134 master master.openshift.maquinasvirtuales.eu
  • Editamos el fichero en todos los nodos vi /etc/sysconfig/docker:
    • OPTIONS=’ –selinux-enabled –log-driver=json-file –log-opt max-size=50m’
  • Sólo en el master lanzamos esto:
    • yum install -y origin-master origin-pod origin-sdn-ovs origin-dockerregistry
  • Sólo en el master. Editamos el fichero vi /etc/origin/master/master-config.yaml:
      • corsAllowedOrigins:
        – //127\.0\.0\.1(:|$)
        – //192\.168\.28\.134:8443$
        – //localhost(:|$)
        – kubernetes.default
        – kubernetes.default.svc.cluster.local
        – kubernetes
        – openshift.default
        – openshift.default.svc
        – 172.30.0.1
        – openshift.default.svc.cluster.local
        – kubernetes.default.svc
        – openshift
      • Agregamos schedulerConfigFile: “/etc/origin/master/scheduler.json”
      • Agregamos networkPluginName: “redhat/openshift-ovs-multitenant”
      • Agregamos routingConfig: subdomain: openshift.maquinasvirtuales.eu
  • Creamos fichero sólo en el master con vi /etc/origin/master/scheduler.json
    • {
      “apiVersion”: “v1”,
      “kind”: “Policy”,
      “predicates”: [
      {
      “name”: “MatchNodeSelector”
      },
      {
      “name”: “PodFitsResources”
      },
      {
      “name”: “PodFitsPorts”
      },
      {
      “name”: “NoDiskConflict”
      },
      {
      “name”: “NoVolumeZoneConflict”
      },
      {
      “name”: “MaxEBSVolumeCount”
      },
      {
      “name”: “MaxGCEPDVolumeCount”
      },
      {
      “argument”: {
      “serviceAffinity”: {
      “labels”: [
      “region”
      ] }
      },
      “name”: “Region”
      }
      ],
      “priorities”: [
      {
      “name”: “LeastRequestedPriority”,
      “weight”: 1
      },
      {
      “name”: “SelectorSpreadPriority”,
      “weight”: 1
      },
      {
      “argument”: {
      “serviceAntiAffinity”: {
      “label”: “zone”
      }
      },
      “name”: “Zone”,
      “weight”: 2
      }
      ] }
  • Arrancamos el servicio del master:
    • systemctl enable origin-master
    • systemctl start origin-master
  • Generamos en el master el fichero config:
    • mkdir .kube
    • ln -s /etc/origin/master/admin.kubeconfig .kube/config
    • Comprobamos:
      • [root@master ~]# oc login -u system:admin
        Logged into “https://192.168.28.134:8443” as “system:admin” using existing credentials.You have access to the following projects and can switch between them with ‘oc project <projectname>’:* default
        kube-public
        kube-system
        openshift
        openshift-infra
        openshift-nodeUsing project “default”.
  • Instalamos sólo en los nodos:
    • yum install -y origin-node origin-pod origin-sdn-ovs origin-dockerregistry
  • Creamos en el master los directorios y el enlace simbólico:
    • mkdir /etc/origin/node1.openshift.maquinasvirtuales.eu
    • mkdir /etc/origin/node2.openshift.maquinasvirtuales.eu
    • ln -s /etc/origin/ openshift.local.config
    • Lanzamos los comandos:
      • oc adm create-node-config –node-dir=’/etc/origin/node2.openshift.maquinasvirtuales.eu/’ –dns-domain=’openshift.maquinasvirtuales.eu’ –dns-ip=’192.168.28.134′ –hostnames=’node2.openshift.maquinasvirtuales.eu’ –master=’https://192.168.28.134:8443′ –network-plugin=’redhat/openshift-ovs-multitenant’ –node=’node2.openshift.maquinasvirtuales.eu’
        Generating node credentials …
        Created node config for node2.openshift.maquinasvirtuales.eu in /etc/origin/node2.openshift.maquinasvirtuales.eu/
      • oc adm create-node-config –node-dir=’/etc/origin/node1.openshift.maquinasvirtuales.eu/’ –dns-domain=’openshift.maquinasvirtuales.eu’ –dns-ip=’192.168.28.134′ –hostnames=’node1.openshift.maquinasvirtuales.eu’ –master=’https://192.168.28.134:8443′ –network-plugin=’redhat/openshift-ovs-multitenant’ –node=’node1.openshift.maquinasvirtuales.eu’
        Generating node credentials …
        Created node config for node1.openshift.maquinasvirtuales.eu in /etc/origin/node1.openshift.maquinasvirtuales.eu/
    • scp /etc/origin/node1.openshift.maquinasvirtuales.eu/* root@192.168.28.132:/etc/origin/node/
    • scp /etc/origin/node2.openshift.maquinasvirtuales.eu/* root@192.168.28.133:/etc/origin/node/
  • Ahora en los nodos vi /etc/origin/node/node-config.yaml
    • kubeletArguments:
      node-labels:
      – region=primary
      – zone=west
  • Arrancamos servicios en los nodos:
    • systemctl enable docker
    • systemctl start docker
    • systemctl enable origin-node
    • systemctl start origin-node
  • Descargamos en los nodos las imágenes de los dockers que necesitamos:
    • docker pull openshift/origin-sti-builder
    • docker pull openshift/origin-deployer
    • docker pull openshift/origin-docker-registry
    • docker pull openshift/origin-haproxy-router
    • docker pull openshift/origin-pod
  • En el master creamos una cuenta de servicio:
    • oc create serviceaccount registry -n default
    • oadm policy add-scc-to-user privileged system:serviceaccount:default:registry
    • oadm registry –service-account=registry –mount-host=/opt/openshift-registry (ignorar el error)
    • oc create route passthrough –service docker-registry -n default
    • [root@master ~]# oc get svc
      NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
      docker-registry 172.30.135.46 <none> 5000/TCP 1m
      kubernetes 172.30.0.1 <none> 443/TCP,53/UDP,53/TCP 42m
    • [root@master ~]# oc get route
      NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
      docker-registry docker-registry-default.openshift.maquinasvirtuales.eu docker-registry 5000-tcp passthrough None
    • oc adm ca create-server-cert –signer-cert=/etc/origin/master/ca.crt –signer-key=/etc/origin/master/ca.key –signer-serial=/etc/origin/master/ca.serial.txt –hostnames=”172.30.135.46,docker-registry-default.openshift.maquinasvirtuales.eu” –cert=/etc/origin/master/registry.crt –key=/etc/origin/master/registry.key
    • oc secrets new registry-certificates /etc/origin/master/registry.crt /etc/origin/master/registry.key -n default
    • oc secrets add registry registry-certificates -n default
    • oc secrets add registry registry-certificates -n default
    • oc env dc/docker-registry REGISTRY_HTTP_TLS_CERTIFICATE=/etc/secrets/registry.crt REGISTRY_HTTP_TLS_KEY=/etc/secrets/registry.key -n default
    • oc patch dc/docker-registry –api-version=v1 -p ‘{“spec”:{“template”:{“spec”:{“containers”:[{“name”:”registry”,”livenessProbe”:{“httpGet”:{“scheme”:”HTTPS”}}}]}}}}’ -n default
    • oc patch dc/docker-registry –api-version=v1 -p ‘{“spec”:{“template”:{“spec”:{“containers”:[{“name”:”registry”,”readinessProbe”:{“httpGet”:{“scheme”:”HTTPS”}}}]}}}}’ -n default
    • oc volume dc/docker-registry –add –type=secret –secret-name=registry-certificates -m /etc/secrets -n default
    • oc create serviceaccount router -n default
    • oadm policy add-scc-to-user hostnetwork system:serviceaccount:default:router
    • oadm policy add-cluster-role-to-user cluster-reader system:serviceaccount:default:router
    • oadm router router –replicas=1 –service-account=router
  • Bajamos algunos stream y los copiamos en la carpeta, y los cargamos:

instalar-openshift-kubernetes-dockers-vmware-workstation-7

  • Comprobamos en el master que todo funciona:
    • [root@master ~]# oc get po -o wide
      NAME READY STATUS RESTARTS AGE IP NODE
      docker-registry-1-77m5m 1/1 Running 0 13m 10.128.0.2 node1.openshift.maquinasvirtuales.eu
      docker-registry-3-deploy 1/1 Running 0 4m 10.129.0.5 node2.openshift.maquinasvirtuales.eu
      docker-registry-3-g4qk9 0/1 Running 6 4m 10.129.0.6 node2.openshift.maquinasvirtuales.eu
      router-1-8g2nr 1/1 Running 0 2m 192.168.28.132 node1.openshift.maquinasvirtuales.eu
  • Podemos entrar en la gestión web mediante la URL https://IP_MASTER:8443:

instalar-openshift-kubernetes-dockers-vmware-workstation-6

  • Yo me logueo con root del master:

instalar-openshift-kubernetes-dockers-vmware-workstation-8

En otro momento utilizaremos Openshift y daremos unos cuantos comandos.

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

proxmox-diferencia-maquina-virtual-activando-desactivando-el-firewall-2

Proxmox: diferencia máquina virtual activando desactivando el firewall

Proxmox: diferencia máquina virtual activando desactivando el firewall Cuando instalas una máquina virtual en Proxmox, …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

13 + 8 =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu