{"id":93,"date":"2019-03-17T15:34:44","date_gmt":"2019-03-17T13:34:44","guid":{"rendered":"https:\/\/jochemenbianca.nl\/?p=93"},"modified":"2019-04-23T21:02:12","modified_gmt":"2019-04-23T19:02:12","slug":"kubernetes-lab-bouwen","status":"publish","type":"post","link":"https:\/\/jochemenbianca.nl\/?p=93","title":{"rendered":"Kubernetes lab bouwen"},"content":{"rendered":"<p>Nadat ik de cursus Kubernetes via de Linux Academy heb afgerond, ga ik natuurlijk ook weer mijn playground daar voor mijn nieuwe cursus gebruiken. Vandaar dat het wel handig is om een eigen Kube cluster te hebben op mijn laptop.<br \/>\nHet makkelijkst kunnen we dit doen op basis van VirtualBox. Dit werk om alle gangbare systemen. Wat we het beste kunnen doen is eerst 1 CentOS systeem maken deze zo ver mogelijk installeren en deze dan clonen. Dit werkt namelijk het snelst.<br \/>\nDownload de CentOS iso, waarmee we de installatie kunnen doen.<br \/>\nHet stappen plan ziet er als volgt uit:<br \/>\nMaak een nieuwe VM aan in VitrualBox. Deze moet de volgende resources hebben:<\/p>\n<ul>\n<li>1 CPU<\/li>\n<li>1 GB geheugen<\/li>\n<li>1 Harddisk van 25 GB<\/li>\n<li>2 netwerkkaarten<br \/>\n&#8211; 1e stellen we in als Bridge Adapter (Paravirtualized)<br \/>\n&#8211; 2e stellen we in als Host Only Netwerk<\/li>\n<li>1 CD-rom drive welke we koppelen aan de CentOS iso<\/li>\n<\/ul>\n<p>We voeren een standaard installatie uit van CentOS. En updaten de repository. Als de installatie gedaan is rebooten we het systeem en voeren de volgende stappen uit:<code><\/code><\/p>\n<pre>yum install vim\r\nswapoff -a\r\nvim \/etc\/fstab<\/pre>\n<p>In \/etc\/fstab commenten we de regel van de swap space.<br \/>\nWe gaan verder met het installeren van Docker<\/p>\n<pre>yum -y install docker\r\nsystemctl enable docker\r\nsystemctl start docker<\/pre>\n<p>Als docker ge\u00efnstalleerd is maken we de kubernetes repository aan<\/p>\n<pre>cat &lt;&lt; EOF | sudo tee \/etc\/yum.repos.d\/kubernetes.repo\r\n[kubernetes]\r\nname=Kubernetes\r\nbaseurl=https:\/\/packages.cloud.google.com\/yum\/repos\/kubernetes-el7-x86_64\r\nenabled=1\r\ngpgcheck=1\r\nrepo_gpgcheck=1\r\ngpgkey=https:\/\/packages.cloud.google.com\/yum\/doc\/yum-key.gpg https:\/\/packages.cloud.google.com\/yum\/doc\/rpm-package-key.gpg\r\nEOF\r\n<\/pre>\n<p>Om alles goed te laten werken moeten we SELinux uitschakelen<\/p>\n<pre>setenforce 0\r\nvi \/etc\/selinux\/config<\/pre>\n<p>In dit bestand veranderen we SELINUX=enforcing in SELINUX=permissive<br \/>\nHierna kunnen we kubernetes installeren<\/p>\n<pre>yum install -y kubelet kubeadm kubectl\r\nsystemctl enable kubelet\r\nsystemctl start kubelet<\/pre>\n<p>en configureren sysctl<\/p>\n<pre>cat &lt;&lt; EOF | sudo tee \/etc\/sysctl.d\/k8s.conf\r\nnet.bridge.bridge-nf-call-ip6tables = 1\r\nnet.bridge.bridge-nf-call-iptables = 1\r\nEOF\r\nsudo sysctl --system\r\n<\/pre>\n<p>Nu is de basis installatie compleet. Deze installatie gaan we clonen. Zodat we 1 master en een aantal nodes hebben. Nadat we deze nodes gemaakt hebben starten we ze een voor een op en noteren het ip adres van de 2e kaarten.<br \/>\nWe veranderen de hostnames de 1e server noemen we bijv. kubemaster.testnet.nl, de 1e worker kubeworker1.testnet.nl en de 2e worker kubeworker2.testnet.nl.<br \/>\nOp al deze nodes vullen we de ipadressen in in de \/etc\/hosts file. Zodat deze apparaten elkaar op naam kunnen bereiken.<br \/>\nAls we dit allemaal gedaan hebben loggen we in op de master node en voeren het volgende commando uit<\/p>\n<pre>kubeadm init --pod-network-cidr=10.244.0.0\/16\r\nmkdir -p $HOME\/.kube\r\ncp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\r\nchown $(id -u):$(id -g) $HOME\/.kube\/config<\/pre>\n<p>Op het einde van de installatie krijgen we te zien hoe we de workernodes kunnen joinen. Kopieer deze regel. Mocht er een ip adres instaan van de masternode raad ik aan deze te veranderen in de hostname.<\/p>\n<p>Voordat we de workernodes kunnen joinen voeren we op de masternode eerst nog het volgende commando uit, waarmee we de flanel networking installeren<\/p>\n<pre>kubectl apply -f https:\/\/raw.githubusercontent.com\/coreos\/flannel\/bc79dd1505b0c8681ece4de4c0d86c5cd2643275\/Documentation\/kube-flannel.yml<\/pre>\n<p>Hierna kunnen we de workernodes joinen en kunnen we controleren of de nodes het doen door middel van het volgende commando:<\/p>\n<pre>kubectl get nodes<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nadat ik de cursus Kubernetes via de Linux Academy heb afgerond, ga ik natuurlijk ook weer mijn playground daar voor mijn nieuwe cursus gebruiken. Vandaar dat het wel handig is om een eigen Kube cluster te hebben op mijn laptop. Het makkelijkst kunnen we dit doen op basis van VirtualBox. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3],"tags":[],"class_list":["post-93","post","type-post","status-publish","format-standard","hentry","category-kubernetes","category-open-source"],"_links":{"self":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts\/93","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=93"}],"version-history":[{"count":6,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts\/93\/revisions"}],"predecessor-version":[{"id":99,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=\/wp\/v2\/posts\/93\/revisions\/99"}],"wp:attachment":[{"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=93"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=93"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jochemenbianca.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=93"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}