Code Monkey home page Code Monkey logo

x-k8s's Introduction

X-K8S - ITRI's Kubernetes platform for 5G Edge VNF


This project is now moved to

https://github.com/ITRI-ICL-Peregrine/x-k8s

Please check there for the latest release/version.

X-K8S leverages plugins for the better NFV performance in 5G use senario, like CMK (Cpu Manager for Kubernetes),
NFD (Node Feature Discovery), intel's userspace-cni-network-plugin, etc.
And based on the kubespray v2.8.0 as its deploy tool.

For the detail deploy instruction, check the kubespray's readme.

Spec

Package version
Kubernetes v1.12.3
Docker v18.06.1-ce
CMK v1.3.1
NFD v0.3.0
Multus v3.2
Flannel v0.10.0
Flannel-CNI v0.3.0
SRIOV-CNI v1.0.0
SRIOV-Device Plugin v2.0

Deploy Node Requirement

  1. Python3
  2. pip3

Master/Minion Node Requirement

Package version
Supported Os Ubuntu 18.04 LTS Server

Usage

1. Prepare your Cluster Node.

  1. Disable and delete swap on all of your nodes.
  2. If you want to enable sriov support on your kubernetes cluster.
    a. Create VF on all of your nodes.
    b. Create /etc/pcidp/config.json on each node base on your SRIOV NIC bus address.
    You can use lshw -class network -businfo to check the bus address of root device.
    For example, your config.json should look like...
{
    "resourceList":
    [
        {
            "resourceName": "sriov_net_A",
            "rootDevices": ["02:00.0", "02:00.2"],
            "sriovMode": true,
            "deviceType": "netdevice"
        },
        {
            "resourceName": "sriov_net_B",
            "rootDevices": ["02:00.1", "02:00.3"],
            "sriovMode": true,
            "deviceType": "vfio"
        }
    ]
}

Go check SRIOV manual for more information.

  1. Enable root account and allow root remote login for each node.
  2. Set password free login for root of deploy node on each node
# at root of deploy node
ssh-copy-id <node1_ip>

2. Install x-k8s

On Deploy Node

  1. Install requirement.

    cd x-k8s
    sudo pip3 install -r requirements.txt
    
  2. Edit hosts.ini in /x-k8s/kubespray/inventory/mycluster/hosts.ini

  3. Edit /x-k8s/kubespray/extraVars.yml


## Helm deployment 
helm_enabled: true

## Multus deployment
kube_network_plugin: flannel
kube_network_plugin_multus: true

## SRIOV Support
## Only set to true when you know what you are doing.
sriov_enabled : false 

## Enable basic auth
# kube_basic_auth: true
## User defined api password
# kube_api_pwd: xk8suser

## Change default NodePort range 
# kube_apiserver_node_port_range: "9000-32767"
  1. Deploy

    su -
    ./x-k8s install
    

CLI

X-K8S Installer
Usage:  
    ./x-k8s install [--i=<hosts>]
    ./x-k8s reset [--i=<hosts>]
    ./x-k8s list inventory [--vars]
    ./x-k8s ( -h | --help)
    ./x-k8s ( -v | --version)

Examples:
    ./x-k8s install                     Install x-k8s.
    ./x-k8s install --i kubespray/inventory/custom/hosts.ini
                                        Install x-k8s using custom inventory.
    ./x-k8s reset                       Reset host environment listed in inventory.
    ./x-k8s reset --i kubespray/inventory/custom/hosts.ini
                                        Reset host environment using custom inventory.
    ./x-k8s list inventory              List hosts inventory.
    ./x-k8s list inventory --vars       List hosts inventory with all variables.
    ./x-k8s -h  
    ./x-k8s --help
    ./x-k8s -v
    ./x-k8s --version

Options:
    -h, --help                          Show this message.
    -v, --version                       Show version.
    --vars                              List hosts inventor with all variables.
    --i=<hosts>                         Path to custom inventory hosts.ini

x-k8s's People

Contributors

mjace avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

x-k8s's Issues

Ansible vulnerability.

kubespray/requirements.txt
./requirements.txt

Remediation
Upgrade ansible to version 2.7.8 or later. For example:

ansible>=2.7.8

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.