2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
K8s offline-käyttöönotto
k8s offline-käyttöönotto
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
1. Asenna cri_dockerd
rpm -ivh cri-dockerd-0.3.9-3.el8.x86_64.rpm
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
Aseta cri-dockerd käynnistymään automaattisesti
sudo systemctl enable cri-docker.socket cri-docker
Aloita cri-dockerd
sudo systemctl start cri-docker.socket cri-docker
sudo systemctl status cri-docker.socket
sudo systemctl status cri-docker
Ongelma: cri-dockerin käynnistäminen epäonnistui
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
1. Asenna kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
2. Tarkista, onko asennus valmis
kubectl version --client
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
Lataa palomuuri uudelleen
sudo firewall-cmd --reload
Näytä kaikki avoimet portit
sudo firewall-cmd --zone=public --list-ports
Tai sammuta palomuuri (virtuaalinen kone)
Sammuta palomuuri
sudo systemctl stop firewalld
Poista palomuurin automaattinen käynnistys käytöstä
sudo systemctl disable firewalld
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
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
6. Aseta kubelet käynnistymään automaattisesti
sudo systemctl enable --now kubelet
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.
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
Voit sulkea swap-osion pysyvästi kommentoimalla riviä, joka sisältää swapin fstab:ssa.
vi /etc/fstab
# /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
# Tarkista, onko asennus onnistunut
runc -v
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
Käynnistä Dockerin osat uudelleen
systemctl daemon-reload && systemctl restart docker cri-docker.socket cri-docker
# Tarkista Docker-komponentin tila
systemctl status docker cir-docker.socket cri-docker
10. Tarkista isäntänimi ja isännät
pääsolmu
isäntänimi on k8s-master
vi /etc/hostname
Lisää verkkotunnuksen nimikartoitus
echo "192.168.**.35 k8s-slave01">> /etc/hosts
Muut solmut
isäntänimi为k8s-slave01
vi /etc/hostname
Lisää verkkotunnuksen nimikartoitus
echo "192.168.**.34 k8s-master" >> /etc/hosts
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
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
#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
# 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
12. Alusta pääsolmu
Ennen alustusta sinun on hankittava alustamiseen tarvittava Docker-kuva kubeadm-asetuskuvien kautta:
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
–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.
Toimenpiteet: Muokkaa narujen merkintää.
docker tag registry.aliyuncs.com/google_containers/coredns:1.10.1 registry.aliyuncs.com/google_containers/coredns:v1.10.1
Suorita alustuskomento uudelleen
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
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
Pääkäyttäjä suorittaa suoraan
Se tulee voimaan väliaikaisesti ja lakkaa olemasta uudelleenkäynnistyksen jälkeen.
export KUBECONFIG=/etc/kubernetes/admin.conf
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
Kun olet suorittanut pysyvän tehokkaan komennon, sinun on hankittava se, jotta se olisi tehokas.
source ~/.bash_profile
Tarkista, onko konfiguraatio tehokas
echo $KUBECONFIG
/etc/kubernetes/admin.conf
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
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
Flanelliverkkolaajennuksen määrittäminen Kubernetesille
kubectl apply -f /data/k8s/6_kube-flannel/kube-flannel.yml
cat /run/flannel/subnet.env
# 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
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/
# 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
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
14.2 Suorita liitoskomento (kun pääsolmun alustus on onnistunut, liitoskomento annetaan)
Esimerkiksi:
kubeadm join 5e26 --cri-socket unix:///var/run/cri-dockerd.sock
14.3 Suorita kubectl get nodes
K8s-klusteri otettiin käyttöön onnistuneesti! ! !
kubectl get solmut
Toimenpiteet: Tarkista, onko swap suljettu, avaako palomuuri portin 6443
Sulje vaihto
Sammuta palomuuri väliaikaisesti
menestys
kubectl get solmut
Kun olet lisännyt k8s-solmun klusteriin, tarkista, että solmun tila on NotReady.
mitata:
systemctl restart kubelet.service
systemctl restart docker.service
Käynnistä kubelet ja docker uudelleen
kubeadm join a5e26 --cri-socket unix:///var/run/cri-dockerd.sock
Alustusaikakatkaisu tapahtuu, kun alisolmuja lisätään k8s-klusteriin.
mitata:
kubeadm reset -f --cri-socket unix:///var/run/cri-dockerd.sock
menestys
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
kubectl delete node k8s-slave01
kubectl delete node k8s-slave02
kubectl delete node k8s-master
orjasolmu
rm -rf /etc/kubernetes/*
kubeadm reset --cri-socket unix:///var/run/cri-dockerd.sock
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
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
pääsolmu
kubectl apply -f /data/k8s/6_kube-flannel/kube-flannel.yml
kubectl get pod -A
pääsolmu
scp /etc/kubernetes/admin.conf 192.168.51.35:/etc/kubernetes/
scp /etc/kubernetes/admin.conf 192.168.51.36:/etc/kubernetes/
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
kubectl get pod -A
kubectl get nodes