Cómo usar Rancher para crear un clúster K8S en OpenStack

Es innegable que OpenStack sigue siendo un sistema operativo en la nube viable y es utilizado por muchos proveedores de servicios de Internet en todo el mundo. Rancher es la plataforma de administración de Kubernetes más utilizada en la industria y administra múltiples clústeres de Kubernetes en TI empresarial a través de una GUI simple e intuitiva. Rancher también proporciona herramientas integradas para el desarrollo de aplicaciones y potentes funciones de nivel empresarial para la seguridad y el gobierno. Rancher actualmente tiene 300 millones de descargas de imágenes principales. Este artículo usará Rancher para crear un clúster de Kubernetes en Openstack.

La configuración de este artículo se realizó en el entorno de nube pública teutoStack de Bielefeld operado por teuto.net, por lo que el proceso de instalación puede ser ligeramente diferente.

Kubernetes se ha integrado con OpenStack durante algún tiempo, y se ha establecido una buena base. Consta de dos componentes: proveedor de nube OpenStack y controlador de nodo OpenStack. En Rancher, el proveedor de la nube se puede obtener de forma predeterminada, y hay controladores de nodo en Rancher, pero esto no se proporciona de forma predeterminada.

Hay dos formas de construir un clúster Rancher Kubernetes en OpenStack: usando el controlador de nodo OpenStack o mediante la configuración de nodo personalizada ( https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters / nodos personalizados /).

Para facilitar el acceso, todos los ejemplos de configuración en este artículo están disponibles en Github:

https://github.com/chfrank-cgn/Rancher/tree/master/openstack

Inicie el proveedor de nube OpenStack

Para permitir que Kubernetes acceda a la API de OpenStack para crear un equilibrador o volumen de carga, debe habilitar el proveedor de nube de OpenStack. Para hacer esto, seleccione la opción "Personalizada" al crear un clúster para el proveedor de la nube en la GUI de Rancher, y luego inserte la siguiente información en la configuración del clúster (a través de "Editar YAML"): puede reemplazar los valores reales según sea necesario:

rancher_kubernetes_engine_config:
...
  cloud_provider:
    name: "openstack"
    openstackCloudProvider: 
      block_storage: 
        ignore-volume-az: true
        trust-device-path: false
        bs-version: "v2"
      global: 
        auth-url: "https://api.openstack.net:5000/v3" # Keystone Auth URL
        domain-name: "Default" # Identity v3 Domain Name
        tenant-id: "616a8b01b5f94f99acd00a844f8f46c3" # Project ID
        username: "user" # OpenStack Username
        password: "pass" # OpenStack Password
      load_balancer:
        lb-version: "v2"
        subnet-id: "f339e543-a67f-45fa-8157-4a58b0940e0b"
        floating-network-id: "ca27ca05-2870-47b3-ad2f-535d04c9e736"
        create-monitor: false
        manage-security-groups: true
        monitor-max-retries: 0
        use-octavia: true
      metadata: 
        request-timeout: 0
  ignore_docker_version: false
  ...

Con esta información, Kubernetes podrá acceder a la API de OpenStack, crear y eliminar recursos y acceder a los equilibradores de carga de Octavia y volumen de Cinder. Sin esta configuración, el clúster de Kubernetes también puede ejecutarse bien, pero no puede acceder a Cinder u Octavia u otros recursos de OpenStack.

Método 1: crear un clúster con el controlador de nodo OpenStack

El controlador de nodo debe estar habilitado en la configuración Rancher para crear un clúster de Kubernetes en OpenStack utilizando el controlador de nodo incorporado. Luego, debe crear una plantilla de nodo con la siguiente información (los valores reales se pueden reemplazar según sea necesario):


"authUrl": "https://api.openstack.net:5000/v3",
"availabilityZone": "Zone1",
"domainName": "Default",
"flavorName": "standard.2.1905",
"floatingipPool": "extern",
"imageName": "ubuntu-18.04-bionic-amd64",
"keypairName": "rancher",
"netName": "intern",
"sshPort": "22",
"sshUser": "ubuntu",
"tenantId": "616a8b01b5f94f99acd00a844f8f46c3",
"username": "user"

Después de eso, como todos los demás proveedores de la nube, la creación de clústeres es muy simple.

Opciones de seguridad

Las siguientes reglas de firewall deben definirse entre los inquilinos Rancher y OpenStack para habilitar la configuración automática del clúster:

  • SSH bidireccional, http y https

  • 2376 (acoplador) del ranchero al nodo inquilino

  • 2376, 2379, 2380, 6443 y 10250 entre nodos de inquilinos

Método 2: use un nodo personalizado para crear un clúster

Puede construir un clúster a partir de una instancia creada por separado con la ayuda de un script de inicio para instalar y habilitar Docker (en Ubuntu 18.04 TLS):


#!/bin/sh
apt-get update
apt-get -y install apt-transport-https jq software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update
apt-get -y install docker-ce=18.06.3~ce~3-0~ubuntu
usermod -G docker -a ubuntu
exit 0

Asuntos de seguridad

Las siguientes reglas de firewall deben definirse para los inquilinos de OpenStack para permitir la creación de clústeres a partir de nodos existentes:

  • SSH desde la estación de trabajo

  • A Rancher http y https

Acceda al almacenamiento de bloques de Cinder

Para acceder al almacenamiento de bloques de Cinder, se deben aplicar las siguientes definiciones de clase de almacenamiento:


apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cinder
provisioner: kubernetes.io/cinder
reclaimPolicy: Delete
parameters:
  availability: nova

No se requieren más operaciones para habilitar el equilibrador de carga OpenStack.

Solucionar problemas

Habrá algunos errores durante la configuración inicial, lo que requiere prueba y error continuos. Rancher en sí es una buena fuente de información de depuración. Sus registros se generan en forma de archivos estándar. Aprovechar esta pista será de gran ayuda para la depuración, especialmente durante el proceso de creación de nodos.

Supongo que te gusta

Origin www.cnblogs.com/rancherlabs/p/12671494.html
Recomendado
Clasificación