étape 1
Définissez le nom d'hôte (chaque nom d'hôte ne peut pas être le même, modifiez un par un, voici uniquement la commande pour modifier le nom d'hôte)
Afficher le nom d'hôte nom d'hôte
Modifier le nom d'hôte
hostnamectl set-hostname <votre_nom_hôte>
étape 2
Configurez le fichier d'hôtes afin que les nœuds puissent utiliser le nom d'hôte pour accéder les uns aux autres
cat> / etc / hosts << EOF
<node_ip> <node_hostname>
<node_ip> <node_hostname>
<node_ip> <node_hostname>
<node_ip> <node_hostname>
<node_ip> <node_hostname>
EOF
étape 3
Mettre à jour la source yum (yum upgrade ne met à jour que la clé, yum update met à jour la clé et le noyau)
miam mise à jour -y
étape 4
Installer les dépendances
yum install -y epel-release conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
étape-5
Avant de désactiver la protection incendie
systemctl arrêter le pare-feud && systemctl désactiver le pare-feud
étape-6
Réinitialiser iptables (la commande -X supprime une certaine chaîne de règles, -F supprime toutes les règles d'une certaine chaîne de règles, -P définit une politique de filtrage)
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPTER
étape 7
Fermer le swap
swapoff -a
Utilisez la commande suivante pour faire fonctionner le fichier / etc / fstab, commentez la ligne / dev / mapper / centos_master-swap swap swap default 0 0
sed -i /. échanger. / # & / '/ etc / fstab
étape-8
Fermer selinux
sed -i's / SELINUX = enforcing / SELINUX = disabled / g '/ etc / selinux / config
#permanemment close setenforce 0 #temporary close
étape-9
Fermez dnsmasq (sinon cela peut empêcher le conteneur docker de résoudre le nom de domaine)
service dnsmasq stop && systemctl désactiver dnsmasq
étape-10
Créer un fichier de configuration
cat> /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
vm. swappiness = 0
vm.overcommit_memory = 1
vm.panic_on_oom = 0
fs.inotify.max_user_watches = 89100
EOF
Document efficace
modprobe br_netfilter
sysctl -p /etc/sysctl.d/kubernetes.conf
étape 11
Installer docker
Créez le répertoire requis
mkdir -p / opt / kubernetes / docker && cd / opt / kubernetes / docker
Définir la source yum
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Vous pouvez afficher toutes les versions de docker dans tous les entrepôts et sélectionner une version spécifique à installer:
yum list docker-ce --showduplicates | trier -r
Installez la version spécifiée de docker, si le numéro de version n'est pas spécifié, la dernière version de docker sera installée
sudo yum installer -y docker-ce- <VERSION_STRING> docker-ce-cli- <VERSION_STRING> containerd.io
yum install -y docker-ce-19.03.8 docker-ce-cli-19.03.8 containerd.io
démarrage du docker
systemctl activer le docker && systemctl démarrer le docker
Définir les paramètres de démarrage du docker
-Définissez le répertoire de données du docker: choisissez une partition plus grande (je n'ai pas besoin de configurer le répertoire racine ici, la valeur par défaut est / var / lib / docker)
-Définissez le pilote cgroup pour éviter les incohérences dans le pilote de fichier et empêcher le démarrage de la mise en miroir (la valeur par défaut est cgroupfs, le but principal est d'être unifié avec la configuration de kubelet, ici vous ne pouvez pas non plus définir les cgroupfs plus tard dans le kubelet )
les informations du docker peuvent afficher le type de pilote de groupe de contrôle
cat </etc/docker/daemon.json
{ "graph": "/ docker / data / path", "exec-opts": ["native.cgroupdriver = systemd"] } EOF
Démarrez le service docker
systemctl démarrer le docker
Exemple de configuration détaillée de daemon.json
{
«Debug»: faux,
"Expérimental": faux,
"Graph": "/ home / docker-data",
"Exec-opts": ["native.cgroupdriver = systemd"],
«Miroirs de registre»: [
"Https://fy707np5.mirror.aliyuncs.com"
],
«Registres non sécurisés»: [
«Hub.zy.com»,
«172.16.249.159:8082»
]
}
Démarrez le service docker
systemctl redémarrage docker
étape-12
安装 bebeadm , kubelet , kubectl
kubeadm: commande pour déployer le cluster
kubelet: un composant qui s'exécute sur chaque machine du cluster, responsable de la gestion du cycle de vie des pods et des conteneurs
kubectl: outil de gestion de cluster (facultatif, à condition qu'il soit installé sur le nœud qui contrôle le cluster)
Configurez la source yum, voici le code source d'Alibaba Cloud kubernetes yum
cat </etc/yum.repos.d/kubernetes.repo
[kubernetes]
name = Kubernetes
baseurl = http: //mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled = 1
gpgcheck = 0
repo_gpgcheck = 0
gpgkey = http: //mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
Outil d'installation
Trouvez le numéro de version à installer
yum list kubeadm --showduplicates | trier -r
Installez la version spécifiée (la 1.18.2 est utilisée ici)
yum install -y kubeadm-1.18.2-0 kubelet-1.18.2-0 kubectl-1.18.2-0 --disableexcludes = kubernetes
### Configuration facultative
Définissez le cgroupdriver de kubelet (le cgroupdriver par défaut de kubelet est systemd, si l'exec-opts de docker n'est pas défini sur systemd ci-dessus, vous devez définir le kubelet sur cgroupfs ici)
sed -i "s / cgroup-driver = systemd / cgroup-driver = cgroupfs / g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Démarrer tous les nœuds kubelet
systemctl activer kubelet && systemctl démarrer kubelet