Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Currently, the chosen operating system(OS) is Ubuntu 16.04 and/or 18.04. The infrastructure orchestration of IEC is based on Kubernetes, which is a production-grade container orchestration with rich running eco-system. The current container network interface(CNI) solution chosen for Kubernetes is project Calico, which is a high performance, scalable, policy enabled and widely used container networking solution with rather easy installation and arm64 support. In the future, Contiv/VPP or OVN-Kubernetes would also be candidates for Kubernetes networking.


Networking and HW prerequisites

TBD

Kubernetes Install for Ubuntu

...

For host setup as Kubernetes master:
Info
titleAttention
--pod-network-cidr is the subnet of the pod network and must not overlap with any of the host networks (see https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network for more details)
--apiserver-advertise-address is the IP on the master node to use for advertising the master’s IP (see https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#initializing-your-master for more details)
--service-cidr can be set up to be used for service VIPs and must not overlap with any of the host networks. The default value is  "10.96.0.0/12". If you change the default, make sure you update the clusterIP address in the yaml file when installing etcd (in the steps below)


Code Block
languagebash
   $ sudo kubeadm config images pull
   $ MGMT_IP=<ip-address>
   $ sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=$MGMT_IP \
   --service-cidr=172.16.1.0/24

...

Code Block
languagebash
titleBash
   set -ex

   kubectl create -f ~/nginx-app.yaml
   kubectl get nodes
   kubectl get services
   kubectl get pods
   kubectl get rc

   r="0"
   while [ $r -ne "2" ]
   do
      r=$(kubectl get pods | grep Running | wc -l)
      sleep 60
   done

   svcip=$(kubectl get services nginx  -o json | grep clusterIP | cut -f4 -d'"')
   sleep 10
   wget http://$svcip
   kubectl#kubectl delete -f ./examples/nginx-app.yaml
   kubectl delete -f ./nginx-app.yaml
   kubectl get rc
   kubectl get pods
   kubectl get services

...

Code Block
languagebash
     $ wget https://storage.googleapis.com/kubernetes-helm/helm-v2.12.3-linux-arm64.tar.gz
     $ tar -xvf helm-v2.12.3-linux-arm64.tar.gz
     $ sudo cp linux-arm64/helm /usr/bin
     $ sudo cp linux-arm64/tiller /usr/bin

...