8000 GitHub - petrkotas/kubevirtci: Contains cluster definitions and client tools to quickly spin up and destroy ephemeral and scalable k8s and ocp clusters for testing
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Contains cluster definitions and client tools to quickly spin up and destroy ephemeral and scalable k8s and ocp clusters for testing

License

Notifications You must be signed in to change notification settings

petrkotas/kubevirtci

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k8s clusters in qemu in docker

  • base contains the base image with some scripts, qemu and dnsmasq
  • centos7 adds a vagrant centos7 box to the image
  • cli contains a tool for provisioning, running and managing the containerized clusters
  • k8s-1.9.3 k8s-1.9.3 cluster based on the centos7 image, provisioned with kubeadm
  • k8s-1.10.3 k8s-1.10.3 cluster based on the centos7 image, provisioned with kubeadm
  • k8s-1.10.4 k8s-1.10.4 cluster based on the centos7 image, provisioned with kubeadm
  • k8s-1.11.0 k8s-1.11.0 cluster based on the centos7 image, provisioned with kubeadm
  • k8s-multus-1.11.0:: k8s-1.11.0 cluster based on the centos7 image and uses multus CNI, provisioned with kubeadm
  • os-3.9 os-3.9 cluster based on the centos7 image, provisioned with openshift-ansible
  • os-3.9-crio os-3.9 cluster with CRI-O support based on the centos7 image, provisioned with openshift-ansible
  • os-3.10.0 os-3.10.0 cluster based on the centos7 image, provisioned with openshift-ansible

Versions to use

  • kubevirtci/cli: sha256:1dd015dea4f12e6dcb8e31be3eeb677fed96f290ef4a4892a33c43d666053536
  • kubevirtci/gocli: sha256:34466dacd5710a6900a4d868eac6cef46e69d0f0afebb49e59e6bea0e81f5019 8000
  • kubevirtci/base: sha256:67b84e2acefdcd7197989cbab1f2d1324eb87b5a77bd31d52d3000d13eee750c
  • kubevirtci/centos:1804_02: sha256:5539557ff8cbe96a3ef05e5705f82b58c38e1ff1cdf09f55a47aa5eb542f4ce8
  • kubevirtci/os-3.9.0:: sha256:234b3ae5c335c9fa32fa3bc01d5833f8f4d45420d82a8f8b12adc02687eb88b1
  • kubevirtci/os-3.9.0-crio:: sha256:107d03dad4da6957e28774b121a45e177f31d7b4ad43c6eab7b24d467e59e213
  • kubevirtci/os-3.10.0:: sha256:8afb62b317d3a96d014f8d67254d6104a915450ed81226cf6fec2a12cfff7973
  • kubevirtci/k8s-1.9.3:: sha256:f6ffb23261fb8aa15ed45b8d17e1299e284ea75e1d2814ee6b4ec24ecea6f24b
  • kubevirtci/k8s-1.10.3:: sha256:d6290260e7e6b84419984f12719cf592ccbe327373b8df76aa0481f8ec01d357
  • kubevirtci/k8s-1.10.4:: sha256:486064eddea289b17e150e6600fefc89dab9164d5cba07153c02888a35fed4f1
  • kubevirtci/k8s-1.11.0:: sha256:2e8b82787e4c65bc7cf25ddd7bea30d9e203009c620cf637291b87ed617edd79
  • kubevirtci/k8s-multus-1.11.0:: sha256:ec8bbe50e588708c625487086f6eac9082f4ee490ee5f481e475f699e34aa55a

Using gocli

gocli is a tiny go binary which helps managing the containerized clusters. It ca be used from a docker images, so no need to install it. You can for instance use a bash alias:

alias gocli="docker run --net=host --privileged --rm -it -v /var/run/docker.sock:/var/run/docker.sock kubevirtci/gocli:latest"
gocli help

Quickstart Kubernetes

Start the cluster

Start a k8s cluster which contains of one master and two nodes:

gocli run --random-ports --nodes 3 --background kubevirtci/k8s-1.10.3

Connect to the cluster

Find out the connection details of the cluster:

$ gocli ports k8s
33396
$ gocli scp /etc/kubernetes/admin.conf - > ./kubeconfig
$ kubectl --kubeconfig ./kubeconfig --insecure-skip-tls-verify --server https://localhost:33396 get pods -n kube-system
NAME                             READY     STATUS    RESTARTS   AGE
etcd-node01                      1/1       Running   0          14m
kube-apiserver-node01            1/1       Running   0          13m
kube-controller-manager-node01   1/1       Running   0          14m
kube-dns-6f4fd4bdf-mh6nb         3/3       Running   0          14m
kube-flannel-ds-4bk76            1/1       Running   0          14m
kube-flannel-ds-5zgmt            1/1       Running   1          14m
kube-flannel-ds-qbm2r            1/1       Running   1          14m
kube-proxy-gtvpb                 1/1       Running   0          14m
kube-proxy-knc6p                 1/1       Running   0          14m
kube-proxy-vx9t6                 1/1       Running   0          14m
kube-scheduler-node01            1/1       Running   0          13m

or to permamently edit kubeconfig:

$ gocli ports k8s
33396
$ gocli scp /etc/kubernetes/admin.conf - > ./kubeconfig
$ kubectl --kubeconfig=./kubeconfig config set-cluster kubernetes --server=https://127.0.0.1:33396
$ kubectl --kubeconfig=./kubeconfig config set-cluster kubernetes --insecure-skip-tls-verify=true
$ kubectl --kubeconfig ./kubeconfig get pods -n kube-system
NAME                             READY     STATUS    RESTARTS   AGE
etcd-node01                      1/1       Running   0          14m
kube-apiserver-node01            1/1       Running   0          13m
kube-controller-manager-node01   1/1       Running   0          14m
kube-dns-6f4fd4bdf-mh6nb         3/3       Running   0          14m
kube-flannel-ds-4bk76            1/1       Running   0          14m
kube-flannel-ds-5zgmt            1/1       Running   1          14m
kube-flannel-ds-qbm2r            1/1       Running   1          14m
kube-proxy-gtvpb                 1/1       Running   0          14m
kube-proxy-knc6p                 1/1       Running   0          14m
kube-proxy-vx9t6                 1/1       Running   0          14m
kube-scheduler-node01            1/1       Running   0          13m

Destroy the cluster

$ gocli rm

Quickstart OpenShift

Start the cluster

Start a k8s cluster which contains of one master and two nodes:

gocli run --random-ports --nodes 2 --reverse --ocp-port 8443 --background kubevirtci/os-3.9.0

Note the extra --reverse flag. Normally we start the master first and nodes register. In the case of openshift it is different. We first need to start the nodes, so that openshift-ansible can reach out to the nodes from master.

Furter we added --ocp-port 8443. That is only required if you want to access the openshift-web-console. More about that further below.

Connect to the cluster

Find out the connection details of the cluster:

$ gocli ports k8s
8443
$ gocli scp /etc/origin/master/admin.kubeconfig - > ./kubeconfig
$ oc --kubeconfig=./kubeconfig config set-cluster node01:8443 --server=127.0.0.1:8443
$ oc --kubeconfig=./kubeconfig config set-cluster node01:8443 --insecure-skip-tls-verify=true
$ oc --kubeconfig ./kubeconfig get nodes

Accessing the webconsole

Make sure that node01 resolves to 127.0.0.1 and that you added --ocp-port 8443 when creatin the cluster. If you did that, you can simply access the webconsole at https://127.0.0.1:8443. The login credentials are admin:admin.

The two preconditions are necessary to make the authentication redirects work.

Destroy the cluster

$ gocli rm

About

Contains cluster definitions and client tools to quickly spin up and destroy ephemeral and scalable k8s and ocp clusters for testing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 53.7%
  • Go 39.4%
  • Python 5.2%
  • Dockerfile 1.4%
  • Makefile 0.3%
0