Kubernetes
Install kubernetes på CentOS 7
Swap skal disables på manager(s) og workers:
swapoff /dev/dm-1 sed -i '/swap/s/^/#/' /etc/fstab
Desværre så skal SELinux vistnok disables:
# Set SELinux in permissive mode (effectively disabling it) setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
Firewalld skal disables og iptables enables på manager(s) og workers:
systemctl disable firewalld systemctl stop firewalld echo '1' | tee /proc/sys/net/bridge/bridge-nf-call-{iptables,ip6tables,arptables} echo 'net.bridge.bridge-nf-call-iptables = 1' > /etc/sysctl.d/99-nf-call-iptables.conf echo 'net.bridge.bridge-nf-call-ip6tables = 1' >> /etc/sysctl.d/99-nf-call-iptables.conf echo 'net.bridge.bridge-nf-call-arptables = 1' >> /etc/sysctl.d/99-nf-call-iptables.conf iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t nat -F iptables -t mangle -F iptables -F iptables -X
På manager(s) og workers skal repo tilføjes og software installeres:
cat <<EOT > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOT yum install -y kubectl kubeadm docker etcd
På manager(s) og workers skal docker+kubelet OS-service enables og startes:
systemctl enable docker.service kubelet.service systemctl start docker.service kubelet.service
På manager(s) og workers er det rart med bash tab-completions:
yum install -y bash-completion kubectl completion bash >/etc/bash_completion.d/kubectl
Og tilføje hostname/ip'er til host-filen (eller i DNS)
cat <<EOT >> /etc/hosts 10.0.0.10 manager 10.0.0.20 worker1 10.0.0.30 worker2 EOT
På manager:
kubeadm init --pod-network-cidr=10.0.1.0/24 --apiserver-advertise-address=10.0.0.10 # erstat 10.0.0.10 med managers ip. Tager lang tid
På manager skal resten køres som en alm. bruger med sudo-rettigheder:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Der skal vælges en network provider fra listen på https://kubernetes.io/docs/concepts/cluster-administration/addons/
Her vælges Calico:
kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml
Og installeres Kube Dashboard. Bagefter forbinde på adressen:
http:<manager-external-ip>:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
<code>
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl proxy
</code>
<code>
kubeadm token create –print-join-command
</code>
og brug outputtet på workers:
<code>
kubeadm join <master-ip:port> –token <token> –discovery-token-ca-cert-hash <hash>
</code>
Og test tilsidst med:
<code>
kubectl get nodes
kubectl apply -f https://k8s.io/examples/service/access/hello-application.yaml
</code>