|
| 1 | +# Bootkube Integration |
| 2 | + |
| 3 | +The following instructions and examples demonstrate how to create a new |
| 4 | +[Bootkube](https://github.com/kubernetes-incubator/bootkube) provisioned |
| 5 | +Kubernetes cluster using kube-router in place of kube-proxy and flannel. |
| 6 | + |
| 7 | +## Asset Creation |
| 8 | + |
| 9 | +Follow the |
| 10 | +[documentation](https://github.com/kubernetes-incubator/bootkube#guides) for |
| 11 | +your environment and setup arguments for `bootkube render`. |
| 12 | + |
| 13 | +For example: |
| 14 | +``` |
| 15 | +bootkube render --asset-dir=${PWD}/assets --api-servers=https://kube-api-dev.zbrbdl:443 --api-server-alt-names=DNS=kube-api-dev.zbrbdl --etcd-servers="http://127.0.0.1:2379" |
| 16 | +Writing asset: /home/bzub/assets/manifests/kube-scheduler.yaml |
| 17 | +Writing asset: /home/bzub/assets/manifests/kube-scheduler-disruption.yaml |
| 18 | +Writing asset: /home/bzub/assets/manifests/kube-controller-manager-disruption.yaml |
| 19 | +Writing asset: /home/bzub/assets/manifests/kube-dns-deployment.yaml |
| 20 | +Writing asset: /home/bzub/assets/manifests/pod-checkpointer.yaml |
| 21 | +Writing asset: /home/bzub/assets/manifests/kube-flannel.yaml |
| 22 | +Writing asset: /home/bzub/assets/manifests/kube-system-rbac-role-binding.yaml |
| 23 | +Writing asset: /home/bzub/assets/manifests/kube-controller-manager.yaml |
| 24 | +Writing asset: /home/bzub/assets/manifests/kube-apiserver.yaml |
| 25 | +Writing asset: /home/bzub/assets/manifests/kube-proxy.yaml |
| 26 | +Writing asset: /home/bzub/assets/manifests/kube-flannel-cfg.yaml |
| 27 | +Writing asset: /home/bzub/assets/manifests/kube-dns-svc.yaml |
| 28 | +Writing asset: /home/bzub/assets/bootstrap-manifests/bootstrap-apiserver.yaml |
| 29 | +Writing asset: /home/bzub/assets/bootstrap-manifests/bootstrap-controller-manager.yaml |
| 30 | +Writing asset: /home/bzub/assets/bootstrap-manifests/bootstrap-scheduler.yaml |
| 31 | +Writing asset: /home/bzub/assets/tls/ca.key |
| 32 | +Writing asset: /home/bzub/assets/tls/ca.crt |
| 33 | +Writing asset: /home/bzub/assets/tls/apiserver.key |
| 34 | +Writing asset: /home/bzub/assets/tls/apiserver.crt |
| 35 | +Writing asset: /home/bzub/assets/tls/service-account.key |
| 36 | +Writing asset: /home/bzub/assets/tls/service-account.pub |
| 37 | +Writing asset: /home/bzub/assets/tls/kubelet.key |
| 38 | +Writing asset: /home/bzub/assets/tls/kubelet.crt |
| 39 | +Writing asset: /home/bzub/assets/auth/kubeconfig |
| 40 | +Writing asset: /home/bzub/assets/manifests/kube-apiserver-secret.yaml |
| 41 | +Writing asset: /home/bzub/assets/manifests/kube-controller-manager-secret.yaml |
| 42 | +``` |
| 43 | + |
| 44 | +## Kube-router Installation |
| 45 | + |
| 46 | +Next move/delete the manifests for kube-proxy and flannel from |
| 47 | +`assets/manifests` and replace them with the |
| 48 | +[kube-router.yaml](/contrib/bootkube/kube-router.yaml) and |
| 49 | +[kube-router-cfg.yaml](/contrib/bootkube/kube-router-cfg.yaml) files provided in |
| 50 | +this repo. |
| 51 | +``` |
| 52 | +rm assets/manifests/kube-flannel{,-cfg}.yaml assets/manifests/kube-proxy.yaml |
| 53 | +curl -L https://raw.githubusercontent.com/cloudnativelabs/kube-router/bootkube/contrib/bootkube/kube-router-cfg.yaml -o assets/manifests/kube-router-cfg.yaml |
| 54 | +curl -L https://raw.githubusercontent.com/cloudnativelabs/kube-router/bootkube/contrib/bootkube/kube-router.yaml -o assets/manifests/kube-router.yaml |
| 55 | +``` |
| 56 | + |
| 57 | +## Cluster Startup |
| 58 | + |
| 59 | +Finally, proceed by following the Bootkube documentation, which generally |
| 60 | +involves starting Kubelet and running `bootkube start` referring to your assets |
| 61 | +directory on a new Kubernetes node. |
| 62 | + |
| 63 | +After starting multiple master nodes, our example cluster looks like this: |
| 64 | +``` |
| 65 | +$ kubectl -n kube-system get pods,services |
| 66 | +NAME READY STATUS RESTARTS AGE IP NODE |
| 67 | +po/kube-apiserver-gztjp 1/1 Running 0 15h 10.10.3.2 node2-dev.zbrbdl |
| 68 | +po/kube-apiserver-h55t7 1/1 Running 0 15h 10.10.3.3 node3-dev.zbrbdl |
| 69 | +po/kube-apiserver-qn5xm 1/1 Running 2 15h 10.10.3.1 node1-dev.zbrbdl |
| 70 | +po/kube-controller-manager-3052101514-kp121 1/1 Running 1 15h 10.2.0.5 node1-dev.zbrbdl |
| 71 | +po/kube-controller-manager-3052101514-n4q9p 1/1 Running 2 15h 10.2.0.6 node1-dev.zbrbdl |
| 72 | +po/kube-dns-2431531914-pr9lg 3/3 Running 0 15h 10.2.0.3 node1-dev.zbrbdl |
| 73 | +po/kube-router-ckdj1 1/1 Running 15 15h 10.10.3.3 node3-dev.zbrbdl |
| 74 | +po/kube-router-dcgbr 1/1 Running 15 15h 10.10.3.1 node1-dev.zbrbdl |
| 75 | +po/kube-router-n0vcn 1/1 Running 15 15h 10.10.3.2 node2-dev.zbrbdl |
| 76 | +po/kube-scheduler-2172662190-g4q3w 1/1 Running 4 15h 10.2.0.2 node1-dev.zbrbdl |
| 77 | +po/kube-scheduler-2172662190-hcq3t 1/1 Running 2 15h 10.2.0.4 node1-dev.zbrbdl |
| 78 | +po/pod-checkpointer-jlfsv 1/1 Running 0 15h 10.10.3.1 node1-dev.zbrbdl |
| 79 | +po/pod-checkpointer-jlfsv-node1-dev.zbrbdl 1/1 Running 0 15h 10.10.3.1 node1-dev.zbrbdl |
| 80 | +po/pod-checkpointer-lhckt 1/1 Running 0 15h 10.10.3.3 node3-dev.zbrbdl |
| 81 | +po/pod-checkpointer-lhckt-node3-dev.zbrbdl 1/1 Running 0 15h 10.10.3.3 node3-dev.zbrbdl |
| 82 | +po/pod-checkpointer-tsbkh 1/1 Running 0 15h 10.10.3.2 node2-dev.zbrbdl |
| 83 | +po/pod-checkpointer-tsbkh-node2-dev.zbrbdl 1/1 Running 0 15h 10.10.3.2 node2-dev.zbrbdl |
| 84 | +
|
| 85 | +NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR |
| 86 | +svc/kube-dns 10.3.0.10 <none> 53/UDP,53/TCP 15h k8s-app=kube-dns |
| 87 | +``` |
0 commit comments