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

Compartir por WhatsApp

Inicio - Kubernetes - Agregar Windows Server 2019 a cluster Kubernetes Linux
agregar-windows-server-2019-a-cluster-kubernetes-debian-1

Agregar Windows Server 2019 a cluster Kubernetes Linux

Agregar Windows Server 2019 a cluster Kubernetes Linux

Hace unas entradas que hablamos de como crear un cluster Kubernetes en Debian.

En un entorno multisistema, conviven tanto servidores Linux como Windows indistintamente. Hoy quiero enseñaros como agregar un servidor Windows Server 2019 al clúster Kubernetes como Worker.

agregar-windows-server-2019-a-cluster-kubernetes-debian-5

Dispongo de 3 nodos, 2 Workers Linux y un 1 Master Linux. La idea es agregar otro Worker pero con Windows, que algo que se puede hacer, y que nos va a permitir llevar las cargas de trabajo Windows (por ejemplo, .NET) a ese servidor y las cargas de Linux al resto. ¿Interesante no?:

agregar-windows-server-2019-a-cluster-kubernetes-debian-1

La documentación oficial está en el siguiente enlace:

Yo os la explico:

  • Yo deshabilito el firewall de Windows para que no me de problemas
  • Necesitamos flannel, que en mi caso ya estaba configurado:

agregar-windows-server-2019-a-cluster-kubernetes-debian-2

  • Agregamos a todos los hosts del clúster el hostname para que se resuelvan entre ellos:

agregar-windows-server-2019-a-cluster-kubernetes-debian-6

  • Lanzamos sobre el master el siguiente comando y copiamos el resultado:

sudo curl -fsSL https://raw.githubusercontent.com/sixeyed/k8s-win/master/setup/ub-1804-config.sh | sh

  • Instalamos en nuestro servidor Windows Server 2019 docker como administrador:
      • Start-Process powershell -Verb runAs
    • Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
    • Install-Package -Name docker -ProviderName DockerMsftProvider
    • Restart-Computer -Force
    • Install-Package -Name Docker -ProviderName DockerMsftProvider -Update -Force
    • Start-Service Docker
      • Si lo ejecutáis sobre Hyper-V, deberéis seguir estos pasos adicionales:
        • Get-VM WinContainerHost | Set-VMProcessor -ExposeVirtualizationExtensions $true
        • Install-Module DockerProvider
        • Install-Package Docker -ProviderName DockerProvider -RequiredVersion preview
        • [Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")
        • Restart-Service docker

agregar-windows-server-2019-a-cluster-kubernetes-debian-4

  • Creamos el token para poder agregarlo desde el MASTER:

agregar-windows-server-2019-a-cluster-kubernetes-debian-3

  • Lanzamos el siguiente comando sobre el Windows Server 2019:
    • iwr -outf win-2019-setup.ps1 https://raw.githubusercontent.com/sixeyed/k8s-win/master/setup/win-2019-setup.ps1
    • ./win-2019-setup.ps1
    • La máquina se reiniciará nuevamente
  • Ahora copiamos el resultado del master obtenido en un fichero llamado “config” sin extensión del servidor Windows:
    • mkdir c:\kubernetes
    • notepad.exe
    • C:\k> Rename-Item .\config.txt .\config
    • config:
      • apiVersion: v1
        clusters:
        - cluster:
        certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01ERXdOekl3TWpreU1sb1hEVE13TURFd05ESXdNamt5TWxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTit1CmJxd0lNaVIwZU93K0RyeWhKSmF3NkpWSlZyU2xFOCtYRjJtTGEyRUVrZ3YzRlF1OTNXNStuSVNCYTBQd09DWmkKcHlSaGNSa0pVTENkQWd6TnhhcjVTUnBEYm8yM0N5S2xQVDE3bHF3ZkZQTGVKRmZZcHJWLzBMdERiby8xWEI3RwpwZmFPcXpmbnVEcjFGWmgxZGRiYUhXTElPSll0Snc3WUVZM3JNekIybWxmNml0UzRIMzhiWHF5U3dRd1l0RjF5CkdSQVdHbVhoQ05PU1RrWWhTQnJFNit6MmtOMlQxUTZOVnRCZjNEbEVkbGFxTzRXejVvRUVicTJJU3dYRUh2QVUKK3o4aktROXpqM21qSnlCWkU0NGcyRTVvcEk0UUJsMW1lZXcvMDBtTEpEU2hJUHJqb1YwT0xuakRtbTNuVHZSLwordW5IRnJxdFdEeVdsMTVlTDdNQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDQjZxUU5aejVUb0NTenJBTzVUVHh4VjJFVlQKM1JZWmN2UkdHaGtFem9XRTdlNkdRRGxhTUg4TE11S0g4MTg5c25BK2JpQ0Y3RmYvaEFlSEx0dU9MdS9Oc2ZKRQpIdjNoSXd0aGpzc3BpTFJVSUZmS2piMTU3UlcvV3dSRlUvZ3lCa1FnSE9zNzJVUE5UR0pVc2FQbldaRmZHdHN0Ck1PbHFpREtWenNKTUNKaUtDcFVYYmJVcG5zQ01tNlRBaUtLM1VwV2VWbUl2VW1ETHBZM1lTclQxUTl2eTJ3WnUKYkU4SmxWS3JFTVBTNzhyY0VCbi9DWnorL28vdDhMSXRMRGdBQmdTdDR2NTdCVFQ2bkpNa3c1bTUwczZ1RWhlVgpzWDNGWVZaWHpIWkZ1U1hBbGpselJCRURvTGV6U1JhUlhqNTluSmZHcTFsN0hYV2FRR01TV0JTcllGWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
        server: https://192.168.2.193:6443
        name: kubernetes
        contexts:
        - context:
        cluster: kubernetes
        user: kubernetes-admin
        name: kubernetes-admin@kubernetes
        current-context: kubernetes-admin@kubernetes
        kind: Config
        preferences: {}
        users:
        - name: kubernetes-admin
        user:
        client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM4akNDQWRxZ0F3SUJBZ0lJQ3NuSGlWODFBMlV3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TURBeE1EY3lNREk1TWpKYUZ3MHlNVEF4TURZeU1ESTVNalZhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTBBUjBuc2pRUFhpZ3BBalcKWEZ1RzNMdjFXSElNeHkrSHVFQVZ5TGg5VjY2YlpjK2ZrVWVvYzZqYWl5MWNodjIwMUl4dVRDZlhZNHhiT2c5TwpFSkhJR1JTYk1ldnQ2QWNmbEtEdmF6ZEk2bllMd01mSCtBRUFTczgxOUxmTHJycWdLNk0wZnI4cFQ5WmVHVXYyCmRSNFBRS24rVENxS1RqYnMxU2lzRGdVZkRGaS9NczJscWs3THZ1OXIxdXRmL09tdlljQ1NVVUtsc2hibG9yb2UKVGtLVkwvU2hBQi95dnIwZzJGekt4MzRzejVoYjRRcnpTSHZTdzQrQmY0bzNWSHV2bnZUOSsxN2VuZHZxLzhjdwpBNWdvaGxCYk1yZFBjSklGNlVTblljYzUxcjBjMkxULy8zUGVXMG5YVEM4WTluenBmNXo2QVhKRHVuK0JxTEUyCkhtNy8wUUlEQVFBQm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKOVdxbDRHSW5RQnBBT2lPdG9SVk9tU3lLSitLV0oxUEZTSgpZWGx4dXJsV0w0dmd0RHMxbmZhRGtsVEw1KzNLVnE5K3Q4QlVrbmdDYVVBd21NVWxYN244R1JXSVV0aThUWUVFCnBuMjh5T1VmRFE4MUpGakt5RjMwZ0JyTGJwcERPblc4c0Zjc2grenovb2Q2ZGVna016elM1ZkRSVCt0V3lLVEcKUERlendUOUdQcExFL1A1RmpuUWJIaE1lSUl5Tm9pMHNHZW5kOER0ek1EdHFXK0tNS0JxN2FlQVhXaUN4M2hjRgpIaFU5SjA2V01EOUtKUVh4dndTWWFaWmdsaW1sL09MbGIxQlhjM0grdlE4bHhRaWlvZWtDQXRzMk9wRWxVT3JECnNlTUVWVkVEQ3N4azh6elE0RjZPSWFQR2FHeWdYN1J4YWgveEVUeFAraHR1Nlhud0NaTT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
        client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBMEFSMG5zalFQWGlncEFqV1hGdUczTHYxV0hJTXh5K0h1RUFWeUxoOVY2NmJaYytmCmtVZW9jNmphaXkxY2h2MjAxSXh1VENmWFk0eGJPZzlPRUpISUdSU2JNZXZ0NkFjZmxLRHZhemRJNm5ZTHdNZkgKK0FFQVNzODE5TGZMcnJxZ0s2TTBmcjhwVDlaZUdVdjJkUjRQUUtuK1RDcUtUamJzMVNpc0RnVWZERmkvTXMybApxazdMdnU5cjF1dGYvT212WWNDU1VVS2xzaGJsb3JvZVRrS1ZML1NoQUIveXZyMGcyRnpLeDM0c3o1aGI0UXJ6ClNIdlN3NCtCZjRvM1ZIdXZudlQ5KzE3ZW5kdnEvOGN3QTVnb2hsQmJNcmRQY0pJRjZVU25ZY2M1MXIwYzJMVC8KLzNQZVcwblhUQzhZOW56cGY1ejZBWEpEdW4rQnFMRTJIbTcvMFFJREFRQUJBb0lCQUZubm94UEJqU2NVVExHNAoxQlVFeGV2L0hKSUdjUGxoMUpIUXVObVF5ek9yVnFTUk1ORVVuSHlvblJRTUhmS0dFckxPb3hrdEd3MStheXRUCjFCU2JQVldCcjNYTEYzN3lIVGNhdTMrbVhGQmhoc0RpVjg0YmVLbmNsdUJXMDZTSUtwUFJyTzJlNTFjSE9wSksKWDVITTFTREltQTBKVWM5dU03d0pJUnZLSU5vdmRacHdTT2k0N2JWbWIwcTk1UitXL0Z3eXRYdStYeWN3UkVsawpqcndka3ZYQ0ZoOURwbUpZTEdqV3ZGUjJvK05CSGZKWEFhZmx6ZG5OTmxXeDR2TDJLVk5HUHZ3Q3NmK3dXUGtPCkRURlQydXFLbFd4aTRXVnpib0gyYVIySlE3Q3BtdVNWWXQ5aW5LNG54cTRCTW40bXZnMk8vRU9OeGlJL2lLQ0QKakxzajByRUNnWUVBN2R2YU1sNVc1czlUTGt0SWdYb05wWFluclhxV0dXYlRnUDJTYVBpQ3M1Wi9sQWpwbklSeQpvdWV0RHBxcml0eVJhMWJ5cE5sazV5UXcwSGhvTHIxV2JHVUdoY0ZnNS8wN1NTNWh0am1qcGlvR3hUaithc3pRCk1DNlMzOXlLMzV3NXFMNGtmc1IwbGdGS2xoeEJacmFNQjlOZEdZckR6VjgvNDRDSWozMElzRzBDZ1lFQTMrSDAKcUllODMxL3FKQ3lncC9aMmhtRmFJeUlSNW9xN3Bka1dyZi9FeWNXNzFrUEsrbWxENVg4MnNvQ3ZxNjhrbkFEYQpvL1lCQVhHWGt6MVhNR0I1VncrSGdjYisvQTVJSlFKZElhZ0pCZTV4MTFqbDdtTjlabDU5Y0p5cThGVGY0VEN0CmhZUTZNMUEwY2NsSkhGV0h6ZkMyTDJvT0hTSXg1am1lVjBWaEZuVUNnWUJXS3pWcTFkNXBrMll3K1RqMUh3QmUKbHVWYzVYSUhGY2M5alo5Q3cvU2xscm4xS1Ixb2hGcjdSUzdlZ1kzdnFtUk1ISjJldHRybEdhbE5mTEZSYldvbgpycG1rVHlBS0t5VVZKK1ppRzVON21QSUc5TlRHWUJoenZBdWRhY290byswSGdvcTZHZldhZWpGSkhFZGRMSGlpClJTSVBKTVEyWEhGS3U3KzlLN0RBS1FLQmdCS1FMN01SbmkxL1RIQzNhcExDc3MwdG9VV3NlNE44R1ZjRkN3WmUKWUxqQ05uTHJxQmJmUjR2dDRtRW1ubXBEMldzOS91TDljTlBuMFVPYUlIS1liVGMweUcyUVRIQWwxd0dLa3FKSgp4b1hCWVpzVGVlMHNQcWVRU2lKZU95WTJRMkh1b1ZTaXhCaWhHOWdiY241dzhSTzRVOExXcmxqb0R1OGg4K2tVCmpacEpBb0dCQUo3UUpNL2JXOUhyNnlGaWdoVDlYQjFzTFAxQWVjWUFuNWR4THMwYjFjaWRDRkJ1bUNDM0N6RDAKVEFmaG9rRmpSRzFYcTdRV1RyOW9YcDJqbFpyUVdwSUladkZwcENsS0lpaW1aQnlpU09sTWpwOStvOXV3TDVmLwp3cVc4Q3JmRDNOb1VPVFJHWGhlZFUrM2VHdk94cW4wWjlwS05Kd082MThZZXRodXFmdVFvCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
  • Para terminar lanzamos estos comandos que instalarán los componentes de Kubernetes y nos agregarán el nodo al clúster:
    • iwr -outf win-2019-worker.ps1 https://raw.githubusercontent.com/sixeyed/k8s-win/master/setup/win-2019-worker.ps1
    • Y lanzamos el comando con la IP de nuestro Worker Windows:./win-2019-worker.ps1 -ManagementIP 192.168.2.150

agregar-windows-server-2019-a-cluster-kubernetes-debian-7

  • Es posible que tengáis que lanzar el comando sobre Windows (si va bien no es necesario):
    • cd c:\k
    • .\kubeadm.exe join 192.168.2.193:6443 --token kls9zy.k0e5x0xvcr40wo0w --discovery-token-ca-cert-hash sha256:44706d8ad99b18b8a18e78260b4c42a916271fcc152a30cc3201d2b3b212ed78
  • Y comprobamos que el nodo se ha agregado al clúster correctamente

agregar-windows-server-2019-a-cluster-kubernetes-debian-8

Podéis bajar los ficheros de configuración de:

git clone https://github.com/sixeyed/k8s-win.git

Una vez agregado veremos en otra entrada como trabajar con aplicaciones híbridas.

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

Acerca de Raul Unzue Pulido

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

Compruebe también

linux-guardar-estado-de-procesos-con-criu-1

Linux: Guardar estado de procesos con CRIU

Linux: Guardar estado de procesos con CRIU Si administráis servidores Linux, infraestructuras de Contenedores, ya …

Deja una respuesta

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

cuatro × 4 =

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