编程知识 cdmana.com

Fastapi Framework + kubesphere 3.1.0 Series (1): kubesphere installation Deployment + Node add Real

Un.、 Description

J'ai appris quelque chose surK8SQuelque chose de conceptuel,J'ai aussi essayé quelques petites expériences.Mais l'opération n'a jamais résolu certains de ces mystères et essences,Donc j'ai l'intention dekubesphereEn retour, commencez à apprendre notreK8S,Avec quelques éléments de basek8sLe concept de base de,Viens.kubesphereEt ça ne devrait pas être très difficile à comprendre.Donc la prochaine série de notes,C'est surtout un enregistrement si je metsFastapiDéployé dans notrekubespherePour étendre.

Le but principal est que j'ai étudié,Donc ça correspond à ce qui se passe dans l'environnement de construction,Les exigences des serveurs concernés sont différentes,Mon environnement est principalement basé sur des machines virtuelles construites localement pour la pratique.Il y a peut - être un moyen de construire un environnement de production.

Et en fait,kubesphereLe site Web offre un manuel de documentation très convivial,En fait, la plupart de la pratique peut être effectuée selon le site officiel de l'opérateur de téléphone mobile,Je suis ici principalement pour approfondir ma compréhension,Voir le Manuel disponible sur le site officiel,Compléter vos propres notes d'opération.Pour information seulement!

2.、Environnement

2.1 Préparation de la machine virtuelle

Tout d'abord, les informations de configuration telles que la mémoire et le processeur de la machine virtuelle:

image.png

Ici parce que minimiser l'installation plus tard,Surveillance de l'installation,L'installation par défaut,Il est recommandé de donner plus de mémoire. Éviter après l'installation ,Mémoire insuffisante,Certains composants sont programmés pour l'installation en cas d'échec.

image.png

2.1 Installation à un seul noeudkubesphere

PS: Procédure suivante ,La plupart proviennent des étapes fournies sur le site Web!

Adresse de la source d'exploitation du site officiel: kubesphere.com.cn/docs/quick-…

2.1.1 linuxPréparation de la machine et exigences de base

image.png

.Parce que par défaut, j'utilise une machine virtuelle propre pour pratiquer.Donc l'environnement dans lequel le conteneur fonctionne, Moi non plus. ,Fournir des scripts d'installation en utilisant le site Web officiel,Il sera automatiquement installé pour vous par défautDocker.

2.1.2 InlinuxInstallation supérieureKubernetesEtKubeSphere Préparation de base

image.png

ps: La préparation de base est essentielle ,Parce que les exigences environnementales pertinentes seront testées lors de l'installation,Comme les pare - feu etswapOui. Oui.SelinuxL'état, etc., a été fermé pour un traitement.Et j'ai eu un problème avec le temps,J'ai découvert:

Mon utilisation immédiate :sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' >/etc/selinux/config C'est fermé.selinux,Et l'invite apparaîtra quand l'installation sera redémarrée

Failed to get etcdctl: Failed to exec command: sudo -E /bin/sh -c >"docker run --rm -v /usr/local/bin:/systembindirProblème d'erreur pour, Traitement final :Il suffit de fermer temporairement!

Étapes1:Éteignez le pare - feu ou ouvrez ce qui est nécessaire[ Port pare - feu ]

[root@k81-master01 ~]#systemctl disable firewalld                                                                                                        
[root@k81-master01 ~]#systemctl stop firewalld                                                                                                           
[root@k81-master01 ~]#systemctl status firewalld  
Copier le Code

Étapes2: FermerswapPartition

[root@k81-master01 ~]#swapoff -a                                                                                                                         
[root@k81-master01 ~]#echo "vm.swappiness=0" >> /etc/sysctl.conf                                                                                         
[root@k81-master01 ~]#sysctl -p /etc/sysctl.conf   
vm.swappiness = 0

Copier le Code

Étapes3: FermerSelinuxStatut

[root@k81-master01 ~]sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config    
[root@k81-master01 ~]reboot
[root@k81-master01 ~]### VoirSelinuxStatut                                                                                       
[root@k81-master01 ~]#getenforce                                                                                                                  
Disabled                          
[root@k81-master01 ~]# Effectuer une autre fermeture temporaire
[root@k81-master01 ~]# setenforce 0

Copier le Code

Étapes4:ConfigurationepelSource--Non requis

[root@k81-master01 ~]#rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
Copier le Code

Étapes5: Mettre à jour le paquet( Application des recommandations )

[root@k81-master01 ~]#yum -y update
Copier le Code

Étapes6: Installer des composants dépendants de la Fondation

[root@k81-master01 ~]#yum install -y ebtables socat ipset conntrack 
Copier le Code

2.1.3 Utiliserkk.Installation formelle d'un seul noeud

KubeKey - Oui.kubesphereOutils fournis pour l'installation d'une clé!Trèsnice! Les étapes suivantes sont essentiellement de suivre le site officiel étape par étape pour donner l'opération de document est ok!Je l'ai copié directement ici!Ha Ha!

Étapes 1:Télécharger KubeKey

Exécutez d'abord la commande suivante pour vous assurer que vous téléchargez à partir de la bonne zone KubeKey.

[root@k81-master01 ~]# export KKZONE=cn
# Surtout pour éviter de venir de l'étrangerjnxTélécharger, Doucement, voleur. !
Copier le Code

Exécuter la commande suivante pour télécharger KubeKey.

curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -
Copier le Code

Remarques

À télécharger KubeKey Après,Si vous le Transférez à une nouvelle machine, Et accès Googleapis Tout aussi limitée , À vous. >Assurez - vous de recommencer avant d'effectuer les étapes suivantes export KKZONE=cn Les ordres.

Pour kk Ajouter des permissions exécutables:

chmod +x kk
Copier le Code

Étapes 2: Démarrer l'installation d'une clé kubernetesEtkubesphere

[root@k81-master01 ~]# ./kk create cluster --with-kubernetes v1.20.4 --with-kubesphere v3.1.1

[root@localhost ~]# ./kk create cluster --with-kubernetes v1.20.4 --with-kubesphere v3.1.1
+-------------------------------------+------+------+---------+----------+-------+-------+-----------+---------+------------+-------------+------------------+--------------+
| name                                | sudo | curl | openssl | ebtables | socat | ipset | conntrack | docker  | nfs client | ceph client | glusterfs client | time         |
+-------------------------------------+------+------+---------+----------+-------+-------+-----------+---------+------------+-------------+------------------+--------------+
| localhost.localdomain.cluster.local | y    | y    | y       | y        | y     | y     | y         | 20.10.8 |            |             |                  | CST 17:33:14 |
+-------------------------------------+------+------+---------+----------+-------+-------+-----------+---------+------------+-------------+------------------+--------------+

This is a simple check of your environment.
Before installation, you should ensure that your machines meet all requirements specified at
https://github.com/kubesphere/kubekey#requirements-and-recommendations

Continue this installation? [yes/no]: yes

Copier le Code

Étapes 3:En attente d'installation···

C'est lent.~ Va prendre un café. !
Copier le Code

Étapes 4:Une fois l'installation terminée

La figure suivante apparaît: :


#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.219.143:30880
Account: admin
Password: P@88w0rd

NOTES:
  1. After you log into the console, please check the
     monitoring status of service components in
     "Cluster Management". If any service is not
     ready, please wait patiently until all components
     are up and running.
  2. Please change the default password after login.

#####################################################
https://kubesphere.io             2021-09-13 17:45:52
#####################################################
INFO[17:46:05 CST] Installation is complete.

Please check the result using the command:

       kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f


Copier le Code

Étapes 5:Vérifier les résultats de l'installation

[root@k81-master01 ~]# kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
Copier le Code

Les informations de sortie sont affichées Web Console IP Adresse et numéro de port,Par défaut NodePort - Oui. 30880.Maintenant,Vous pouvez utiliser le compte par défaut et le mot de passe (admin/P@88w0rd) Adoption <NodeIP>:30880 Accès à la console.

Étapes 6: Expérience de connexion au système

image.png

image.png

image.png

2.1.4 UtiliserKubeKey Pour ajouter un nouveau noeud de travail(Formation de grappes)

ps:Depuis KubeSphere v3.0.0 Lève - toi.,Vous pouvez utiliser un nouvel installateur KubeKey Ajouter un nouveau noeud au cluster.Fondamentalement,, L'opération est basée sur Kubelet Mécanisme d'enregistrement .En d'autres termes,,Les nouveaux noeuds seront automatiquement ajoutés aux Kubernetes Cluster.KubeSphere Prise en charge des environnements mixtes ,Cela signifie que le nouveau système d'exploitation hôte peut être CentOS Ou Ubuntu.

À propos de Node Management official website document address: kubesphere.com.cn/docs/instal…

Préparer un nouveau noeud mon serveur virtuel:

image.png

image.png

2.1.4.1 Comme avantKubernetesEtKubeSphere Préparation de base

  • Étapes1:Éteignez le pare - feu ou ouvrez ce qui est nécessaire[ Port pare - feu ]
  • Étapes2: FermerswapPartition
  • Étapes3: FermerSelinuxStatut (reboot)
  • Étapes4:ConfigurationepelSource--Non requis
  • Étapes5: Mettre à jour le paquet( Application des recommandations )(Peut être exécuté en priorité après l'installation de la machine virtuelle, Retraitement fermé SelinuxStatut )
  • Étapes6: Installer des composants dépendants de la Fondation

2.1.4.2 Téléchargement du noeud de travail  KubeKey

TéléchargerKubeKey:Mode 1:

Exécutez d'abord la commande suivante pour vous assurer que vous téléchargez à partir de la bonne zone KubeKey.

[root@k81-master01 ~]# export KKZONE=cn
# Surtout pour éviter de venir de l'étrangerjnxTélécharger, Doucement, voleur. !
Copier le Code

Exécuter la commande suivante pour télécharger KubeKey.

curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -
Copier le Code

TéléchargerKubeKey:Mode 2: Déjà téléchargé avant la copie directe du noeud Maître,Évitez de télécharger à nouveau les composants pertinents.

Copiekk Vers un nouveau noeud de travail :


[root@localhost ~]# scp kk root@192.168.219.144:/root/
The authenticity of host '192.168.219.144 (192.168.219.144)' can't be established.
ECDSA key fingerprint is SHA256:96v+n8/ZY/wbVqH+R03ZAC9aHwAkG7q15Z7ggmX8f/g.
ECDSA key fingerprint is MD5:de:51:eb:c0:ee:61:47:2b:b5:93:d2:a2:10:a5:ff:b9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.219.144' (ECDSA) to the list of known hosts.
root@192.168.219.144's password:
kk                                                                                                             100%   13MB  23.9MB/s   00:00
You have new mail in /var/spool/mail/root
[root@localhost ~]#

Copier le Code

Copiekubekey Vers un nouveau noeud de travail :

# Compression

[root@localhost ~]# tar -cvzf kubekey.tar.gz kubekey
kubekey/
kubekey/v1.20.4/
kubekey/v1.20.4/amd64/
kubekey/v1.20.4/amd64/kubeadm
kubekey/v1.20.4/amd64/kubelet
kubekey/v1.20.4/amd64/kubectl
kubekey/v1.20.4/amd64/helm
kubekey/v1.20.4/amd64/cni-plugins-linux-amd64-v0.8.6.tgz
kubekey/config-localhost.localdomain.cluster.local
kubekey/network-plugin.yaml
[root@localhost ~]# ll
total 125676
-rw-------. 1 root root      1247 Sep 13 16:08 anaconda-ks.cfg
-rwxr-xr-x  1 1001  121  13668116 Jul 12 15:02 kk
drwxr-xr-x  3 root root        98 Sep 13 16:57 kubekey
-rw-r--r--  1 root root 101624288 Sep 14 11:48 kubekey.tar.gz
-rw-r--r--  1 root root  13341858 Sep 13 16:26 kubekey-v1.1.1-linux-amd64.tar.gz
-rw-r--r--  1 1001  121     22906 Jul 12 15:00 README.md
-rw-r--r--  1 1001  121     22845 Jul 12 15:00 README_zh-CN.md

Copie

[root@localhost ~]# scp kubekey.tar.gz root@192.168.219.144:/root/
root@192.168.219.144's password:
kubekey.tar.gz                                                                                                                                                             100%   97MB  42.9MB/s   00:02
[root@localhost ~]#

Copier le Code

Afficher les informations du fichier pour le nouveau noeud de travail:


[root@localhost ~]# ll
total 112596
-rw-------. 1 root root      1247 Sep 14 11:15 anaconda-ks.cfg
-rwxr-xr-x  1 root root  13668116 Sep 14 11:49 kk
-rw-r--r--  1 root root 101624288 Sep 14 11:54 kubekey.tar.gz
[root@localhost ~]#


Décompresser:

[root@localhost ~]# tar -xzvf kubekey.tar.gz kubekey
kubekey/
kubekey/v1.20.4/
kubekey/v1.20.4/amd64/
kubekey/v1.20.4/amd64/kubeadm
kubekey/v1.20.4/amd64/kubelet
kubekey/v1.20.4/amd64/kubectl
kubekey/v1.20.4/amd64/helm
kubekey/v1.20.4/amd64/cni-plugins-linux-amd64-v0.8.6.tgz
kubekey/config-localhost.localdomain.cluster.local
kubekey/network-plugin.yaml
[root@localhost ~]# ll
total 112596
-rw-------. 1 root root      1247 Sep 14 11:15 anaconda-ks.cfg
-rwxr-xr-x  1 root root  13668116 Sep 14 11:49 kk
drwxr-xr-x  3 root root        98 Sep 13 16:57 kubekey
-rw-r--r--  1 root root 101624288 Sep 14 11:54 kubekey.tar.gz
[root@localhost ~]# cd kubekey
[root@localhost kubekey]# ll
total 192
-rw-r--r-- 1 root root   5583 Sep 13 17:36 config-localhost.localdomain.cluster.local
-rw-r--r-- 1 root root 187179 Sep 13 17:36 network-plugin.yaml
drwxr-xr-x 3 root root     19 Sep 13 16:26 v1.20.4
[root@localhost kubekey]#

Copier le Code

2.1.5 Ajouter une étape de noeud de travail

Étapes1. InMasterUtilisé sur le noeud KubeKey Récupérer les informations du cluster .

PS:L'ordre ci - dessus note queMaster Opération sur le noeud

  1. Utiliser KubeKey Récupérer les informations du cluster .La commande suivante crée un profil (sample.yaml).

    [root@localhost ~]#  ./kk create config --from-cluster
    Notice: /root/sample.yaml has been created. Some parameters need to be filled in by yourself, please complete it.
    Copier le Code

    Remarques

    Si vous avez déjà un profil sur votre machine,Vous pouvez sauter cette étape.Par exemple,Pour ajouter un noeud à KubeKey Cluster Multi - noeuds défini ,Si vous n'avez pas supprimé le cluster,Vous pouvez toujours avoir ce profil.

  2. Dans le profil,Placer les informations du nouveau noeud dans hosts Et roleGroups En dessous..Cet exemple ajoute deux nouveaux noeuds(C'est - à - dire: node1 ).Ici. master1  Est un noeud existant .

  • 192.168.219.143 - Oui.master
  • 192.168.219.144 - Oui.node1

image.png

ModifierNodeNom d'hôte du noeud:

[root@localhost ~]# hostnamectl ``set``-hostname node1
Copier le Code

Modifier le fichiersample.yaml

apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:
  name: sample
spec:
  hosts: 
  # You should complete the ssh information of the hosts
  - {name: localhost.localdomain.cluster.local, address: 192.168.219.143, internalAddress: 192.168.219.143}
  - {name: node1, address: 192.168.219.144, internalAddress: 192.168.219.144, user: root, password: 123456}
  roleGroups:
    etcd:
    - localhost.localdomain.cluster.local
    master:
    - localhost.localdomain.cluster.local
    worker:
    - localhost.localdomain.cluster.local
    - node1
  controlPlaneEndpoint:
    # If loadbalancer was used, 'address' should be set to loadbalancer's ip.
    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.20.4
    clusterName: cluster.local
    proxyMode: ipvs
    masqueradeAll: false
    maxPods: 110
    nodeCidrMaskSize: 24
  network:
    plugin: calico
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
  registry:
    privateRegistry: ""

Copier le Code

Note de modification du fichier :

image.png

  • PrincipalmasterSi le nom d'hôte est déjà défini, Ne le modifiez pas. ,Il est donc préférable de le modifier dès qu'il est ouvert
  • Principaledct La configuration doit également être spécifiée ,Hôte sur le noeud maître utilisé(Bien sûr, vous pouvez les classer séparément aprèsetcdHôte de)
Étapes2. Exécuter la commande suivante:
[root@localhost ~]# ./kk add nodes -f sample.yaml
+-------------------------------------+------+------+---------+----------+-------+-------+-----------+---------+------------+-------------+------------------+--------------+
| name                                | sudo | curl | openssl | ebtables | socat | ipset | conntrack | docker  | nfs client | ceph client | glusterfs client | time         |
+-------------------------------------+------+------+---------+----------+-------+-------+-----------+---------+------------+-------------+------------------+--------------+
| node1                               | y    | y    | y       | y        |       | y     |           |         |            |             |                  | CST 12:36:43 |
| localhost.localdomain.cluster.local | y    | y    | y       | y        | y     | y     | y         | 20.10.8 |            |             |                  | CST 12:31:12 |
+-------------------------------------+------+------+---------+----------+-------+-------+-----------+---------+------------+-------------+------------------+--------------+
node1: conntrack is required.

Copier le Code

Et puis, encore une fois,:

[root@localhost ~]# ./kk add nodes -f sample.yaml
Copier le Code

Les résultats sont présentés ci - dessous. :DirectyesC'est tout.:

image.png

image.png

image.png

Étapes3. En attente de l'installation du noeud de travail:
Il est recommandé ici que les noeuds de travail soient installés directementDocker,Si jekkInstallation, Ça va être un peu lent. ! J'ai besoin de patience. !
Copier le Code

PS:Si ça ne marche pas depuis longtemps,Terminez et exécutez à nouveau!!!

INFO[13:58:51 CST] Joining nodes to cluster
[node1 192.168.219.144] MSG:
[preflight] Running pre-flight checks
        [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.8. Latest validated version: 19.03
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
W0914 14:04:24.425611   18613 utils.go:69] The recommended value for "clusterDNS" in "KubeletConfiguration" is: [10.233.0.10]; the provided value is: [169.254.25.10]
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
[node1 192.168.219.144] MSG:
node/node1 labeled
INFO[13:59:09 CST] Congratulations! Scaling cluster is successful.
[root@localhost ~]#

Copier le Code

Après avoir posé la question ci - dessus, Voir le noeud ajouté avec succès!!

image.png

Étapes4. Afficher les informations du noeud :

image.png


Ce qui précède n'est qu'une combinaison de besoins réels,Prendre des notes pratiques sur l'apprentissage!En cas d'erreur d'écriture!Les critiques sont les bienvenues.!Merci, les gars.!

Fin

END

Jane Book:www.jianshu.com/u/d6960089b…

Nuggets:juejin.cn/user/296393…

Numéro public:Recherche Wechat【Un pot de vin de Wolfberry pour faire du thé.】

Xiao Zhong. | Texte 【Bienvenue à apprendre et à communiquer ensemble】| QQ:308711822

版权声明
本文为[Xiao Zhong.]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/09/20210914164725499g.html

Scroll to Top