Skip to content

Instantly share code, notes, and snippets.

@miabbott
Last active February 6, 2018 20:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miabbott/549655e4557c7bd9f774f8d45a79cac6 to your computer and use it in GitHub Desktop.
Save miabbott/549655e4557c7bd9f774f8d45a79cac6 to your computer and use it in GitHub Desktop.
Single Node Kubernetes Cluster with System Containers
  1. Pull system containers
atomic pull --storage ostree registry.fedoraproject.org/f27/kubernetes-apiserver
atomic pull --storage ostree registry.fedoraproject.org/f27/kubernetes-controller-manager
atomic pull --storage ostree registry.fedoraproject.org/f27/kubernetes-kubelet
atomic pull --storage ostree registry.fedoraproject.org/f27/kubernetes-proxy
atomic pull --storage ostree registry.fedoraproject.org/f27/kubernetes-scheduler                                                                                                                            
atomic pull --storage ostree registry.fedoraproject.org/f27/etcd
  1. Install etcd && start etcd

atomic install --system --system-package=no --name etcd registry.fedoraproject.org/f27/etcd systemctl start etcd

  1. Install kubernetes-apiserver

atomic install --system --system-package=no --name kubernetes-apiserver registry.fedoraproject.org/f27/kubernetes-apiserver

  1. Configure /etc/kubernetes/apiserver
# diff /etc/kubernetes/apiserver.orig /etc/kubernetes/apiserver
23c23
< KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
---
> KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
  1. Start kubernetes-apiserver

systemctl start kubernetes-apiserver

  1. Install kubelet

atomic install --system --system-package=no --name kubelet registry.fedoraproject.org/f27/kubernetes-kubelet

  1. Configure /etc/kubernetes/kubelet
# diff /etc/kubernetes/kubelet.orig /etc/kubernetes/kubelet 
17c17
< KUBELET_ARGS="--cgroup-driver=systemd"
---
> KUBELET_ARGS="--cgroup-driver=systemd --register-node=true"
  1. Start kubelet

systemctl start kubelet

  1. Install && start kube-proxy kube-controller-manager kube-scheduler
atomic install --system --system-package=no --name kubernetes-proxy registry.fedoraproject.org/f27/kubernetes-proxy
atomic install --system --system-package=no --name kubernetes-controller-manager registry.fedoraproject.org/f27/kubernetes-controller-manager
atomic install --system --system-package=no --name kubernetes-scheduler registry.fedoraproject.org/f27/kubernetes-scheduler
systemctl start kubernetes-proxy
systemctl start kubernetes-controller-manager
systemctl start kubernetes-scheduler
  1. Pull down rc+service YAML files
curl -LO https://raw.githubusercontent.com/projectatomic/atomic-host-tests/master/roles/k8_cluster_services_rc_setup/files/db-rc.yml
curl -LO https://raw.githubusercontent.com/projectatomic/atomic-host-tests/master/roles/k8_cluster_services_rc_setup/files/db-service.yml
curl -LO https://raw.githubusercontent.com/projectatomic/atomic-host-tests/master/roles/k8_cluster_services_rc_setup/files/webserver-service.yml
curl -LO https://raw.githubusercontent.com/projectatomic/atomic-host-tests/master/roles/k8_cluster_services_rc_setup/files/webserver-rc.yml
  1. Edit YAML files with docker private registry IP
sed -i 's|PRIVATE|172.17.0.1|' db-rc.yml     
sed -i 's|PRIVATE|172.17.0.1|' db-service.yml
sed -i 's|PRIVATE|172.17.0.1|' webserver-rc.yml
sed -i 's|PRIVATE|172.17.0.1|' webserver-service.yml
  1. Create services
kubectl create -f db-service.yml
kubectl create -f webserver-service.yml
  1. Create RCs
kubectl create -f db-rc.yml
kubectl create -f webserver-rc.yml
  1. Check it all works

curl http://localhost:80/cgi-bin/action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment