ATIX AG
  • Leistungen
    • Consulting
      • Linux Platform Operations​
      • Infrastructure Automation​
      • Container Plattformen und Cloud​
      • DevOps Prozesse, Tooling und Kultur​
      • Cloud Native Software Entwicklung​
    • Produkte
      • orcharhino
        • Über orcharhino
        • orcharhino Support
        • orcharhino Betrieb
      • Hangar
        • Über Hangar
        • Kostenlos starten mit Hangar
        • Hangar Dokumentation
        • Hangar Roadmap
        • Hangar Changelog
        • Hangar Community
    • Technologien
      • Ansible
      • AWX und Ansible Automation Platform
      • Docker
      • Foreman
      • GitLab
      • Istio
      • Kubernetes
      • Linux-Distributionen
      • OpenShift
      • Puppet
      • OpenVox
      • Rancher
      • Rundeck
      • Saltstack
      • SUSE Manager
      • Terraform
  • Schulungen
    • Ansible-Schulungen
    • AWX-Schulung
    • Docker & Container-Schulung
    • Git-Schulung
    • Go-Schulung (Golang)
    • Istio-Schulung
    • Kubernetes-Schulung
    • OpenShift-Schulung
    • orcharhino-Schulung
    • Puppet-Schulungen
    • Terraform-Schulung
  • Events
    • Webinare
  • Blog
  • Unternehmen
    • Über uns
    • Referenzen
    • Unternehmenswerte
    • Soziales Engagement
    • Newsroom
    • Newsletter
    • Kontakt
  • Karriere
  • English
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
Hangar Kubernetes

Hangar Dokumentation

Inhaltsverzeichnis

  • Hangar Dokumentation
    • Quick Start
      • Installationsvoraussetzung
      • Vorbereitung der Hangar Images
      • Helm Installation
      • Alternative Installation ohne Authentifizierung
    • Configuration
      • IAM Nutzerverwaltung – Keycloak
      • Hangar – Nutzerrechte
      • Hangar – Infrastruktur Cluster
      • Übersicht Infra Cluster
      • Anbinden Worker Nodes
    • Managed Hangar Cluster
      • Cluster Management

Quick Start

Installation von Hangar über das Helm Chart.

Installationsvoraussetzung

  • K8s-Cluster
    • DNS
    • Cert-manager
      • Issuer to create valid TLS-Cerst
    • Ingress
    • (optional) CSI-Storage
  • Image Registry
  • optional:
    • IAM Provider
      • ein OIDC Provider mit einem OIDC Hangar Client
      • OIDC Token müssen profile, email, roles scopes unterstützen

Vorbereitung der Hangar Images

Im Tarball enthalten sind die notwendigen Hangar Images. Diese müssen vorab in eine Image-Registry importiert werden.

docker image import  file - [REPOSITORY[:TAG]]
docker image import hangar-images/backend-config-service.tar   registry:5000/hangar/backend/config-service:10.25
docker image import hangar-images/backend-dashboard-service.tar registry:5000/hangar/backend/dashboard-service:10.25
docker image import hangar-images/backend-management-service.tar registry:5000/hangar/backend/management-service:10.25
docker image import hangar-images/backend-node-service.tar registry:5000/hangar/backend/node-service:10.25
docker image import hangar-images/backend-oidc-provider.tar registry:5000/hangar/backend/oidc-provider:10.25
docker image import hangar-images/frontend-ui.tar registry:5000/hangar/frontend/ui:10.25

Helm Installation

Die Hangar Installation erfolge via Helm Chart.

helm install hangar hangar-0.0.0-10-25.tgz -f hangar-values.yaml

In den Values sind folgende Werte zu setzen um eine erfolgreiche Installation mit Authentifizierung durchzuführen.

Die unten aufgeführte Values File installiert einen Keycloak als IAM Provider mit.

Wichtig:
Die Keycloak Einstellungen sind nicht produktionsreif und dienen nur dazu einen IAM Provider mitzuliefen.
Am besten wird Hangar an einen bestehenden IAM Provider angebunden.

global: 
  hangarHost: "<URL-der Hangar Installtion>"
hangarSuperAdmins:
- hangar-super-admin@example.com # Mail Adressen der IAM Nutzer die SuperAdmin-Rechte in Hangar erhalten sollen

# Secrets
secrets:
  # base64 data of a client id
  oAuthClientID: ""
  # base64 data of client secret
  oAuthClientSecret: ""
ingress:
  className: "nginx"
  annotations:
    cert-manager.io/issuer: "<Issuer for TLS Certs>" # predefined Cert-Issuer
keycloak:
  enabled: true
  database:
    # place a secret in keycloak namespace with usernameKey and passwordKey data and set values.
    # this user will be used as keycloak database user
    existingSecret: keycloak-postgresql
  configCli:
    enabled: true
    # this will create a keycloak client for hangar with example users
    # Use only for testing
    createHangarClientConfig: 
      enabled: true
  deployTheme: false
  ingress:
    enabled: true
    ingressClassName: nginx
    annotations: 
      cert-manager.io/issuer: "<Issuer for TLS Certs>" # predefined Cert-Issuer
      # nginx.ingress.kubernetes.io/proxy-buffer-size: 128k
      # cert-manager.io/cluster-issuer: letsencrypt-prod
    # set host for keycloak if it is different from hangar uri
    # host: <keyclaok host uri if different from hangar host>
    httpRelativePath: "/_keycloak/"
    tls: true

Zusätzlich muss noch die Image Registry ergänzt werden:

frontend:
  image: 
    repository: registry:5000/hangar/frontend/ui
    tag: "10.25"
oidcProvider:
    image:
    repository: registry:5000/hangar/backend/oidc-provider
    tag: "10.25"
dashboardService:
  image:
    repository: registry:5000/hangar/backend/dashboard-service
    tag: "10.25"
managementService:
  image:
    repository: registry:5000/hangar/backend/management-service
    tag: "10.25"
nodeService:
  image:
    repository: registry:5000/hangar/backend/node-service
    tag: "10.25"
configService:
  image:
    repository: registry:5000/hangar/backend/config-service
    tag: "10.25"

Alternative Installation ohne Authentifizierung

Ohne Keycloak und IAM Provider kann Hangar durch setzen des disabledAuth Flags installiert werden.

Wichtig:
Achtung damit erfolgt keine Authentifizierung zur Hangar UI und diese ist offen zugänglich.

helm install hangar hangar-0.0.0-10-25.tgz --set global.hangarHost="<URL-der Hangar Installtion>" --set disableAuth=true

Hangar UI lässt sich über <URL-der Hangar Installtion> aufrufen.

Configuration

IAM Nutzerverwaltung – Keycloak

Nutzer lassen sich über Keycloak anlegen

https:///<Hangar_Install_URL>/_keycloak/admin/master/console/#/hangar/users

Über das default im Helm-Chart werden bereits folgende Nutzer ausgerollt.

hangar-super-admin@example.com : change-super-admin-password
hangar-cluster-admin@example.com : change-cluster-admin-password
hangar-cluster-user@example.com : change-cluster-user-password

Wichtig:
Passwörter in der Keycloak UI für diese Nutzer nach der Installation ändern!

Hangar – Nutzerrechte

Hangar Super Admin

Die Hangar SuperAdmins werden über das Helm Chart konfiguriert unter dem Key wird ein Array mit Super Admin Nutzern aufgelistet

hangarSuperAdmins:
- hangar-super-admin@example.com

Super Admins sind berechtig neue Cluster zu erstellen und den Infrastruktur Cluster zu konfigurieren.

Hangar Cluster Admin

Hangar Cluster Admins werden über die Cluster Einstellungen konfiguriert und können ihren jeweiligen Cluster konfigurieren und Compute Ressourcen hinzufügen.

Hangar Cluster User

Hangar Cluster Users werden ebenfalls über die Cluster Einstellungen konfiguriert. User können ihre jeweiligen Cluster sehen und eine Kubeconfig für den jeweiligen Cluster laden.

Hangar Cluster Nutzer beim anlegen eines Managed Clusters
Cluster Nutzer beim anlegen eines Managed Clusters

Hangar – Infrastruktur Cluster

Hangar startet nach der Installation einen Infrastruktur Cluster, dieser verwaltet und bietet den Managed Clustern virtuelle Compute Ressourcen die einfach hinzugefügt werden können.

Dazu werden dem Infrastruktur Cluster Kubernetes Worker Nodes angebunden auf denen die virtuellen Compute Ressourcen für die Managed Cluster bereit gestellt werden.

Übersicht Infra Cluster

Als Hangar Super Admin kann man die Überblicksseite des InfrastrukturClusters einsehen und sehen an welchen Managed Cluster diese Virtuellen Nodes angebunden sind.

Infrastruktur Cluster Überblick

Anbinden Worker Nodes

Um virtuelle compute Ressourcen bereit stellen zu können müssen an den Infrastruktur Cluster Kubernetes Worker Nodes angebunden werden, dazu sollte das im Tarball mitgelieferte Ansible Playbook genutzt werden.

Vorab müssen aus der Hangar Installation Informationen zu dem Infrastruktur Cluster abgerufen werden.

kubectl describe namespace --selector=hangar.atix.de/is-infrastructure=true 

Name:         default-infrastructure-cluster-btqc6
Labels:       app.kubernetes.io/managed-by=hangar
              app.kubernetes.io/part-of=k8s-control-plane
              hangar.atix.de/is-infrastructure=true
              hangar.atix.de/k8s-version=1.32.9
              kubernetes.io/metadata.name=default-infrastructure-cluster-btqc6
Annotations:  hangar.atix.de/control-plane-node-port: 31676
              hangar.atix.de/konnectivity-proxy-node-port: 32140
Status:       Active

No resource quota.

No LimitRange resource.

Diese müssen in das Ansible Inventory übertragen werden.

all:
  vars:
    hangar_subcluster_namespace: "default-infrastructure-cluster-btqc6" #  kubernetes.io/metadata.name aus dem Namespace
    kubernetes_worker_pod_cidr: "10.32.0.0/17"
    kubernetes_worker_version: "1.32.9"
    kubernetes_api_server_endpoint: "https://<Hangar Installations URL>:31676" # hangar.atix.de/control-plane-node-port aus dem Namespace
    kubernetes_worker_konnectivity_server_ip: "<Hangar Installations URL>" 
    kubernetes_worker_konnectivity_server_port: "32140" # hangar.atix.de/konnectivity-proxy-node-port aus dem Namespace
  hosts: 
    <definition der hinzuzufügenden Kubernetes Worker Nodes>

Unter dem hosts: Key werden die Worker Nodes gelistet

all:
  vars: 
    <siehe oben>
  hosts:
    node-1:
      ansible_host: <IP der node>
      ansible_user: root
      kubernetes_worker_node_name: "node-1" # name im Infrastruktur Cluster
      kubernetes_worker_local_pod_cidr: "10.32.0.0/24" # Pod CDIR für diese Node
    node-2:
      ansible_host: <IP der node>
      ansible_user: root
      kubernetes_worker_node_name: "node-2" # name im Infrastruktur Cluster
      kubernetes_worker_local_pod_cidr: "10.32.1.0/24" # Pod CDIR für diese Node

Es können beliebig viele Nodes gelistet und angebunden werden. Die Nodenamen können freigewählt werden es empfiehlt sich aber eine fortlaufende Nummerierung. Bei der Pod CIDR muss das dritte Oktett hochgezählt werden und jede Workernode benötigt ein eigenes und sich nicht überschneidendes Netz.

Durch das ausführen des Playbooks werden die Nodes dem Infracluster hinzugefügt.
Wichtig ist dabei das kubectl vorhanden ist und die aktuelle kubeconfig auf den Cluster zeigt in dem Hangar installiert wurde.

export KUBECONFIG=~/.kube/config    
kubectl get pods -n hangar                                               
NAME                                         READY   STATUS      RESTARTS   
hangar-config-service-68b8878-tvtgk          1/1     Running     0          
hangar-dashboard-service-77b9dfc5d6-4jdv4    1/1     Running     0          
hangar-documentation-6d6d559b6b-jk2g8        1/1     Running     0          
hangar-frontend-5f66844984-brpnp             1/1     Running     0          
hangar-keycloak-7466b8895d-lf742             1/1     Running     0          
hangar-keycloak-postgres-6cb5879cb5-2vncc    1/1     Running     0          
hangar-management-service-7ccb94bdbb-jlcs2   1/1     Running     0          
hangar-node-service-76b7c664d8-qwd4t         1/1     Running     0          
hangar-oidc-provider-6fbd48cdc9-8f782        1/1     Running     0          
robots-deployment-6cf9654ddb-sssfn           1/1     Running     0          

Dann kann das Playbook wie folgt aus dem Playbook Directory gestartet werden.

ansible-playbook -i inventory.yaml playbook.yaml 

Managed Hangar Cluster

Cluster Management

Cluster Management als Hangar-Superadmin.

Cluster erstellen

Zum erstellen eines Managed Cluster reicht ein klick auf den “New Cluster” Button. In dem Modal einen Namen für den Cluster vergeben.

Create Managed Cluster
New Cluster Details

Nach dem erstellen des Clusters sieht man in der Cluster Overview alle Control-Plane Komponenten und der Status.

Cluster Details

Cluster Config

Berechtigungen für die Managed Clusters werden über das Menü Manage Clusters verwaltet. Dort lassen sich auch die Kubernetes Version und Compute Nodes für die Cluster konfigurieren.

Manage Cluster Page

Cluster User Management

Durch einen klick auf den den Edit-Stift lassen sich Admins und User dem Cluster hinzufügen.

Add User to Managed Cluster

User können in der Hangar-UI Cluster sehen. Admins können zusätzlich Cluster verwalten. Weitere Nutzer hinzufügen oder entfernen sowie Compute Nodes verwalten.

Cluster Worker Nodes anbinden

Um Workloads ausführen und Pods starten zu können müssen Worker Nodes an den Managed Cluster angebunden werden.
Dazu auf der “Manage Cluster” Scale Nodes anklicken und die Anzahl der gewünschten Nodes wählen.
Hangar wird die gewählten Virtuellen Nodes dem Cluster joinen – vorausgesetzt im gewählten InfrastrukturCluster sind genug Compute Ressourcen vorhanden.

Compute Nodes verwalten

Alternative können auch eigene Worker Nodes mit den Kubernetes üblichen Tools angebunden werden.

Wichtige Links

  • Hangar – Kubernetes-Cluster-Management
    • Kostenlos starten mit Hangar
    • Hangar Dokumentation
    • Webinar: Kubernetes neu gedacht
    • Hangar Roadmap
    • Hangar Changelog
    • Hangar Community
ISO 27001 Zertifizierung ISO 27001 Zertifikat herunterladen
ISO 9001 Zertifizierung ISO 9001 Zertifikat herunterladen
Newsletter
Nichts mehr verpassen. Melden Sie sich für den ATIX Newsletter an!
Jetzt anmelden
Blog
  • Blog Startseite
  • ATIX Insights
  • Cloud Native
  • Container Plattformen und Cloud
  • DevOps
  • Hangar
  • Infrastructure Automation
  • Linux Platform Operations
  • orcharhino
Datenschutz & Impressum

Datenschutz

Impressum

AGB

B2B
Twitter     Facebook    LinkedIn    Youtube     mastodon=

© Copyright – ATIX AG

Nach oben scrollen Nach oben scrollen Nach oben scrollen