15
JAGUAR: Open Source Solution for Kubernetes Network GengXingyuanExpert of Software Engineering, ZTE Derek JeeCo-Founder, SDNLAB

JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

JAGUAR:Open Source Solution for Kubernetes Network

GengXingyuan:Expert of Software Engineering, ZTE

Derek Jee:Co-Founder, SDNLAB

Page 2: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Introducing Jaguar

• Project for Kubernetes Network• Launched ( Jul. 23, 2018 )

• First Release ( Oct. 10, 2018 )

• https://gitlab.com/sdnlab/jaguar

• Project of Education

• PBL(Project Based Learning)

• OpenDaylight & kubernetes courses

Page 3: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Developers

Page 4: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Project Based Learning

Requirements

Analysis

Design

Coding

Testing

AcceptanceSoftware Engineering

Process

Personal Ability

Teamwork

Knowledge reserve

Code style

Requirement analysis

Test design

Engineering realization

Release management

Conceptual abstraction

Effective presentation

Project review

Team collaborative Tools

Project Show

Page 5: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Practice Cloud

Practice Cloud

Infrastructure

Networking Practice

Cloud

Networking Security

Practice CloudBig Data Practice Cloud

Artificial Intelligence

Practice Cloud

CMP: Cloud Management Platform

EOP: Education Orchestration Platform

Education Service Chain

Online Training

Training Camp

Professional Training

Qualification

&

Certification

Talent Chip Project

Page 6: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

OpenDaylight & kubernetes Courses

ETCD

API Server OVS

K8S-Master

datastore

K8S

model

IPAM

model

ovsdb

model

OVSDB

SB PluginIPAM VNET

Restful

API

Jaguar CNI plugin

OVS

K8S-Node 1

RESTCONF

OVSDB gRPC

Jaguar CNI plugin

OVS

K8S-Node 2

Page 7: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Getting involved

• Get the Code, Build the Code, Run the Code

• Became a Jaguar Member

• Join the Public Mailing List

• For more details

https://gitlab.com/sdnlab/jaguar/wikis/home

Page 8: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Design Principle

Simplicity

• Simple Design

• Convention over configuration

Flexibility

• Modular(OSGi)

• Event Driven

Interface-Oriented

• Model Driven

• Parnas' Principles - separation of interface and implementation

Page 9: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Simplicity

• Kent Beck’s Four Rules of Simple Design

– Passes its tests

– Minimizes duplication

– Maximizes clarity

– Has fewer elements

• Convention Over Configuration - Jaguar’s Convention

– default bridge name – br0

– default pod’s CIDR – 172.100.0.0/16

– default IPAM policy

Page 10: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Jaguar’s Module

• watcher

• IPAM

• network

• CNIPlugin

Page 11: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Jaguar’s Interface

• K8S model

• IPAM model

Page 12: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Jaguar Network Design

K8S Node

Managment

VXLAN

ConfigurationPOD IP Pool

Address

Assignment

CNINode 1

eth0

10.0.0.2/24

VXLAN

ovs-br

Route

192.168.1.2/24

eth0

POD2POD1

192.168.2.2/24

eth0

CNINode 2

eth0

10.0.0.3/24

VXLAN

ovs-br

Route

192.168.4.2/24

eth0

POD2POD1

192.168.3.2/24

eth0

Page 13: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Introduction to First Release - Sky

• Features – Kubernetes’s fundamental requirements

– all containers can communicate with all other containers without NAT

– all nodes can communicate with all containers (and vice-versa) without

NAT

– the IP that a container sees itself as is the same IP that others see it

as

• Code quantity

– UT,IT,ST

• Demo

– Eat your own dog food.

Page 14: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork

Future Plan

• Jaguar 0.2.0-Earth

– Surport Kubernetes Service

• Jaguar 0.3.0-Wind

– Support Network Policies

Page 15: JAGUAR - Linux Foundation Events · 2019-12-21 · Project Based Learning Requirements Analysis Design Coding Testing Acceptance Software Engineering Process Personal Ability Teamwork