Moet ik echt aan die koeberneetes? - ITQ Transform! · SDDC Consultant @ ITQ bmulder@itq.nl Olivier...

Post on 27-Jul-2020

0 views 0 download

transcript

Moet ik echt aan die "koeberneetes"?k8s?

Wij zijn wij?

Bart Mulder

SDDC Consultant @ ITQ

bmulder@itq.nl

Olivier Bootsma

SDDC Consultant @ ITQ

obootsma@itq.nl

@vOrchestrator

Agenda

3

WAT IS KUBERNETES? WAT IS PKS? VEEL VOORKOMENDE UITDAGINGEN

NETWORKING & SECURITY

Wat is Kubernetes?

“Production-Grade Container Orchestrator”

Abstractielaag

IaaS onafhankelijk

Open-source!

4

Wat doet een Container Orchestrator?

Provisioning

Beschikbaarheid

Redundantie

Resource allocatie

Bereikbaarheid

5

Abstractielaag

Applicatie is het doel

Container de drager

Container platform het middel

Container orchestrator de lijm

6

Wat is PKS?

Management en Automation tool!

Management plane voor Kubernetes clusters

VMware netwerk integratie

Lifecycle management (patching en security)

Open Source Kubernetes

Support!

8

Wat voegt PKS toe?• PCF Ops Manager + BOSH

• Kubernetes Cluster Deployment

• Kubernetes Cluster Management

• NSX-T CNI

• Harbor Container Registry

10

Externe invloed De klanten zijn ontevreden over onzedienstverlening na meerdere applicatie verstoringen

Business outcome Positief in de publiciteit blijven

Technology outcome Stabiliteit, schaalbaarheid

Enablers Hoog beschikbaar applicatie platform

Uitdaging 1

Platform

11

Kubernetes ClusterKubernetes Control plane

API Server

Scheduler

Controller manager

etcd

Cloud Controller Manager

Master

Platform

12

Kubernetes ClusterKubernetes Control plane

API Server

Scheduler

Controller manager

etcd

Cloud Controller Manager

Master Kubernetes ClusterKubernetes Control plane

API Server

Scheduler

Controller manager

etcd

Cloud Controller Manager

Master #n

Applicatie

13

Kubernetes ClusterKubernetes Worker node

Kubelet

Service Proxy

Kubernetes ClusterDocker

Pod Pod

Node #n

Applicatie

14

Kubernetes ClusterKubernetes Worker node

Kubelet

Service Proxy

Kubernetes ClusterDocker

App A App B

Node #n Kubernetes ClusterKubernetes Worker node

Kubelet

Service Proxy

Kubernetes ClusterDocker

App B App A

Node #n

Replica

Replica

15

Externe invloed Concurrent levert sneller diensten dan wij leveren / Klanten vragen om nieuwe functionaliteit

Business outcome Klaar zijn voor snelle groei (time 2 market)

Technology outcome Snelheid, vrijheid, schaalbaarheid

Enablers Self-service voor devs / Desired state & Pipelines / rolling updates

Uitdaging 2

Platform en Developer

16

Kubernetes ClusterKubernetes Control plane

API Server

Scheduler

Controller manager

etcd

Cloud Controller Manager

Master

Developer

kubectlApply

Configuration

Platform

17

Kubernetes ClusterKubernetes Control plane

API Server

Scheduler

Controller manager

etcd

Cloud Controller Manager

Master

Kubernetes clusterMarketing Production

Kubernetes ClusterKubernetes Control plane

API Server

Scheduler

Controller manager

etcd

Cloud Controller Manager

Master

Kubernetes clusterMarketing Development

kubectl

Configuration

Developer ADeveloper B

Desired state / Rolling updates

18

Kubernetes ClusterKubernetes Control plane

API Server

Master

Kubernetes ClusterKubernetes Worker node

Kubernetes ClusterDocker

App A App B

Node #nKubernetes Cluster

App A Manifest

GIT Repository

Pipeline Manifest

Apply RunPipeline

Get ManifestRolling Update

Kubernetes Cluster(s)

Overzicht

Kubernetes ClusterKubernetes Worker node

Kubernetes ClusterDocker

App A App B

Node #n

19

Kubernetes ClusterKubernetes Control plane

API Server

Master

• Lifecycle management• Deployment

• Support

Overzicht

20

Kubernetes Cluster(s)

Kubernetes ClusterKubernetes Worker node

Kubernetes ClusterDocker

App A App B

Node #nKubernetes ClusterKubernetes Control plane

API Server

Master

Nieuwe release!

Developer

Security Scan

Nieuwe app container

Apply!

En nu verder

21

Kubernetes ClusterDocker

App A App B

Boze wolk

Ontsluiting?Veiligheid?

?

Leuk die containers, maar hoe intergeer ik die in mijnbestaande netwerk omgeving?

23

Netwerk virtualisatie middels NSX-T

24

FirewallLoad Balancing VisibilitySwitching Routing NAT

NAT

“Every container is a first class citizen of the NSX data-center network”

Netwerk virtualisatie middels NSX-T(2)

25

Netwerk virtualisatie middels NSX-T(3)

26

Kubernetes Container Network

Cloud Foundry Container Network

VM or Bare-metal Network

BGP or Static Routes

Data Center Network

Container network evolutie

27

Port Mapping

vSwitch

Host IP A

Port 8001

Host IP A

Port 8002

Container Network Interface (CNI)

vSwitch

Container Net

vSwitch

Service Mesh (toekomst)

vSwitch

Container Net

EN EN

vSwitch

EN EN

Moeten mijn netwerk en virtualisatie engineers eencompleet nieuwe skillset aanleren?

28

29

NSX / K8s topology

Namespace: foo Namespace: bar

K8 Cluster1

10.24.0.0/24 10.24.1.0/24 10.24.2.0/24

EBGP/Static

Physical Router 1

Physical Router 2

K8s nodes

Hoe borg ik mijn netwerk beschikbaarheid?

30

Hoe voorkom ik een wildgroei network security opties?

31

Firewall opties

32

Container metadate

33

▶ kubectl get pod nsx-demo-rc-c7x65 -o yaml

apiVersion: v1

kind: Pod

metadata:

creationTimestamp: 2018-07-25T12:05:56Z

generateName: nsx-demo-rc-

labels:

app: nsx-demo

name: nsx-demo-rc-c7x65

namespace: nsx-ujo

Metadata binnen Kubernetes zoals Namespace, podnamen, labels worden allemaal gekopieerd naar de NSX Logical Port middels poorttags

Pre-Created Security Groups / Firewall Rules (Admin Rules)

34

Match on Port Tags

Security groepenworden gebruikt in firewall policy’s

Kubernetes Network Policy

35

Naast ondersteuning van vooraf gedefinieerde regels van beheerders, vertaalt NCP ook Kubernetes NetworkPolicy Objects naar NSX-beveiligingsgroepen en Firewall-regels

Vooraf gedefinieerde beheerdersregels kunnen gelijktijdig in NSX worden gebruikt, beheerdersregels worden in secties vóór of na K8's netwerkbeleidsregels geplaatst

apiVersion: networking.k8s.io/v1

kind: NetworkPolicy

metadata:

name: default-deny

spec:

podSelector: {}

policyTypes:

- Ingress

apiVersion: networking.k8s.io/v1

kind: NetworkPolicy

metadata:

name: nsx-demo-policy

spec:

podSelector:

matchLabels:

app: nsx-demo

policyTypes:

- Ingress

ingress:

- from:

- ipBlock:

cidr: 100.64.160.11/32

ports:

- port: 80

protocol: TCP

Hoe troubleshoot ik mijn netwerk nu het gevirtualizeerd is?

36

NSX-T build-in

37

NSX-T build-in(2)

38

vRealize Network Insight

39

Questions?

Thank you!