979591af87
This PS makes the init of the KubeADM environment more stable by ensuring all kube-system pods are up before trying to launch tiller. the NFS PVC provider is now made optional but enabled by default, so that Ceph (and other more complex providers) can be supported in future. Finaly the scripts to bring up k8s/helm are refined to not bring in the clients if already present with the correct versions on the host. Change-Id: I4d7ceb6196e8fd5e3350ec99f09fbe6bb5fe01f6 |
||
---|---|---|
.. | ||
assets | ||
Dockerfile | ||
kubeadm-aio-launcher.sh | ||
README.rst |
Kubeadm AIO Container
This container builds a small AIO Kubeadm based Kubernetes deployment for Development and Gating use.
Instructions
OS Specific Host setup:
Ubuntu:
From a freshly provisioned Ubuntu 16.04 LTS host run:
sudo apt-get update -y
sudo apt-get install -y \
\
docker.io \
nfs-common \
git make
OS Independent Host setup:
You should install the kubectl
and helm
binaries:
KUBE_VERSION=v1.6.4
HELM_VERSION=v2.3.0
TMP_DIR=$(mktemp -d)
curl -sSL https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl -o ${TMP_DIR}/kubectl
chmod +x ${TMP_DIR}/kubectl
sudo mv ${TMP_DIR}/kubectl /usr/local/bin/kubectl
curl -sSL https://storage.googleapis.com/kubernetes-helm/helm-${HELM_VERSION}-linux-amd64.tar.gz | tar -zxv --strip-components=1 -C ${TMP_DIR}
sudo mv ${TMP_DIR}/helm /usr/local/bin/helm
rm -rf ${TMP_DIR}
And clone the OpenStack-Helm repo:
git clone https://git.openstack.org/openstack/openstack-helm
Build the AIO environment (optional)
A known good image is published to dockerhub on a fairly regular basis, but if you wish to build your own image, from the root directory of the OpenStack-Helm repo run:
export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.6.4
sudo docker build --pull -t ${KUBEADM_IMAGE} tools/kubeadm-aio
Deploy the AIO environment
To launch the environment then run:
export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.6.4
export KUBE_VERSION=v1.6.4
./tools/kubeadm-aio/kubeadm-aio-launcher.sh
export KUBECONFIG=${HOME}/.kubeadm-aio/admin.conf
One this has run, you should hopefully have a Kubernetes single node environment running, with Helm, Calico, a NFS PVC provisioner and appropriate RBAC rules and node labels to get developing.
If you wish to use this environment at the primary Kubernetes environment on your host you may run the following, but note that this will wipe any previous client configuration you may have.
mkdir -p ${HOME}/.kube
cat ${HOME}/.kubeadm-aio/admin.conf > ${HOME}/.kube/config
If you wish to create dummy network devices for Neutron to manage there is a helper script that can set them up for you:
sudo docker exec kubelet /usr/bin/openstack-helm-aio-network-prep
Logs
You can get the logs from your kubeadm-aio
container by
running:
sudo docker logs -f kubeadm-aio