Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes - Nützliche Automatisierungen

Kubernetes - Nützliche Automatisierungen

Als Softwareunternehmen ist die Bereitstellung von Services eine der Hauptaufgaben.

Technologien wie Kubernetes oder IBM Cloud Private sind mittlerweile Alltag und bringen dem Unternehmen massive Vorteile wenn sie richtig eingesetzt werden.
In dieser Präsentation wird der Einsatz von diesen Technologien am Beispiel der TIMETOACT Group vorgestellt, und wie sie unseren Workflow verbessert haben.

Avatar for Carlo Nölle

Carlo Nölle

November 27, 2019
Tweet

Other Decks in Technology

Transcript

  1. ! Von Git Pipeline zu K8s Deployment ! Auto Devops

    ! DNS und SSL - von alleine ! ExternalDNS ! Certmanager ! Scaling eines unmanaged Clusters vereinfachen ! Kubespray ! GitOps - Flux Worum geht’s?
  2. Pipelines – Wofür und warum ! Build und Deploymentprozesse automaKsieren

    ! Codetests laufen lassen / Linten ! Docker Images bauen sowie in Registry pushen ! Kubernetes Rollout durchführen ! Fehler vermeiden ! Arbeitserleichterung ! Einheitliches Deployment!
  3. Pipelines – Tools für den Job ! Integrationen in viele

    Git Lösungen ! Gitlab ! Bitbucket ! Eigene Services wie CircleCI oder Jenkins ! Extern von eigener Git Lösung, bieten aber meistens Integrationen ! Cloud Services ! AWS CodeBuild ! GCP CloudBuild
  4. Pipelines - CI/CD ! CI = Continuous Integration, CD =

    Continuous Delivery ! Bedeutet übergangsfreie Updates sobald verfügbar ! Pipelines sind abfolgen von Commands ! Dateien des Git Projektes können benutzt werden ! Verschiedene Stage erstellbar: Build, Test, Deploy z.B. ! Typischer use-case: ! Code tests ausführen ! Bei Commit das Docker Image bauen und pushen ! Multi Stage abbildbar (Master, Develop und Stage Branch)
  5. ! AutomaKsches erstellen von DNS Einträgen ! Hört auf Ingress

    Ressourcen oder Kubernetes Services ! Ist mit verschienendsten DNS Providern kompaKbel ! Mehrere unterschiedliche Provider für verschiedene Domains einsetzbar ExternalDNS
  6. ! Ingress Controller muss die öffentliche IP in die Ingress

    Rescource schreiben ! Publish Service (Nginx Ingress) ! Bei komplexeren Netzwerkstruckturen ist auf die richtige IP zu achten (wenn ein Reverse Proxy vor dem Ingress steht zum Beispiel) ! Nur Loadbalancer Services werden unterstützt (kein Nodeport Svc) ! Mehrere Konfigurationen nebeneinander deploybar ExternalDNS – Pitfalls/Chances
  7. ! Automatisches Bereitstellen von TLS/SSL Zertifikaten für Ingress Rescourcen !

    Verschiedene Issuer möglich ! Eigenes Zertifikat hinterlegen ! Self Signed !Automatisches Bereitstellen und Rotieren von Let‘s Encrypt Zertifikaten! cert-manager
  8. ! Trigger auf Erstellung einer Ingress Rescource ! Mehrere Issuer

    konfigurierbar, je nach Domain ! Eigene CRD im Cluster cert-manager
  9. ! Ansible Playbook ! alle benötigten Komponenten eines K8s Clusters

    installiert ! Kubelet, etcd, Calico, CoreDNS, etc.. ! fertiges Scaling Playbook ! Hinzufügen und entfernen von Nodes mit einem Befehl ! Upgrade des Clusters per Playbook ! Auch auf Komponenten Basis Kubespray
  10. ! #GitOps ! Workloads in Git nachhalten und auf den

    Cluster syncen ! Versionierung der Workloads ! Replizierbarkeit eines Clusters auf einen neuen ! Durch Git Möglichkeit von Merge Requests Flux
  11. Flux - Chancen ! Bei Katastrophen Event einfach den gesamten

    Workload gebündelt auf einen neuen Cluster schieben ! Helm ist auch unterstützt, Version 3 ist in Beta ! Es muss nicht jedem der einen Workload deployen möchte Zugang zum Cluster eingerichtet werden ! Nur zum Git Repository