Skip to content

Latest commit

 

History

History
75 lines (50 loc) · 2.54 KB

kubemark-setup-guide.md

File metadata and controls

75 lines (50 loc) · 2.54 KB

Introduction

This document serves to understand how to set up kubemark cluster given that a base cluster (to run hollow-node pods) and separate master (to act as master for the hollow nodes) are already present.

Precondition

You need kubemark master and external cluster to set up a kubemark cluster.

The functions are as follows:

  • kubemark master: can be StandAlone or HA, used to be the kubemark cluster's master
  • external cluster: used to create hollow nodes for the kubemark cluster

Steps:

  1. Build kubemark image

If you want to build/use your own kubemark image, do as follows. Otherwise skip this section and just use the latest image staging-k8s.gcr.io/kubemark:latest from public repo.

  • i. pull kubernetes code
cd $GOPATH/src/k8s.io/
git clone [email protected]:kubernetes/kubernetes.git
  • ii. build kubemark binary
cd kubernetes
make all WHAT=cmd/kubemark
cp $GOPATH/src/k8s.io/kubernetes/_output/bin/kubemark $GOPATH/src/k8s.io/kubernetes/cluster/images/kubemark/
  • iii. build kubemark image
cd $GOPATH/src/k8s.io/kubernetes/cluster/images/kubemark/
make build

Then you can get the image named staging-k8s.gcr.io/kubemark:latest locally.

  • iv. push kubemark image
docker tag staging-k8s.gcr.io/kubemark:latest {{kubemark_image_registry}}/kubemark:{{kubemark_image_tag}}
docker push {{kubemark_image_registry}}/kubemark:{{kubemark_image_tag}}
  1. Create hollow nodes
  • i. create namespace and secret

Copy kubemark master's kubeconfig which is used to configure access, put it on a master of external cluster, rename it as config.

kubectl create ns kubemark
kubectl create secret generic kubeconfig --type=Opaque --namespace=kubemark --from-file=kubelet.kubeconfig=config --from-file=kubeproxy.kubeconfig=config
  • ii. apply yaml to create hollow nodes

You can use hollow-node_simplified_template.yaml in the current directory, or use hollow-node_template.yaml in kubernetes/test/kubemark/resources/.

Note:

  • the parameters {{numreplicas}} means the number of hollow nodes in the kubemark cluster
  • the parameters {{numreplicas}}, {{kubemark_image_registry}} and {{kubemark_image_tag}} need to be filled in the simplified template
  • your external cluster should have enough resources to be able to run {{numreplicas}} no. of hollow-node pods
kubectl create -f hollow-node_simplified_template.yaml

Waiting for these hollow-node pods to be running. Then you can see these pods register as kubemark master's nodes.

Finally, kubemark master and external cluster set up the kubemark cluster.