Installez k8s sur le nœud et automatisez-le autant que possible avec ansible.
L'exécuteur ansible et le maître k8s utilisent KVM du serveur MAAS. P>
Construire jusqu'à un état où les k8 peuvent être installés avec ansible p>
MBP OS Sierra
Serveur MAAS (192.168.100.152)
serveur maître k8s (KVM: 192.168.100.191)
serveur ansible (KVM: 192.168.100.192) p>
ansible Ver.2.5.1
kubernetes Ver.1.10.3
Installez KVM pour créer un serveur ansible et un serveur k8s sur le serveur MAAS de base
Après l'installation, rejoignez le groupe libvirt afin qu'il puisse être exécuté sans sudo p>
$ sudo apt install -y qemu-kvm libvirt0 libvirt-bin virt-manager bridge-utils
$ sudo systemctl enable libvirt-bin
$ sudo gpasswd libvirtd -a <username>
Installez le bureau sur le serveur MAAS car il est plus pratique d'utiliser l'environnement de bureau pour créer KVM p>
$ sudo apt -y install ubuntu-desktop
L'installation sur le bureau prend du temps, alors attendez un peu
Le bureau s'affiche automatiquement lorsque l'installation est terminée et redémarrée. P>
Démarrez KVM dans le terminal sur le bureau pour démarrer la fenêtre de création p>
$ virt-manager
Ici, créez un nouveau KVM avec les spécifications suivantes p>
Nom d'hôte: ansible
Mémoire: 4 Go
CPU:2
Stockage: 30 Go
Nom d'hôte: k8s-master
Mémoire: 8 Go
CPU:4
Stockage: 40 Go code> pré>
Bâtiment ansible h1>
Installer effectivement ansible sur le serveur ansible créé par KVM p>
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
Cette fois, créez un dossier ansible directement sous home et gérez divers fichiers p>
$ sudo mkdir ansible
Créez un playbook pour installer k8s sur k8s-master p>
$ sudo vi k8s-master.yaml
---
- hosts: k8s-master
remote_user: $ nom d'utilisateur
become: yes
tasks:
--name: Installer les prérequis et Docker.io #docker Install
become: yes
apt: name={{item}} update_cache=yes
with_items:
- apt-transport-https
- ca-certificates
- curl
- software-properties-common
- docker.io
- name: user add to docker group
user: name=gauss group=docker append=yes
--name: Ajout de la clé GPG K8S # k8s Préparation à l'installation
apt_key:
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
- name: Add K8S APT repository
apt_repository:
repo: deb http://apt.kubernetes.io/ kubernetes-xenial main
- name: Install K8S
apt: name={{item}} update_cache=yes
with_items:
- kubelet
- kubeadm
- kubectl
--name: supprimer le fichier d'échange de / etc / fstab #swap doit être supprimé sinon cela échouera
mount:
name: swap
fstype: swap
state: absent
- name: Disable swap
command: swapoff -a
when: ansible_swaptotal_mb > 0
--name: configurez le service docker pour qu'il démarre au démarrage. # Démarre automatiquement le docker même après le redémarrage
service: name=docker enabled=yes
--name: configurez le service kubelet pour qu'il démarre au démarrage. # Démarre automatiquement les k8s même après le redémarrage
service: name=kubelet enabled=yes
--name: initialisation Init k8s-master # k8sm
become: yes
shell: kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.100.191
- name: Make Directory .kube
file:
path: /.kube
state: directory
propriétaire: $ owner
group: docker
mode: 0755
- name: Copy the .kube config
become: yes
file:
src: /home/$username/ansible/admin.conf
dest: ~/.kube/config
propriétaire: $ owner
group: docker
mode: 0600
- name: Export Kubernetes
lineinfile:
chemin: /home/$username/.kube/config
state: absent
regexp: '^%KUBECONFIG'
--name: Apply Flannel $ Créer un réseau de flanelle
sudo: yes
shell: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
Ensuite, ajoutez des hôtes ansibles p>
$ sudo vi /etc/ansible/hosts
[master]
k8s-master
$ sudo vi /etc/hosts
192.168.100.191 k8s-master
Exécutez le playbook ansible lorsque vous êtes prêt
Si vous souhaitez utiliser python3, vous avez besoin de l'option après "-e" p>
~/ansible$ sudo ansible-playbook --private-key=id_rsa_common k8s-master.yml -e 'ansible_python_interpreter=/usr/bin/python3'
Terminé si aucune erreur p>
Conclusion h1>
La version de k8s change rapidement, et ubuntu est 18.04, donc je me demandais ce qui allait se passer avec la nouvelle version, mais j'étais soulagé du succès de l'initialisation. P>
J'ai trébuché h1>
version du docker h3>
Lors de l'initialisation de k8s, si le dernier docker (18.03) est installé, la version prise en charge est jusqu'à 17.03, donc un message s'est affiché me demandant de rétrograder, j'ai donc réinstallé 17.03
Cependant, cela a toujours échoué, j'ai donc ajouté docker.io et cela a réussi. P>
kube-dns ne fonctionnait pas h3>
Dans la commande kubeadm init exécutée dans le fichier ansible, la notation réseau de --pod-network-cidr était initialement définie sur "10.0.0.0", mais avec ce paramètre, kube- dans le paquet DNS n'a pas fonctionné
Lorsque j'ai vérifié chaque page, j'ai trouvé que "10.244.0.0" semble être correct pour ce réseau, et lorsque j'ai exécuté la commande avec ce paramètre, kube-dns fonctionnait normalement. P>
Page de référence h2>
Ubuntu 16.04 : Installez KVM et démarrez la machine virtuelle
Introduction à Ansible. [Introduction]
page officielle de kubernetes
Introduction à la gestion des conteneurs Docker avec kubernetes
Installez kubernetes v1.8 + Flannel avec kubeadm p>
Recommended Posts