Kubernetes è uno strumento di gestione (orchestrazione) di container che consente l’amministrazione di gruppi di container dislocati anche su più server.
Esistono tecnologie simili a Kubernetes, ma esso è diventato un riferimento di mercato e uno dei prodotti meglio documentati e semplici da utilizzare.
Kubernetes si avvale di Docker, e per questo motivo, prima di installare Kubernetes è conveniente installare Docker CE (Community Edition).

La distribuzione GNU/Linux scelta per questo tutorial è Debian 9 (Strech); è sufficiente un’installazione base senza interfaccia grafica e server SSH attivo.
Per funzionare al meglio è necessario disporre di un processore con almeno due core, 2 GB di RAM e uno spazio disco di una dozzina di GB. La partizione di swap deve essere disabilitata (o non creata) in quanto Kubernetes non ne necessità.

Installazione di Docker

Installare i pacchetti propedeutici all’installazione di Docker.

apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Aggiungere la chiave del repositori e il repository software ad APT.

curl -s https://download.docker.com/linux/debian/gpg | apt-key add -

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian/$(lsb_release -cs)/stable"

Aggiornare APT, e installare la comunity edition di Docker.

Toshiba 4TB Canvio Basics Portable External Hard Drive,USB 3.2. Gen 1, Black (HDTB440EK3AA)

apt-get update

apt-get install docker-ce

Per verificare che l’installazione di Docker sia andata a buon fine.

docker run hello-world

Installazione di Kubernetes

Ora si può procedere all’installazione di Kubernetes, aggiungendo la chiave del repository ad APT.

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

Aggiungendo il repository a Debian Stretch.

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

Aggiornare i repository della propria distribuzione e installare gli strumenti di Kubernetes.

apt-get update
apt-get install -y kubelet kubeadm kubectl

Impediamo che i pacchetti vengano aggiornati in futuro, usando l’hold.

apt-mark hold kubelet kubeadm kubectl

systemd va ricaricato e attivato kubelet.

systemctl daemon-reload
systemctl restart kubelet

A questo punto si può scegliere se utilizzare il server che abbiamo predisposto come nodo di un cluster dove c’è un solo master (single master cluster) oppure in un cluster HA.

Per questo tutorial è stata scelta la strada più semplice: configureremo il cluster con un solo nodo come master.

Per verificare la bontà dell’installazione precedente si può usare il comando kubeadmin config.

kubeadm config images pull

Poi procedere all’inizializzazione di Kubernetes che procederà alla configurazione iniziale del prodotto.

kubeadm init

Per iniziare a utilizzare il tuo cluster, devi eseguire quanto segue come utente normale:

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

E’ anche possibile aggiungere altri server al cluster Kubernetes eseguendo il seguente comando su ciascun nodo come root, dove 192.168.y.y rappresenta l’indirizzo IP del server appena installato, la serie di X è il vostro token e ABCD… il codice SHA di sicurezza del vostro nodo personale.

kubeadm join 192.168.y.y:6443 --token XXXXXXXXXXXXXX --discovery-token-ca-cert-hash sha256:ABCDE1234567890ABCDE1234567890

Di valent

1 commento su “Installare Kubernetes in Debian 9”
  1. Aggiungere la chiave del repositori e il repository software ad APT.

    curl -s https://download.docker.com/linux/debian/gpg | apt-key add –

    add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/debian/$(lsb_release -cs)/stable”

    C’è un errore nella stringa di aggiunta del repository, non vanno messi i due backslash prima e dopo $(lsb_release -cs), al loro posto vanno indicati due spazi

    add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *