ITRI-ICL-Peregrine / X K8s

Licence: apache-2.0
ITRI's Kubernetes platform for 5G Edge VNF.

Projects that are alternatives of or similar to X K8s

Terraform Kubernetes
Terraform module for provisioning AWS resources to run a Kubernetes cluster
Stars: ✭ 61 (+205%)
Mutual labels:  hcl, kubernetes-cluster
K8s Digitalocean Terraform
Deploy latest Kubernetes cluster on DigitalOcean using Terraform
Stars: ✭ 33 (+65%)
Mutual labels:  hcl, kubernetes-cluster
Kubenow
Deploy Kubernetes. Now!
Stars: ✭ 285 (+1325%)
Mutual labels:  hcl, kubernetes-cluster
Karch
A Terraform module to create and maintain Kubernetes clusters on AWS easily, relying entirely on kops
Stars: ✭ 38 (+90%)
Mutual labels:  hcl, kubernetes-cluster
Terraform Aws Kubernetes
Terraform module for Kubernetes setup on AWS
Stars: ✭ 159 (+695%)
Mutual labels:  hcl, kubernetes-cluster
Kube Vip
Kubernetes Control Plane Virtual IP and Load-Balancer
Stars: ✭ 262 (+1210%)
Mutual labels:  edge, kubernetes-cluster
K3sup
bootstrap Kubernetes with k3s over SSH < 1 min 🚀
Stars: ✭ 4,012 (+19960%)
Mutual labels:  edge, kubernetes-cluster
Terraform Dcos
DC/OS Terraform Installation and Upgrading Scripts
Stars: ✭ 26 (+30%)
Mutual labels:  hcl
Terra Aws Core Kube
Terraform configuration to bootstrap a Kubernetes Cluster on top of CoreOS using AWS-EC2 instances
Stars: ✭ 10 (-50%)
Mutual labels:  hcl
Tezos On Gke
A secure, turn-key public Tezos baking service on Kubernetes
Stars: ✭ 26 (+30%)
Mutual labels:  hcl
Terraform Guides
Example usage of HashiCorp Terraform
Stars: ✭ 931 (+4555%)
Mutual labels:  hcl
Aws Terraform Playground
terraform examples on AWS
Stars: ✭ 26 (+30%)
Mutual labels:  hcl
Vscode Hcl
Visual Studio Code support for the HashiCorp Configuration Language
Stars: ✭ 10 (-50%)
Mutual labels:  hcl
Terraform Modules
Reusable terraform modules
Stars: ✭ 26 (+30%)
Mutual labels:  hcl
K8s Training
Stars: ✭ 13 (-35%)
Mutual labels:  hcl
Confluent Hybrid Cloud Workshop
Confluent Hybrid Cloud Workshop
Stars: ✭ 26 (+30%)
Mutual labels:  hcl
Terraform Vpc
Modular Terraform repository to provision a multi-tier VPC in AWS
Stars: ✭ 13 (-35%)
Mutual labels:  hcl
Terraform Aws Locust
Deploy a locust.io stress test cluster on AWS based on CoreOS/Docker
Stars: ✭ 11 (-45%)
Mutual labels:  hcl
Terraform Aws Config Module
A Terraform Module for Controlling AWS Config (via CloudFormation)
Stars: ✭ 9 (-55%)
Mutual labels:  hcl
Go Colorful
A library for playing with colors in go (golang).
Stars: ✭ 845 (+4125%)
Mutual labels:  hcl

X-K8S - Deploy a Kubernetes Cluster for 5G NFV Cloud

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.12.1 as its deploy tool.

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

Spec

Package version
Kubernetes v1.16.7
Docker v18.06.1-ce
CMK v1.4
NFD v0.4.0
Multus v3.4
Flannel v0.11.0
Flannel-CNI v0.3.0
SRIOV-CNI v2.2
SRIOV-Device Plugin v3.1
Prometheus Operator v0.37.0
Grafana v6.6.2
Elastic Search v6.3.2
Kibana v6.3.2
fluentd v2.2.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_pool_a",
          "selectors": {
            "vendors": ["8086"],
            "pfNames" : ["enp4s0f0"]
          }
        },
        {
          "resourceName": "sriov_pool_b",
          "selectors": {
            "vendors": ["8086"],
            "pfNames" : ["enp129s0f0"]
          }
        }
      ]
    }
    

    Go check SRIOV manual for more information.

  3. Enable root account and allow root remote login for each node.

  4. 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 to turn on the feature you want.

    ## Helm deployment
    helm_enabled: true
    
    ## Multus deployment
    kube_network_plugin: flannel
    kube_network_plugin_multus: true
    
    ## SRIOV Support
    sriov_enabled : true
    
    ## Monitor install Prometheus and Grafana
    monitor_enabled: false
    grafana_password: "admin"
    
    ## 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"
    
    ## Install Elasticsearch, Fluentd, Kibana
    install_efk : false
    
  4. Deploy

    su -
    ./x-k8s install
    

CLI

X-K8S Installer
Usage:  
    ./x-k8s install [--i=<hosts>]
    ./x-k8s reset [--i=<hosts>]
    ./x-k8s purge [--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.yaml
                                        Install x-k8s using custom inventory.
    ./x-k8s reset                       Reset host environment listed in inventory.
    ./x-k8s reset --i kubespray/inventory/custom/hosts.yaml
                                        Reset host environment using custom inventory.
    ./x-k8s purge                       Purge x-k8s cluseter.
    ./x-k8s purge --i kubespray/inventory/custom/hosts.yaml
                                        Purge cluster 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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].