Teknologian jakaminen

k8s-klusterin offline-käyttöönotto

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

K8s offline-käyttöönotto

ympäristöön

Lisää kuvan kuvaus tähän

Kohde

k8s offline-käyttöönotto

askel

Ota telakka käyttöön

Katso lisätietoja artikkelista: "Telakointiaseman offline-asennus ja taustaprojektien offline-pakkaus"
https://blog.csdn.net/qq_45371023/article/details/140279746?spm=1001.2014.3001.5501
Kaikki käytetyt tiedostot ovat osoitteessa:
Linkki: https://pan.baidu.com/s/10cb-dXkgdShdjPEBCyvTrw?pwd=fpuy
Poistokoodi: fpuy

Asenna cri_dockerd

1. Asenna cri_dockerd

rpm -ivh cri-dockerd-0.3.9-3.el8.x86_64.rpm
Lisää kuvan kuvaus tähän

2. Lataa järjestelmän demoni uudelleen → Aseta cri-dockerd käynnistymään automaattisesti → Käynnistä cri-dockerd

Lataa järjestelmä daemon uudelleen

sudo systemctl daemon-reload
  • 1

Aseta cri-dockerd käynnistymään automaattisesti

sudo systemctl enable cri-docker.socket cri-docker
  • 1

Aloita cri-dockerd

sudo systemctl start cri-docker.socket cri-docker

sudo systemctl status cri-docker.socket

sudo systemctl status cri-docker
  • 1
  • 2
  • 3
  • 4
  • 5

Lisää kuvan kuvaus tähän

Ongelma: cri-dockerin käynnistäminen epäonnistui

Lisää kuvan kuvaus tähän

mitata:

Tapa 1: systemctl käynnistä telakka uudelleen # Käynnistä telakointiasema uudelleen

Tapa 2: Poista Dockerin asennus ja asenna se uudelleen ja suorita sitten yllä olevat vaiheet uudelleen

*Asenna Kubernetes

Asenna kubectl

1. Asenna kubectl

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  • 1

2. Tarkista, onko asennus valmis

kubectl version --client
  • 1

Lisää kuvan kuvaus tähän

Asenna kubeadm

3. Avaa portti tai sulje palomuuri (varmistaaksesi sujuvan asennuksen)

Avaa portti (pilvipalvelin)

Avaa portti 6443

sudo firewall-cmd --zone=public --add-port=6443/tcp --permanent
  • 1

Lataa palomuuri uudelleen

sudo firewall-cmd --reload
  • 1

Näytä kaikki avoimet portit

sudo firewall-cmd --zone=public --list-ports
  • 1

Tai sammuta palomuuri (virtuaalinen kone)

Sammuta palomuuri

sudo systemctl stop firewalld
  • 1

Poista palomuurin automaattinen käynnistys käytöstä

sudo systemctl disable firewalld
  • 1

4. Poista SELinux käytöstä (varmista, että säilö voi käyttää järjestelmäresursseja)

sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
  • 1
  • 2

5. Asenna kubeadm, kubelet ja kubectl

Lataa asianmukainen offline-asennuspaketti rpm-muodossa, joka löytyy hakemistosta 3_yum_package. Käytä komentoa asentaaksesi kaikki hakemiston rpm-asennuspaketit.

cd 3_yum_package && rpm -ivh *.rpm
  • 1

Lisää kuvan kuvaus tähän

6. Aseta kubelet käynnistymään automaattisesti

sudo systemctl enable --now kubelet
  • 1

Lisää kuvan kuvaus tähän

*Ota k8s-klusteri käyttöön

Kun olet suorittanut yllä olevat vaiheet, sinulla on seuraava ympäristö

·Kaksi palvelinta tai virtuaalikonetta, joilla on eri IP-osoite, voivat olla yhteydessä toisiinsa ja ylläpitää LAN-tilaa. IP-osoite on 192.168..34 ja 192.168..35

·Säilön ajonaika (Docker+cri_dockerd) on asennettu molemmille palvelimille, ja kubernetes-komponentit kubectl, kubeadm ja kubelet on asennettu.

Ympäristön valmistelu

7. Sulje sivutusosio. Tämä on jaettu väliaikaiseen sammutukseen ja pysyvään sammutukseen, koska se kytketään päälle ja pois päältä usein.

Sulje swap-osio väliaikaisesti

swapoff -a
  • 1

Voit sulkea swap-osion pysyvästi kommentoimalla riviä, joka sisältää swapin fstab:ssa.

vi /etc/fstab
  • 1

# /dev/mapper/centos-swap swap-swap-oletusarvot 0 0

Uudelleenkäynnistys saattaa muuttaa cri-dockerin tilan. En ole valinnut uudelleenkäynnistystä cri-dockerd ja käynnistä sitten cri-dockerd, jotta cri-dockerd-tila on normaali

käynnistä uudelleen

8. Asenna runc k8s-käyttöympäristöksi

Asenna runc

sudo install -m 755 runc.amd64 /usr/local/bin/runc
  • 1

# Tarkista, onko asennus onnistunut

runc -v
  • 1

Lisää kuvan kuvaus tähän

9. Docker ja cri-docker määrittävät kotimaisen kuvankiihdytyksen (Koska seuraavien tässä kansiossa käytettävien ohjelmistopakettien nimillä on peiliosoitteet, on suositeltavaa määrittää vastaava peilikiihdytys jopa lähiverkossa, jotta kubectl ei vaadi Internetiä hakemaan ohjelmistopaketteja ja jättäisi huomioimatta paikallisen peilin. asennus on valmis.

sudo tee /etc/docker/daemon.json <<-'EOF'

{

 "registry-mirrors": ["https://tsvqojsz.mirror.aliyuncs.com"]

}

EOF

# 找到第10行

vi /usr/lib/systemd/system/cri-docker.service

# 修改为ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Käynnistä Dockerin osat uudelleen

systemctl daemon-reload && systemctl restart docker cri-docker.socket cri-docker
  • 1

# Tarkista Docker-komponentin tila

systemctl status docker cir-docker.socket cri-docker
  • 1

10. Tarkista isäntänimi ja isännät

pääsolmu

isäntänimi on k8s-master

vi /etc/hostname
  • 1

Lisää verkkotunnuksen nimikartoitus

echo "192.168.**.35 k8s-slave01">> /etc/hosts
  • 1

Muut solmut

isäntänimi为k8s-slave01

vi /etc/hostname
  • 1

Lisää verkkotunnuksen nimikartoitus

echo "192.168.**.34 k8s-master" >> /etc/hosts
  • 1

11. Lähetä IPv4 eteenpäin ja anna iptablesin nähdä siltavirta

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf

overlay

br_netfilter

EOF

 

sudo modprobe overlay

sudo modprobe br_netfilter
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

Aseta vaaditut sysctl-parametrit, jotka säilyvät uudelleenkäynnistyksen jälkeen

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.ipv4.ip_forward          = 1

EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

#Käytä sysctl-parametreja käynnistämättä uudelleen

sudo sysctl --system

 

lsmod | grep br_netfilter

lsmod | grep overlay

 

sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

# Jos iptables-virheilmoitusta kehotetaan edelleen käynnistämisen aikana, suorita

echo "1">/proc/sys/net/bridge/bridge-nf-call-iptables

echo "1">/proc/sys/net/ipv4/ip_forward
  • 1
  • 2
  • 3

Alusta ohjaustason solmu/isäntä

12. Alusta pääsolmu

Ennen alustusta sinun on hankittava alustamiseen tarvittava Docker-kuva kubeadm-asetuskuvien kautta:

Lisää kuvan kuvaus tähän

Asenna Image Docker load -i **.tar

Asiaankuuluvat kuvatiedostot ovat olemassa 5_kubeadm-imagesissa.

Suorita alustus:

kubeadm init --node-name=k8s-master list--image-repository=registry.aliyuncs.com/google_containers --cri-socket=unix:///var/run/cri-dockerd.sock --apiserver-advertise-address=192.168.**.34 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
  • 1

–image-repository=registry.aliyuncs.com/google_containers # Korvaa ladattu säilön kuvalähde Alibaba Cloudilla. Muuten kuvaa ei voida vetää alas verkkosyistä ja suoritus epäonnistuu.

–cri-socket=unix:///var/run/cri-dockerd.sock # Tämä on määritetty säilön suoritusaika, koska Containd on myös yksi Dockerin osista, kun Kubernetes ladataan havaitsee, että on olemassa useita säilön ajonaikaisia ​​ympäristöjä, sen on valittava yksi manuaalisesti. Täällä voidaan myös nähdä, että containerd on itse asiassa paljon kevyempi kuin Docker.

–apiserver-advertise-address=192.168.56.50 # Aseta API-palvelimen lähetysosoite Valitse tästä paikallinen IPv4-osoite, jos et halua, että API-PALVELIN asetetaan muihin solmuihin.

–pod-network-cidr=10.244.0.0/16 # Määritä IP-osoitealue, jota pod-verkko voi käyttää. Jos et ole vielä varma, voit ohittaa sen ja käyttää tätä arvoa.

–service-cidr=10.96.0.0/12 # Määritä ylimääräinen IP-osoitesegmentti palvelun virtuaaliselle IP-osoitteelle Jos et ole vielä varma, voit käyttää tätä arvoa riippumatta.

Ongelma: cordns:v1.10.1 tarkistusta ei ole olemassa, itse asiassa cordns:v1.10.1 on jo olemassa, mutta se on cordns:1.10.1.

Lisää kuvan kuvaus tähän

Toimenpiteet: Muokkaa narujen merkintää.

docker tag registry.aliyuncs.com/google_containers/coredns:1.10.1 registry.aliyuncs.com/google_containers/coredns:v1.10.1
  • 1

Suorita alustuskomento uudelleen

Lisää kuvan kuvaus tähän

Tallenna alla kubeadm-liitoksen tiedot, jotka vaaditaan solmuliitokseen. Yllä olevaan esimerkkiin liittyvät tiedot ovat:

kubeadm join 192.168.51.34:6443 --token 1qtv3k.p8tfvdcds6x5ichf 

​    --discovery-token-ca-cert-hash sha256:90afb5751086aabf7ac90d9e77a946eb768d47ffaaead62243264641954a5e26
  • 1
  • 2
  • 3

Jos unohdat, voit käyttää kubeadm-merkkiluetteloa kyselyyn. Token on olemassa 24 tuntia, luoda kubeadm-tunnus uudelleen Create --print-join-command ja poistaa sen käyttämällä kubeadm-merkkien poistotunnusta.

Ei-root-käyttäjät, suorita

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 1
  • 2
  • 3
  • 4
  • 5

Pääkäyttäjä suorittaa suoraan

Se tulee voimaan väliaikaisesti ja lakkaa olemasta uudelleenkäynnistyksen jälkeen.

export KUBECONFIG=/etc/kubernetes/admin.conf 
  • 1

Se tulee voimaan pysyvästi Tätä komentoa ei tarvitse suorittaa uudelleen, kun kubeadm reset ja init on suoritettu uudelleen.

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile 
  • 1

Kun olet suorittanut pysyvän tehokkaan komennon, sinun on hankittava se, jotta se olisi tehokas.

source ~/.bash_profile
  • 1

Tarkista, onko konfiguraatio tehokas

echo $KUBECONFIG 

/etc/kubernetes/admin.conf
  • 1
  • 2
  • 3

13. Asenna ja määritä verkkolaajennukset

Flanellia käytetään tässä lataamaan ja lähettämään kube-flannel.yml-tiedosto palvelimelle.

Lataa asianmukainen kuva palvelimelle asennusta varten. kube-flannel.yml ja kuvatiedostot ovat tiedostossa 6_kube-flanel.

Pyydä verkkokorttia

ifconfig

Lisää kuvan kuvaus tähän

kube-flannel.yml etsii oletuksena enp1s0-verkkokorttia. Tässä esimerkissä 34-verkkokortti on enp1s0, eikä sitä tarvitse muuttaa.

//Muokkaa kube-flannel.yml arvoa 35 ja lisää –iface=enp0s3 määrittääksesi (enp0s3 tässä on IP-osoitetta vastaava verkkokortti, kuten yllä olevan laatikon osa). Parametrien paikat ovat seuraavat:

container:

  ......

  command:

  - /opt/bin/flanneld

  arg:

  - --ip-masq

  - --kube-subnet-mgr

  - --iface=enp4s0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Flanelliverkkolaajennuksen määrittäminen Kubernetesille

kubectl apply -f /data/k8s/6_kube-flannel/kube-flannel.yml
  • 1

Lisää kuvan kuvaus tähän

cat /run/flannel/subnet.env
  • 1

# Jos tällaista tiedostoa tai kansiota ei ole, se on luotava manuaalisesti. Sisältö on sama kuin alla.

FLANNEL_NETWORK=10.244.0.0/16

FLANNEL_SUBNET=10.244.0.1/24

FLANNEL_MTU=1450

FLANNEL_IPMASQ=true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Solmusolmu liittyy Masteriin

14. Solmusolmu liittyy Masteriin

14.1. Kopioi /etc/kubernetes/admin.conf pääsolmukoneesta orjasolmukoneeseen

scp /etc/kubernetes/admin.conf 192.168.56.51:/etc/kubernetes/
  • 1

# Muista lisätä admin.conf ympäristömuuttujaan. Käytä sitä suoraan täällä, jotta se tulee voimaan pysyvästi.

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

source ~/.bash_profile
  • 1
  • 2
  • 3

Jos kopioinnissa ilmenee ongelmia:

ECDSA-isäntäavain numerolle 192.168.55.187 on muuttunut ja olet pyytänyt tiukkaa tarkistusta. Isäntäavaimen vahvistus epäonnistui.

Suorita seuraavat korjauslausekkeet

ssh-keygen -R 192.168.55.187
  • 1

14.2 Suorita liitoskomento (kun pääsolmun alustus on onnistunut, liitoskomento annetaan)

Esimerkiksi:

kubeadm join 5e26 --cri-socket unix:///var/run/cri-dockerd.sock

Lisää kuvan kuvaus tähän

14.3 Suorita kubectl get nodes

Lisää kuvan kuvaus tähän

K8s-klusteri otettiin käyttöön onnistuneesti! ! !

kysymys

Kysymys yksi

kubectl get solmut

Lisää kuvan kuvaus tähän

Toimenpiteet: Tarkista, onko swap suljettu, avaako palomuuri portin 6443

Sulje vaihto

Lisää kuvan kuvaus tähän

Sammuta palomuuri väliaikaisesti

Lisää kuvan kuvaus tähän

menestys

Lisää kuvan kuvaus tähän

Kysymys 2

kubectl get solmut

Kun olet lisännyt k8s-solmun klusteriin, tarkista, että solmun tila on NotReady.

Lisää kuvan kuvaus tähän

mitata:

systemctl restart kubelet.service

systemctl restart docker.service
  • 1
  • 2
  • 3

Käynnistä kubelet ja docker uudelleen

Lisää kuvan kuvaus tähän

Kolmas kysymys

kubeadm join a5e26 --cri-socket unix:///var/run/cri-dockerd.sock

Alustusaikakatkaisu tapahtuu, kun alisolmuja lisätään k8s-klusteriin.

Lisää kuvan kuvaus tähän
mitata:

kubeadm reset -f --cri-socket unix:///var/run/cri-dockerd.sock
  • 1

Lisää kuvan kuvaus tähän

menestys

Lisää kuvan kuvaus tähän

Lisää kuvan kuvaus tähän

Kysymys 4

Kopioi /etc/kubernetes/admin.conf pääsolmukoneesta orjasolmukoneeseen

scp /etc/kubernetes/admin.conf 192.168.55.187:/etc/kubernetes/

Jos tiedoston kopioiminen epäonnistuu, virheilmoitus on seuraava:

ECDSA-isäntäavain numerolle 192.168.55.187 on muuttunut ja olet pyytänyt tiukkaa tarkistusta.

Isäntäavaimen vahvistus epäonnistui.

Suorita seuraavat korjauslausekkeet

ssh-keygen -R 192.168.55.187
  • 1

Nopea poistaminen

kubectl delete node k8s-slave01
kubectl delete node k8s-slave02
kubectl delete node k8s-master
  • 1
  • 2
  • 3

orjasolmu

rm -rf /etc/kubernetes/*
kubeadm reset --cri-socket unix:///var/run/cri-dockerd.sock
  • 1
  • 2

pääsolmu

rm -rf /etc/kubernetes/*
rm -rf ~/.kube/*
rm -rf /var/lib/etcd/*
kubeadm reset -f --cri-socket unix:///var/run/cri-dockerd.sock
  • 1
  • 2
  • 3
  • 4

Tarvittaessa alusta k8s-klusteri uudelleen.

kubeadm init --node-name=k8s-master --image-repository=registry.aliyuncs.com/google_containers --cri-socket=unix:///var/run/cri-dockerd.sock --apiserver-advertise-address=192.168.51.34 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
  • 1

pääsolmu

kubectl apply -f /data/k8s/6_kube-flannel/kube-flannel.yml
kubectl get pod -A
  • 1
  • 2

pääsolmu

scp /etc/kubernetes/admin.conf 192.168.51.35:/etc/kubernetes/
scp /etc/kubernetes/admin.conf 192.168.51.36:/etc/kubernetes/
  • 1
  • 2

orjasolmu

kubeadm join 192.168.51.34:6443 --token 1k9kdy.dvn2qbtd7rjar1ly 
       --discovery-token-ca-cert-hash sha256:ff90d8ed41ae1902a839194f179a1c3ba8374a5197ea3111e10e5ca1c09fa442 --cri-socket unix:///var/run/cri-dockerd.sock
  • 1
  • 2
kubectl get pod -A
kubectl get nodes
  • 1
  • 2