User Tools

Site Tools


linux_og_unix:kubernetes

Differences

This shows you the differences between two versions of the page.


linux_og_unix:kubernetes [2023/10/21 19:19] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +===== Kubernetes =====
 +
 +==== Install kubernetes på CentOS 7 ====
 +
 +  * https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux
 +  * https://www.serverlab.ca/tutorials/containers/kubernetes/how-to-add-workers-to-kubernetes-clusters/
 +
 +Swap skal disables på manager(s) og workers:
 +<code>
 +swapoff /dev/dm-1
 +sed -i '/swap/s/^/#/' /etc/fstab
 +</code>
 +
 +Desværre så skal SELinux vistnok disables:
 +<code>
 +# Set SELinux in permissive mode (effectively disabling it)
 +setenforce 0
 +sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
 +</code>
 +
 +Firewalld skal disables og iptables enables på manager(s) og workers:
 +<code>
 +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
 +</code>
 +
 +På manager(s) og workers skal repo tilføjes og software installeres:
 +<code>
 +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
 +</code>
 +
 +På manager(s) og workers skal docker+kubelet OS-service enables og startes:
 +<code>
 +systemctl enable docker.service kubelet.service
 +systemctl start docker.service kubelet.service
 +</code>
 +
 +På manager(s) og workers er det rart med bash tab-completions:
 +<code>
 +yum install -y bash-completion
 +kubectl completion bash >/etc/bash_completion.d/kubectl
 +</code>
 +
 +Og tilføje hostname/ip'er til host-filen (eller i DNS)
 +<code>
 +cat <<EOT >> /etc/hosts
 +10.0.0.10 manager
 +10.0.0.20 worker1
 +10.0.0.30 worker2
 +EOT
 +</code>
 +
 +På manager:
 +<code>
 +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
 +</code>
 +
 +På manager skal resten køres som en alm. bruger med sudo-rettigheder:
 +<code>
 +  mkdir -p $HOME/.kube
 +  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 +  sudo chown $(id -u):$(id -g) $HOME/.kube/config
 +</code>
 +
 +Der skal vælges en network provider fra listen på https://kubernetes.io/docs/concepts/cluster-administration/addons/ \\
 +Her vælges Calico:
 +<code>
 +kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml
 +</code>
 +
 +
 +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>
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki