SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
A Hands-on Explorationof the ACI
Networkingplug-in for Kubernetes
NetDevOpsEvangelist
@hfpreston
Hank Preston, Principal Engineer
Hank Preston
NetDevOpsEnthusiast
Live, eat, breath, and code network and
infrastructureautomationfor Cisco DevNet
Sandbox.
Agenda
• Kubernetes Basics
• ACI + Kubernetes
• Lab Setup
– ConnectingtoyourPod
• ApplicationDeploymentwithACI
– ClusterIsolation
– NamespaceIsolation
– Deployment Isolation
3
DEVWK
Kubernetes Basics
Kubernetes is an open source Container Orchestration
system for automating deployment, scaling and
management of containerized applications.
It was inspired by the Google Borg System and with its
v1.0 release in July 2015, Google donated it to
the Cloud Native Computing Foundation (CNCF).
Generally, Kubernetes has new releases every three
months.
Kubernetes
DEVWK
5
Kubernetes & Docker
• Kubernetes uses Docker to
execute/run the containers
• Kubernetes adds, on top of
Docker, all the intelligence and
features of an orchestrator
DEVWK
6
Kubernetes Architecture
• At a very high level,
Kubernetes has the
following main
components:
– One or more Master Nodes
– One or more Worker Nodes
– Distributed key-value
store, like etcd.
DEVWK
7
Kubernetes Key Objects
Conceptual and just enoughfor this lab…
• A Deployment represents a Micro
Servicedescription
• A Pod is an instantiation of the
Deployment (typically a “containers”)
• AService providesa single entry-point
to a Deployment (think load balancer)
– Cluster IPs are for intra-Kubernetes
connections
– External IPs are for extra-Kubernetes
connections
DEVWK
8
• Namespace is an organizational construct
Namespace
Deployment
Pod Pod
Pod Pod
Service
Cluster IP
External IP
Microservice 1
Deployment
Pod Pod
Pod Pod
Service
Cluster IP
Microservice 2
Kubernetes Annotations
• Meta-data attached to
Kubernetes Objects
• Can be attached toANY object
• Not directly used by
Kubernetes, available for
plugins and other tooling
9
DEVWK
myhero
Name: myhero
Labels: <none>
Annotations:
opflex.cisco.com/endpoint-group
={"tenant": "kubesbx04",
"app-profile":
"kubernetes",
"name": "ns-myhero"}
Status: Active
No resource quota.
No resource limits.
A tale of two standards…
• Customnetwork driver(CNM)
– Proposed by Docker
– Plugin-based
– SupportsOnly Docker
– Containerscon join 1 or more
networks
– Supportsnamespace isolation
– Integrateswith IPAM
– Complex
• Containernetwork interface (CNI)
– Proposed by CoreOS
– Plugin-based
– Multipleruntime (Docker, LXC
etc..)
– Containerscon join 1 or more
networks
– Supportsnamespaceisolation
– Integrateswith IPAM
– Simple
Kubernetes choose…CNI
http://blog.kubernetes.io/2016/01/why-Kubernetes-doesnt-use-libnetwork.html
ACI + Kubernetes
Cisco ACI and Container Integration
Node
OpFlex OVS
ACI and Containers
Unified networking: Containers, VMs, and
bare-metal
Micro-services load balancing integrated in
fabric for HA / performance
Secure multi-tenancy and seamless
integration of Kubernetes network policies
and ACI policies
Visibility: Live statistics in APIC per
container and health metricsNode
OpFlex OVS
APIC
ACI Network Plugin for Kubernetes
NativeSecurityPolicySupport
`
1
2 Deploy/Scale Clusters
Build containers
WEB APP WEB APP DB
Server 1 Server 2
Opflex/OVS
Host level Policy
Enforcement
ACI Fabric
Define BDs, Context and
AP
Fabric Bring Up
2
1
Get VLAN Pools Allocated
For Each EPG3
Full Infrastructure Visibility,
Telemetry4
Annotate policy3
EPG
Developer Network Administrator
Infosec
Define Container
Netw ork Policy
Infrastructure Policy
Enforcement
1
ACIVMM Domain for Kubernetes
ACI Policies
Technical DescriptionNetwork Policy
• Network policies of Kubernetes supported using standard
upstream format but enforced through OpFlex / OVS using
APIC Host Protection Profiles
• Kubernetes app configurations can be moved without
modification to/from ACI and non-ACI environments
• Embedded fabric and virtual switch load balancing
• PBR in fabric for external service load balancing
• OVS used for internal service load balancing
• VMM Domain for Kubernetes
• Stats per namespace, deployment, service, pod
• Physical to container correlation
Node
OpFlex OVS
Node
OpFlex OVS
APIC
ACICNI Plugin Components
• aci-containers-controller
– Monitors Kubernetes application state& ACI configuration and ensures they are in sync.
• aci-containers-host
– Manage node level configurations on each Kubernetes node.
• aci-containers-openvswitch
– Provides theactual networking functions on each node.
NAME READY STATUS RESTARTS AGE IP NODE
aci-containers-controller-3029831268-nj1hq 1/1 Running 0 20h 172.20.0.39 sbx38kube03.localdomain
aci-containers-host-9s4tm 3/3 Running 0 20h 172.20.0.39 sbx38kube03.localdomain
aci-containers-host-bp01p 3/3 Running 0 20h 172.20.0.38 sbx38kube02.localdomain
aci-containers-host-gzvdj 3/3 Running 0 20h 172.20.0.37 sbx38kube01.localdomain
aci-containers-openvswitch-0klgg 1/1 Running 0 20h 172.20.0.37 sbx38kube01.localdomain
aci-containers-openvswitch-ds64p 1/1 Running 0 20h 172.20.0.39 sbx38kube03.localdomain
aci-containers-openvswitch-vcr7c 1/1 Running 0 20h 172.20.0.38 sbx38kube02.localdomain
Mapping Network Policy and EPGs
Cluster Isolation Namespace Isolation Deployment Isolation
Single EPG for entire cluster.
No need for any internal
contracts.
(Default behavior)
Each namespace is mapped to its own
EPG.
Contracts for inter-namespace traffic.
Each deployment mapped to an EPG
Contracts tightly control service traffic
EPG NetworkPolicyKey Map Contract
Hands On Lab
https://github.com/hpreston/ciscolive_workshops/tree/master/aci-k8s
Summing up
What did we talk about?
• Kubernetes Basics
• ACI+Kubernetes
• Lab Setup
– Connecting to your Pod
– Installing K8s andACICNI
• Application Deployment with ACI
– Cluster Isolation
– Namespace Isolation
– Deployment Isolation
DEVWK
19
Workshop Resources
• Docs and Links
– DeployingKubernetes in theEnterprise withCiscoACI- BRKACI-2505
– CiscoACIand Kubernetes IntegrationGuide
– CiscoACIandOpenShift IntegrationGuide
• Learning Labs
– Exploring theACICNIplug-infor Kuberneteshttp://cs.co/lab-acik8s
– DevOps 101 http://cs.co/lab-devops-apps
• DevNet Sandboxes
– ACIand Kubernetes Sandboxhttp://cs.co/sbx-acik8s
• Code Samples
– http://cs.co/code-acik8s
DEVWK
20
DevNetCreate - ACI and Kubernetes Integration

Weitere ähnliche Inhalte

Was ist angesagt?

debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
어형 이
 

Was ist angesagt? (20)

OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
Overview of kubernetes network functions
Overview of kubernetes network functionsOverview of kubernetes network functions
Overview of kubernetes network functions
 
How OpenShift SDN helps to automate
How OpenShift SDN helps to automateHow OpenShift SDN helps to automate
How OpenShift SDN helps to automate
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
 
Deploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatDeploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red Hat
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Cilium + Istio with Gloo Mesh
Cilium + Istio with Gloo MeshCilium + Istio with Gloo Mesh
Cilium + Istio with Gloo Mesh
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
OpenStack High Availability
OpenStack High AvailabilityOpenStack High Availability
OpenStack High Availability
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Technical Overview of Cisco Catalyst 9200 Series Switches
Technical Overview of Cisco Catalyst 9200 Series SwitchesTechnical Overview of Cisco Catalyst 9200 Series Switches
Technical Overview of Cisco Catalyst 9200 Series Switches
 
OVN - Basics and deep dive
OVN - Basics and deep diveOVN - Basics and deep dive
OVN - Basics and deep dive
 
FreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8sFreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8s
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 
Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to Gnocchi
 
Tutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerTutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting router
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Routed Fabrics For Ceph
Routed Fabrics For CephRouted Fabrics For Ceph
Routed Fabrics For Ceph
 

Ähnlich wie DevNetCreate - ACI and Kubernetes Integration

aks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptxaks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptx
WaseemShare
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups
 

Ähnlich wie DevNetCreate - ACI and Kubernetes Integration (20)

DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
 
Kubernetes presentation
Kubernetes presentationKubernetes presentation
Kubernetes presentation
 
Overview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine IntegrationOverview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine Integration
 
Container world hybridnetworking_rev2
Container world hybridnetworking_rev2Container world hybridnetworking_rev2
Container world hybridnetworking_rev2
 
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupMetal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
aks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptxaks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptx
 
Storage 101: Rook and Ceph - Open Infrastructure Denver 2019
Storage 101: Rook and Ceph - Open Infrastructure Denver 2019Storage 101: Rook and Ceph - Open Infrastructure Denver 2019
Storage 101: Rook and Ceph - Open Infrastructure Denver 2019
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
 
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
 
Container Orchestration using kubernetes
Container Orchestration using kubernetesContainer Orchestration using kubernetes
Container Orchestration using kubernetes
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch IIKubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-final
 
Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)
 
Best Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes ServicesBest Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes Services
 

Mehr von Hank Preston

NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO Configurations
Hank Preston
 

Mehr von Hank Preston (6)

NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO Configurations
 
How to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable AgeHow to be a Network Engineer in a Programmable Age
How to be a Network Engineer in a Programmable Age
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?
 
Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018Learning Python with Minecraft and my Dad - PyOhio 2018
Learning Python with Minecraft and my Dad - PyOhio 2018
 
Useful Python Libraries for Network Engineers - PyOhio 2018
Useful Python Libraries for Network Engineers - PyOhio 2018Useful Python Libraries for Network Engineers - PyOhio 2018
Useful Python Libraries for Network Engineers - PyOhio 2018
 
NetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xNetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16x
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

DevNetCreate - ACI and Kubernetes Integration

  • 1. A Hands-on Explorationof the ACI Networkingplug-in for Kubernetes NetDevOpsEvangelist @hfpreston Hank Preston, Principal Engineer
  • 2. Hank Preston NetDevOpsEnthusiast Live, eat, breath, and code network and infrastructureautomationfor Cisco DevNet Sandbox.
  • 3. Agenda • Kubernetes Basics • ACI + Kubernetes • Lab Setup – ConnectingtoyourPod • ApplicationDeploymentwithACI – ClusterIsolation – NamespaceIsolation – Deployment Isolation 3 DEVWK
  • 5. Kubernetes is an open source Container Orchestration system for automating deployment, scaling and management of containerized applications. It was inspired by the Google Borg System and with its v1.0 release in July 2015, Google donated it to the Cloud Native Computing Foundation (CNCF). Generally, Kubernetes has new releases every three months. Kubernetes DEVWK 5
  • 6. Kubernetes & Docker • Kubernetes uses Docker to execute/run the containers • Kubernetes adds, on top of Docker, all the intelligence and features of an orchestrator DEVWK 6
  • 7. Kubernetes Architecture • At a very high level, Kubernetes has the following main components: – One or more Master Nodes – One or more Worker Nodes – Distributed key-value store, like etcd. DEVWK 7
  • 8. Kubernetes Key Objects Conceptual and just enoughfor this lab… • A Deployment represents a Micro Servicedescription • A Pod is an instantiation of the Deployment (typically a “containers”) • AService providesa single entry-point to a Deployment (think load balancer) – Cluster IPs are for intra-Kubernetes connections – External IPs are for extra-Kubernetes connections DEVWK 8 • Namespace is an organizational construct Namespace Deployment Pod Pod Pod Pod Service Cluster IP External IP Microservice 1 Deployment Pod Pod Pod Pod Service Cluster IP Microservice 2
  • 9. Kubernetes Annotations • Meta-data attached to Kubernetes Objects • Can be attached toANY object • Not directly used by Kubernetes, available for plugins and other tooling 9 DEVWK myhero Name: myhero Labels: <none> Annotations: opflex.cisco.com/endpoint-group ={"tenant": "kubesbx04", "app-profile": "kubernetes", "name": "ns-myhero"} Status: Active No resource quota. No resource limits.
  • 10. A tale of two standards… • Customnetwork driver(CNM) – Proposed by Docker – Plugin-based – SupportsOnly Docker – Containerscon join 1 or more networks – Supportsnamespace isolation – Integrateswith IPAM – Complex • Containernetwork interface (CNI) – Proposed by CoreOS – Plugin-based – Multipleruntime (Docker, LXC etc..) – Containerscon join 1 or more networks – Supportsnamespaceisolation – Integrateswith IPAM – Simple Kubernetes choose…CNI http://blog.kubernetes.io/2016/01/why-Kubernetes-doesnt-use-libnetwork.html
  • 12. Cisco ACI and Container Integration Node OpFlex OVS ACI and Containers Unified networking: Containers, VMs, and bare-metal Micro-services load balancing integrated in fabric for HA / performance Secure multi-tenancy and seamless integration of Kubernetes network policies and ACI policies Visibility: Live statistics in APIC per container and health metricsNode OpFlex OVS APIC
  • 13. ACI Network Plugin for Kubernetes NativeSecurityPolicySupport ` 1 2 Deploy/Scale Clusters Build containers WEB APP WEB APP DB Server 1 Server 2 Opflex/OVS Host level Policy Enforcement ACI Fabric Define BDs, Context and AP Fabric Bring Up 2 1 Get VLAN Pools Allocated For Each EPG3 Full Infrastructure Visibility, Telemetry4 Annotate policy3 EPG Developer Network Administrator Infosec Define Container Netw ork Policy Infrastructure Policy Enforcement 1
  • 14. ACIVMM Domain for Kubernetes ACI Policies Technical DescriptionNetwork Policy • Network policies of Kubernetes supported using standard upstream format but enforced through OpFlex / OVS using APIC Host Protection Profiles • Kubernetes app configurations can be moved without modification to/from ACI and non-ACI environments • Embedded fabric and virtual switch load balancing • PBR in fabric for external service load balancing • OVS used for internal service load balancing • VMM Domain for Kubernetes • Stats per namespace, deployment, service, pod • Physical to container correlation Node OpFlex OVS Node OpFlex OVS APIC
  • 15. ACICNI Plugin Components • aci-containers-controller – Monitors Kubernetes application state& ACI configuration and ensures they are in sync. • aci-containers-host – Manage node level configurations on each Kubernetes node. • aci-containers-openvswitch – Provides theactual networking functions on each node. NAME READY STATUS RESTARTS AGE IP NODE aci-containers-controller-3029831268-nj1hq 1/1 Running 0 20h 172.20.0.39 sbx38kube03.localdomain aci-containers-host-9s4tm 3/3 Running 0 20h 172.20.0.39 sbx38kube03.localdomain aci-containers-host-bp01p 3/3 Running 0 20h 172.20.0.38 sbx38kube02.localdomain aci-containers-host-gzvdj 3/3 Running 0 20h 172.20.0.37 sbx38kube01.localdomain aci-containers-openvswitch-0klgg 1/1 Running 0 20h 172.20.0.37 sbx38kube01.localdomain aci-containers-openvswitch-ds64p 1/1 Running 0 20h 172.20.0.39 sbx38kube03.localdomain aci-containers-openvswitch-vcr7c 1/1 Running 0 20h 172.20.0.38 sbx38kube02.localdomain
  • 16. Mapping Network Policy and EPGs Cluster Isolation Namespace Isolation Deployment Isolation Single EPG for entire cluster. No need for any internal contracts. (Default behavior) Each namespace is mapped to its own EPG. Contracts for inter-namespace traffic. Each deployment mapped to an EPG Contracts tightly control service traffic EPG NetworkPolicyKey Map Contract
  • 19. What did we talk about? • Kubernetes Basics • ACI+Kubernetes • Lab Setup – Connecting to your Pod – Installing K8s andACICNI • Application Deployment with ACI – Cluster Isolation – Namespace Isolation – Deployment Isolation DEVWK 19
  • 20. Workshop Resources • Docs and Links – DeployingKubernetes in theEnterprise withCiscoACI- BRKACI-2505 – CiscoACIand Kubernetes IntegrationGuide – CiscoACIandOpenShift IntegrationGuide • Learning Labs – Exploring theACICNIplug-infor Kuberneteshttp://cs.co/lab-acik8s – DevOps 101 http://cs.co/lab-devops-apps • DevNet Sandboxes – ACIand Kubernetes Sandboxhttp://cs.co/sbx-acik8s • Code Samples – http://cs.co/code-acik8s DEVWK 20