Looking for a way to deploy a stable OpenStack Cloud Environment with Opendaylight at ease? This session is about learning to deploy a Cloud environment with OPNFV Fuel deployer. Fuel is a deployment tool which deploys a wide variety of distributions with third party plugins like OpenDayLight, while abstracting out complexities of the deployment. The intent of this session is to familiarize deployment of OpenStack with OpenDaylight.
About the presenter: Pramod Raghavendra Jayathirth is a software developer in OpenStack and OpenDayLight, working for OTC, SSG at Intel. His Area of Interest is in Cloud Networking and Applications. He has prior experience in Databases and his current focus is on developing features of Cloud Networking Platform. He holds Masters Degree from San Jose State University.
3. ODL COE Overview
Container Orchestration Engine Integration is meant to enable use of
OpenDaylight as the networking stack for Kubernetes
Two types of deployment options
Hybrid
Openstack and Kubernetes Orchestrating workload
Kuryr Integration
BareMetal
Kubernetes Orchestrating workloads
CNI Plugin development for ODL
4. ODL COE Architecture
Host OS
Open vSwitch
Host OS
Open vSwitch
VM
Container
App
Container
App
Container
App
VLAN’s
Orchestrator
OpenDaylight
Kubernetes / Docker
Kuryr
Neutron / Gluon
Container
App
Container
App
Container
App
Container
Mgt
(docker,
kube-
pxy)
Iptables / NAT/FW
Native
5. Kubernetes 101
Master components
API Server – Frontend for K8S control plane
Scheduler
Control-manager
Node Controller
Replication Controller
Endpoints Controller
Service account and token controllers
Etcd – All clustered data is stored
Worker Node
Kubelet - primary node agent and watches pod that has been
assigned to node
Kube-proxy – enables service abstraction by maintaining
network rules on the host
6. Kubernetes components
Abstraction
Service – defines logical set of Pods
Replication Controller – Defines pod count that corresponds to Service
POD – Encompasses the containers the pods that are related/microservice
NFV Service –
Deployment 1
PodA
PodA
PodA
PodB
PodB
NFV Service –
Deployment 2
PodBPodA
PodBPodA
7. Kubernetes Networking - Overview
CNI uses CNI Network plugin to setup
container networking
(If container runtime is docker, CNM will not
be used)
Plugin responsible for creating network
interface to container
Plugin calls IPAM to setup IP address
Plugin needs to implement API for
network creation and deletion
Kubernetes
CNI
Network
Plugin
IPAM
8. Openstack Kuryr 101
• Controller
• Watches K8S API endpoints
to make sure that the
corresponding model is
maintained in Neutron
• Updates K8S resource
endpoints annotations to
keep neutron details
required by CNI driver
• Watcher
• Used by both Controller
and CNI Driver
• Connects to K8S API
• Observe Registered
Endpoints and invoke
call back handlers
• CNI Driver
10. Neutron – K8S construct mapping
Kubernetes Neutron
Namespace Network
Cluster Subnet Subnet Pool
Service Cluster IP Subnet
External Subnet Floating IP
External Network
Router
POD Port
Service Load Balancer