亚洲国产成人,色呦呦内射午夜,无码一级片,无码人妻少妇色欲AV一区二区

<samp id="jg8hh"></samp>

<p id="jg8hh"></p><delect id="jg8hh"><em id="jg8hh"><blockquote id="jg8hh"></blockquote></em></delect><acronym id="jg8hh"><dd id="jg8hh"></dd></acronym><button id="jg8hh"><dd id="jg8hh"><acronym id="jg8hh"></acronym></dd></button><samp id="jg8hh"><em id="jg8hh"><blockquote id="jg8hh"></blockquote></em></samp>

<p id="jg8hh"></p>

<samp id="jg8hh"><legend id="jg8hh"></legend></samp>
<samp id="jg8hh"><legend id="jg8hh"><samp id="jg8hh"></samp></legend></samp>

<samp id="jg8hh"></samp>

<p id="jg8hh"></p><acronym id="jg8hh"></acronym><p id="jg8hh"><dd id="jg8hh"><acronym id="jg8hh"></acronym></dd></p><p id="jg8hh"></p>

<p id="jg8hh"></p><delect id="jg8hh"><legend id="jg8hh"><var id="jg8hh"></var></legend></delect><button id="jg8hh"><listing id="jg8hh"><i id="jg8hh"></i></listing></button>
<delect id="jg8hh"><legend id="jg8hh"><var id="jg8hh"></var></legend></delect>

k8s高可用集群架構(gòu)(快速搭建k8s集群)

發(fā)布時(shí)間:2023-11-08
本文主要介紹k8s高可用性集群架構(gòu)(快速構(gòu)建k8s集群),下面一起看看k8s高可用性集群架構(gòu)(快速構(gòu)建k8s集群)相關(guān)資訊。
文章轉(zhuǎn)載自:
背景kubernetes 1.24的新特性從kubelet中移除了dockershim。由于1.20版本被棄用,dockershim組件最終在1.24的kubelet中被刪除。從1.24開始,需要使用其他支持的運(yùn)行時(shí)選項(xiàng)(如containerd或cri-o);如果選擇docker引擎作為運(yùn)行時(shí),需要使用cri-dockerd。
重要說(shuō)明:對(duì)于kubelet和containerd,請(qǐng)?jiān)谏?jí)到1.24之前確認(rèn)containerd版本。
#以下容器已經(jīng)或?qū)⒃谶\(yùn)行時(shí)與kubernetes 1.24完全兼容:contained v1.6.4及更高版本,v1.5.11及更高版本cri-o 1.24及更高版本。如果cni插件沒有升級(jí)和/或cni配置版本沒有在cni配置文件中說(shuō)明,containerd v1.6.0-v1.6.3版本將導(dǎo)致pod cni網(wǎng)絡(luò)。containerd團(tuán)隊(duì)報(bào)告說(shuō),這些問(wèn)題已經(jīng)在containerd v1.6.4中得到解決。;t升級(jí)cni插件和/或聲明cni配置版本,您可能會(huì)遇到錯(cuò)誤,如不兼容的cni版本或無(wú)法刪除沙箱的網(wǎng)絡(luò)。
默認(rèn)情況下,kubernetes 1.24 beta apis的新功能是關(guān)閉的。默認(rèn)情況下,集群中不會(huì)啟用新的測(cè)試版api。然而,在1.24中,默認(rèn)情況下,所有原始測(cè)試版api及其新版本都將繼續(xù)啟用。
openapi v3kubernetes 1.24開始為api s openapi v3發(fā)布格式。
存儲(chǔ)容量和存儲(chǔ)卷擴(kuò)展都?xì)g迎存儲(chǔ)容量跟蹤的常用版本。當(dāng)前可用的存儲(chǔ)容量通過(guò)csistoragecapacity對(duì)象公開,隨后綁定的csi存儲(chǔ)卷的pod被調(diào)度和增強(qiáng)。存儲(chǔ)卷擴(kuò)展增加了重新調(diào)整現(xiàn)有持久卷的功能。
非優(yōu)先優(yōu)先迎來(lái)了穩(wěn)定版本。該函數(shù)為priorityclasses添加了一個(gè)新選項(xiàng),可以打開或關(guān)閉pod搶占機(jī)制。
存儲(chǔ)插件遷移目前kubernetes開發(fā)團(tuán)隊(duì)正在遷移樹中的存儲(chǔ)插件,希望在保持原有api正常效果的同時(shí)實(shí)現(xiàn)csi插件。azure磁盤和openstack cinder等插件已經(jīng)遷移。
grpc探測(cè)升級(jí)到beta在1.24版本中,grpc探測(cè)功能已經(jīng)進(jìn)入beta階段,默認(rèn)啟用?,F(xiàn)在,您可以在kubernetes中為您的grpc應(yīng)用程序原生配置啟動(dòng)、活動(dòng)和就緒檢測(cè),并且無(wú)需披露http業(yè)務(wù)戰(zhàn)或使用額外的可執(zhí)行文件。
kubelet證書提供程序升級(jí)到測(cè)試版。kubernetes版本中的alpha版本中首次出現(xiàn)的kubelet鏡像證書提供程序現(xiàn)在已經(jīng)升級(jí)到了beta版本。現(xiàn)在,kubelet將使用exec插件來(lái)動(dòng)態(tài)檢索容器鏡像注冊(cè)表的憑證,而不是將憑證存儲(chǔ)在節(jié)點(diǎn)文件系統(tǒng)上。
避免服務(wù)的ip分配。kubernetes 1.24引入了一個(gè)新的可選功能,允許用戶為服務(wù)的靜態(tài)ip分配地址保留一個(gè)軟范圍。通過(guò)手動(dòng)啟用此功能,群集將自動(dòng)從您指定的服務(wù)ip池中獲取地址,從而降低風(fēng)險(xiǎn)。
也就是說(shuō),服務(wù)的clusterip可以有以下幾種分配動(dòng)態(tài)分配,即集群會(huì)在配置的服務(wù)ip范圍內(nèi)自動(dòng)選擇一個(gè)空閑的ip。靜態(tài)分配意味著用戶需要在配置的服務(wù)ip范圍內(nèi)指定一個(gè)ip。
服務(wù)群集ip是唯一的;因此,如果您嘗試使用分配的clusterip創(chuàng)建服務(wù),將會(huì)返回錯(cuò)誤結(jié)果。
環(huán)境準(zhǔn)備本地現(xiàn)有的kubernetes 1.18環(huán)境,然后初始化環(huán)境。
# kubernetes當(dāng)前版本[root @ k8s-01 ~]# kubectl get nodename狀態(tài)角色年齡版本k8s-01 ready master 243d v 1 . 18 . 3 k8s-02 ready master 243d v 1 . 18 . 3 k8s-03 ready master 243d v 1 . 18 . 3 k8s-04 re紫琳none 243d v 1 . 18 . 3 k8s-05 ready tone 243d v 1 . 18 . 3卸載集群命令。
#建議所有服務(wù)器執(zhí)行#!/bin/bashkubeadm reset-fmodprobe-r ipiplsmodrm-rf ~/。kube/rm-rf/etc/kubernetes/rm-rf/etc/systemd/system/kube let . service . drm-rf/etc/systemd/system/kube let . service rm-rf/usr/bin/kube * rm-rf/etc/cnirm-rf/opt/cnirm-rf/var/lib/etcdyum-y remove kube adm * kube ctl * kube let * dock: 192 . 168 . 31 . 111域名apiserver.frps.cn,:。
api server . frps . cn : 6443為vipkube初始化環(huán)境-apiserver三節(jié)點(diǎn)kube-schedulet三節(jié)點(diǎn)kube-controller-manager三節(jié)點(diǎn)etcd三節(jié)點(diǎn)服務(wù)版本初始化環(huán)境需要所有節(jié)點(diǎn)執(zhí)行。
批量修改主機(jī)名,以及保密豁免。
hostnamectl set-hostname k8s01 #所有機(jī)器修改bash #刷新主機(jī)名#配置hostcat/etc/100 k8s-01192 . 168 . 31 . 101 k8s-02192 . 31 . 102 k8s-03192 . 168 . 31 . 31 . 103 k8s-04192 . 168 . 31 .wget-o/etc/yum . r-7.repocurl-o/etc/yum . repos . d/c-7.repoyum install-ye expect #分發(fā)公鑰ssh-keygen-trsa-p -f/root/。ssh/id _ rsa for iink 8s-01k 8s-02k 8s-03k 8s-04k 8s-05;do expect-c 生成ssh-copy-id -i /root/。ssh/id _ rsa . pub root @ $ i expected*是/否發(fā)送 yesr exp _ continue } *密碼*發(fā)送 123456r 出口公司繼續(xù)} *密碼*發(fā)送 123456r } } 搞定,我這里的密碼是123456,請(qǐng)根據(jù)需要修改。
所有節(jié)點(diǎn)關(guān)閉selinux、iptables和交換分區(qū)。
停止防火墻禁用防火墻。;/swap/s/(。*)$/# 1/g ;/etc/fstab setenforce 0 sed-i/selinux =。*/selinux = disabled/ ;/etc/selinux/config所有節(jié)點(diǎn)配置yum源。
curl-o/etc/yum . repos . d/c-7.repowget-o/etc/yum . r-7.repoyum clean all yum make cache新安裝的服務(wù)器可以安裝以下軟件包,可以解決99%的依賴問(wèn)題。
yum-y install gcc gcc-c make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml 2-devel libjpeg-devel libpng-devel openssh-clients openssl-de vel curl-devel bison補(bǔ)丁libmcrypt-devel libmhash-devel ncurses-devel binutils compat-libstdc-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libgccl libaio lib gcc libstdc libstdc-devel unixodbc unixodbc-devel numatl-devel glibc-headers sudo bzip2 m locate flex lrzsz sysstat lsof setup tool syst em-config-network-tui system-config-firewall-tui nt sysv ntp pv lz4 dos 2 unix x2 dos rsync dstat io top innot top mytop telnet iftop expect cmake nc gnupl ot screen xorg-x11-utils xorg-x11
#每個(gè)節(jié)點(diǎn)modprobe br _ netfilter modprobe ip _ conntrack設(shè)置上面的命令啟動(dòng),因?yàn)橹貑⒑竽K失效,下面是啟動(dòng)后自動(dòng)加載模塊的。首先,使用以下內(nèi)容創(chuàng)建一個(gè)新的/etc/rc.sysinit文件:
cat /etc/rc.sysiniteof#!/etc/sysconfig/modules/*中的/bin/bashfor文件。模塊;執(zhí)行[-x $ file] $ filedoneof,然后在/etc/sysconfig/modules/目錄中創(chuàng)建以下文件:
回聲報(bào)網(wǎng)絡(luò)過(guò)濾器/etc/sys config/modules/br _ net filter。模塊回聲 modprobe ip _ conntrack /etc/sys config/modules/ip _ conntrack . modules增加權(quán)限。
chmod 755/etc/sys config/modules/br _ netfilter . moduleschmod 755/etc/sys config/modules/ip _ conntrack . modules然后重啟,模塊就可以自動(dòng)加載了。
優(yōu)化內(nèi)核參數(shù)
catkubernetes . conf eof net . bridge . bridge-nf-call-iptables = 1 net . bridge-nf-call-ip 6 tables = 1 net . ip v4 . ip _ forward = 1vm . swap = 0 #禁止交換空間。只有當(dāng)系統(tǒng)為oom時(shí)才能使用。vm.overcommit_memory=1 #不檢查物理內(nèi)存是否足夠。vm . panic _ on _ oom = 0 # open oom fs . inotify . max _ user _ instances = 8192 fs . inotify . max _ user _ watches = 1048576 fs . file-max = 52706963 fs . nr _ open = 52706963 net . ipv6 . conf . all . disable _ ipv6 = net filter . nf _ conn track _ max = 2310720 eof cp kubernetes . conf/etc/sysctl . d/kubernetes .conf ssh root @ $ i echo 1 后面節(jié)點(diǎn)的/proc/sys/net/ip v4/ip _ forward done #根據(jù)需要修改bridge-nf,使netfilter可以過(guò)濾linux橋上的ipv4/arp/ipv6數(shù)據(jù)包。例如,在設(shè)置網(wǎng)之后。bridge . bridge-nf-call-iptables = 1,二樓的網(wǎng)橋在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)也會(huì)被iptables的轉(zhuǎn)發(fā)規(guī)則過(guò)濾。常用選項(xiàng)包括:-net。bridge . bridge-nf-call-arptables:是否在arp tables的轉(zhuǎn)發(fā)中。過(guò)濾bridge-net . bridge . bridge-nf-call-ip 6 tables的arp數(shù)據(jù)包:是否過(guò)濾ip 6 tables chain-net . bridge . bridge-nf-call-iptables:是否過(guò)濾iptables chain-net . bridge . bri edge-nf-filter-vlan-tagged:是否過(guò)濾iptables/arptables中vlan標(biāo)記的數(shù)據(jù)包。在所有節(jié)點(diǎn)上安裝ipv。
為什么用ipvs?從k8s的1.8版本開始,kube-proxy引入了ipvs模式,它基于netfilter和iptables,但是使用哈希表。因此,當(dāng)服務(wù)數(shù)量達(dá)到一定規(guī)模時(shí),哈希表查找的速度優(yōu)勢(shì)就會(huì)顯現(xiàn),從而提高服務(wù)的服務(wù)性能。ipvs依賴于nf_conntrack_ipv4內(nèi)核模塊,4.19包含了nf_conntrack,在1.13.1之前的kub測(cè)試,我就去加載nf_conntrack,用ipvs正常的cat/etc/sys config/modules/ipvs . modules of #!/bin/bashmodprobe-ip _ vsmodprobe-ip _ vs _ rrmodprobe-ip _ vs _ wrrmodprobe-ip _ vs _ shmodprobe-nf _ conntrackeofchmod 755/etc/sys config/modules/ipvs . modules bash/etc/sys config/modules/ipvs . modules lsmod | grep-e ip _ vs-e nf _ conntrack #檢查所需的內(nèi)核模塊是否已正確加載,以及所有節(jié)點(diǎn)是否已安裝ips測(cè)試結(jié)果表明,ipset模式的效率將比iptables高100倍。
對(duì)于ipvs管理,請(qǐng)?jiān)诖税惭bipvsadm。
yum install ipvsadm -y所有節(jié)點(diǎn)設(shè)置系統(tǒng)時(shí)區(qū)。
time date ctl set-time zone asia/shanghai #將當(dāng)前utc時(shí)間寫入硬件時(shí)鐘timedatectl set-local-rtc 0 #重啟系統(tǒng)時(shí)間相關(guān)服務(wù)system ctl restart r syslog system ctl restart crond升級(jí)內(nèi)核(可選)。
rpm-import -gpg-key-elrepo.orgrpm-uvh www . el repo . org/el repo-release-7.0-3 . el 7 . el repo . no arch . rpm #默認(rèn)安裝的是最新的內(nèi)核yum-enable repo = el repo-kernel install kernel-ml #修改內(nèi)核順序grub 2-set-default 0 grub 2-mkconfig-o/etc/grub 2 . cfg #使用以下命令查看默認(rèn)內(nèi)核是否啟動(dòng)指向上面安裝的內(nèi)核grubby - default-kernel#。這里的輸出應(yīng)該是我們升級(jí)后的內(nèi)核信息reboot#。您可以在所有初始化步驟后重新啟動(dòng),然后更新軟件包版本。
yum update -ycontainerd已安裝。在安裝containerd之前,我們需要先升級(jí)libseccomp。centos7中,yum下載libseccomp的版本是2.3,版本不符合我們最新的containerd的要求。我們需要下載2.4以上的。
containerd需要升級(jí)并安裝在所有節(jié)點(diǎn)上。
#卸載原[i4t @ web 01 ~]# rpm-qa | greplibsecliebseccomp-devel-2 . 3 . 1-4 . el7 . x86 _ 64 libseccomp-2 . 3 . 1-4 . el7 . x86 _ 64[i4t @ web 01 ~]# rpm。s[i4t @ web 01 ~]# rpm-e libseccomp-2 . 3 . 1-4 . -stream/baseos/. x86 _ 64/os/packages/libseccomp-2 . 5 . 1-1 . el 8 . x86 _ 64 . rpm #安裝[i4t @ web 01 ~]# rpm-ivh libseccomp-2 . 5 . 1-1.el 8 . x86 _ 64...# # # # # # # # # # # # # # # # # # # # # # # # #[100%]更新/安裝...1 :libseccomp-2 . 5 . 1-1 . el8 # # # # # # # # # # # # # # # # # # # #[100%]#查看當(dāng)前。grep libseccomplibseccomp comp-2 . 5 . 1-1 . el 8 . x86 _ 64下載并安裝contain:
對(duì)于containerd安裝,我們使用版本號(hào)1.6.1。
containerd-1.6.1-linux-amd64.tar.gz只包含container dcri-container d-cni-1 . 6 . 4-linux-amd64 . tar . gz ;的相關(guān)工具包,包括containerd和cri runc。建議下載這個(gè)包。
#下載tar.gz包#containerd工具包,包括wget echo20如cri runc-@ . com github . com/container d/container d/releases/download/v 1 . 6 . 4/cri-container d-cni-1 . 6 . 4-lin。ux-amd64.tar.gz#備選下載地址wget . frps . cn/file/kubernetes/container d/cri-container d-cni-1 . 6 . 4-linux-amd64 . tar . gz工具包文件如下。
#cri-containerd-cni將下載我們所有與containerd相關(guān)的依賴項(xiàng)[root @ k8s-01 container]# tarzxvf cri-container d-cni-1 . 6 . 4-linux-amd64 . tar . gz-c/# let直接要求它替換etc/etc/systemd/etc/systemd/system/etc/system/container d . service etc/crictl . yamletc/cni/etc/cni/net . d/etc/10-container d-net . conflistusr/usr/local/usr/local/sbin/usr/local/sbin/runcusr/local/bin/usr/local/local/bin/ctd-decoder usr/local/bin/ctd-ctr usr/localce/cloud-init/node . yaml opt/container d/cluster/gce/cloud-init/master . yaml opt/cni/opt/cni/bin/opt/cni/bin/portmapopt/cni/bin/host-local opt/cni/bin/ipvlanopt/cni/bin/host-device opt/cni/bin/vr fopt/cni/bin/bin/static opt/cni/bin/tuning opt/cni您可以通過(guò)將它們直接移動(dòng)到相應(yīng)的目錄并配置環(huán)境變量來(lái)使用它們。
如果docker通過(guò)yum安裝在我們的機(jī)器上,我們可以用下面的命令卸載它。
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-log rotary docker-log rotary docker-engine接下來(lái),我們?yōu)槊颗_(tái)服務(wù)器配置containerd。
#創(chuàng)建配置文件目錄[root @ k8s-01 ~]# mkdir/etc/container d-p #生成默認(rèn)配置文件[root @ k8s-01 ~]# container dconfig default/etc/containerd/config.toml #-config,-c該路徑可以在守護(hù)進(jìn)程啟動(dòng)時(shí)更改#配置文件的默認(rèn)路徑在/etc/container d/config . toml中,而不是默認(rèn)的暫停鏡像地址。
默認(rèn)情況下,k8s.gcr.io是的,就用我提供的阿里云鏡像倉(cāng)庫(kù)地址吧。
sed-i和;;s/k8s . gcr . io/registry . cn-beijing . aliyuncs . com/abc docker/ ;/etc/containerd/config.toml #所有節(jié)點(diǎn)更改默認(rèn)鏡像地址#我在這里用阿里云地址配置syste。md作為容器組驅(qū)動(dòng)程序
sed-i和;;s/systemdc group = false/systemdc group = true/ ;/etc/containerd/config . toml containerd官方操作手冊(cè)。
默認(rèn)的cri-containerd-cni包會(huì)包含containerd啟動(dòng)腳本,我們已經(jīng)提取到相應(yīng)的目錄下,可以直接調(diào)用啟動(dòng)。
[root @ k8s-01 ~]# system ctl enable containerd-現(xiàn)在創(chuàng)建了從/etc/systemd/system/multi-user . target . wants/container d . service到/etc/systemd/system/container d . service的符號(hào)鏈接[root @ k8s-01 ~]# system ctl status container d #檢查container d的啟動(dòng)狀態(tài)● containerd.service-contain:加載(/etc/systemd/system/container d . servic:禁用)activ:活躍(運(yùn)行)自周四2022-05-12 22 : 59 : 19 edt;3s前docs: container d . io proc: 30048 execstartpre =/sbin/modprobe overlay(code = exited,status=0/succ: 30050(contain: 24.5m cgroup:/system . slice/container d . service └─30050/usr/local/bin/container d may12 22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.153514446-04 : 00 級(jí)別=信息消息= 獲取鏡像文件系統(tǒng)路徑 /var/lib/container d/io . container d . snapshot ter . v1 . overlay fs 5月12日22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154085898-04 : 00 級(jí)別=信息消息= 開始訂閱containerd事件 ma y 12 22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154137039-04 : 00 級(jí)別=信息消息= 開始恢復(fù)狀態(tài)5月12日22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154230615-04 : 00 級(jí)別=信息消息= 啟動(dòng)事件監(jiān)視器 5月12日22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154276701-04 : 00 級(jí)別=信息消息= 開始快照同步 5月12日22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154299287-04 : 00 級(jí)別=信息消息= 啟動(dòng)默認(rèn)cni網(wǎng)絡(luò)會(huì)議同步程序5月12日22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154316094-04 : 00 級(jí)別=信息消息= 啟動(dòng)流媒體服務(wù)器 5月12日22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154675632-04 : 00 級(jí)別=信息消息=服務(wù)...address =/run/container d/container d . sock . tt rpc may 12 22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.154755704-04 : 00 級(jí)別=信息消息=服務(wù)...address =/run/container d/container d . sock may 12 22 : 59 : 19 web 01 contain:時(shí)間= 2022-05-12t 22 : 59 : 19.155220379-04 : 00 level = infomsg = 在0.027654秒內(nèi)成功引導(dǎo)ctr在我們的解壓包里。
[root@k8s-01 ~]# ctr版本cli: # ctr版本號(hào)v: v 1 . 6 . 4 r: 212 e 8 b 6 fa 2 f 44 b 9 c 21 b 2798135 fc 6 f 7 c 53 : go 1 . 17 . 9服務(wù)器: v: v 1 . 6 . 4 # contain: 212 e8 b 6 fa 2 f 44 b 9 c 21 b 2798135 fc 6 f 7 b 53 : b 376d 7 b 6-c97e-4b 39-8144-9624 a de 3ba 84 #您可以使用以下命令查看containerd版本號(hào)[root @ k8s-01 ~]# container d-version container d github.com/containerd/.包含的v 1 . 6 . 4 212 e8 b 6 fa f2 f 44 b 9 c 21 b 2798135keeplived充當(dāng)vip。
需要在主節(jié)點(diǎn)上安裝#。首先,我們?cè)谠瓉?lái)的基礎(chǔ)上增加一個(gè)主機(jī),只需要在主節(jié)點(diǎn)上執(zhí)行即可。cat/etc/hostseof 192 . 168 . 31 . 10 k8s-master-01192 . 168 . 31 . 11 k8s-master-02192 . 168 . 31 . 12 k8s-er . frps . cn安裝nginx
為了方便后面的擴(kuò)展插件,我在這里用編譯安裝nginx。
#編譯安裝nginx #安裝依賴于yum install pcre pr-devel openssl openssl-devel gcc gcc-c automake autoconflibtool mak-1 . 20 . 2 . tar . gz tar xf nginx-1.20.2.tar.gz cd nginx-1 . 20 . 2/user添加nginx-s/sbin/nologin-m ./configure-prefix =/opt/nginx/-with-pcre-with-http _ ssl _ module-with并設(shè)置啟動(dòng)cat/usr/lib/systemd/system/nginx . service of #/usr/lib/systemd/system/nginx . service[unit]。description = nginx http和反向代理服務(wù)器after = network . target sshd-keygen . service[service]type = forking environment file =/etc/sys config/sshd execstartpre =/opt/nginx/sbin/nginx/conf/nginx . conf execstart =/opt/nginx/sbin/nginx/conf/nginx/conf/nginx . conf exec reload =/opt/nginx/sbin/nginx-s reload execstop =/opt/nginx/surerestartsec = 42s[install]wanted by = multi-user . target of # boot up[root @ k8s-01 ginx-1 . 20 . 2]# system ctl enable nginx-now created symlink from/etc/systemd/system/multi-user . target . wants/nginx . service to/usr/lib/systemd/system/nginx . service . # yum安裝nginx yum安裝nginx -y #yum安裝nginx,請(qǐng)注意以下配置文件路徑:/etc/nginx/conf/conf
[root @ k8s-01 nginx-1 . 20 . 2]# ps-ef | grep nginxroot 84040 1 0 20 : 15?00 : 00 : 00 nginx:主進(jìn)程/opt/nginx/sbin/nginx-c/opt/nginx/conf/nginx . confn obody 84041 84040 0 0 20 : 15?00 : 00 : 00 nginx:工人processroot 84044 51752 0 20 : 16 pts/000 : 00 grep-color = auton ginx修改nginx配置文件。
vim nginx.conf用戶nginx nginxworker_processes自動(dòng);事件{ worker _ connections 20240使用epoll} error _ log/var/log/nginx _ error . log info;流{上游kube-servers { hash $ remote _ addr consistent;服務(wù)器k8s-master-01: 6443 weight = 5 max _ fails = 1 fail _ time out = 3s;#你可以在這里寫ip服務(wù)器k8s-master-02 : 6443 weight = 5 max _ failures = 1 fail _ time out = 3s;服務(wù)器k8s-master-03 : 6443 weight = 5 max _ fails = 1 fail _ time out = 3s;} server { listen 8443 reuseportproxy _ connect _ timeout 3s#增加超時(shí)proxy _ timeout 3000sproxy _ pass kube-servers;}} #分發(fā)到k8s-02k 8s-03do scp nginx . conf root@$i:/opt/nginx/conf/ ssh root @ $ i system ctl重啟nginx done配置keeplived。正如我們前面所說(shuō)的,高可用性方案需要一個(gè)vip用于集群的內(nèi)部訪問(wèn)。
yum install -y keepalived#在所有主節(jié)點(diǎn)上安裝修改過(guò)的配置文件。
router_id節(jié)點(diǎn)ipmcast_src_ip節(jié)點(diǎn)ipvirtual_ipaddress vip,請(qǐng)根據(jù)您ip的實(shí)際情況進(jìn)行修改。
cat/etc/keepalived/keepalived . conf eof!keepalived global _ defs的配置文件{router _ id192.168.31.10 #節(jié)點(diǎn)ip,master每個(gè)節(jié)點(diǎn)配置自己的ip } vrrp _ script chk _ nginx { script /etc/keepalived/check _ port . sh 8443 區(qū)間2重量-20}。vrrp _實(shí)例_ 1 {狀態(tài)主接口eth 0 virtual _ router _ id 251 priority 100 advert _ int 1m cast _ src _ ip 192 . 168 . 31 . 10 #節(jié)點(diǎn)ip nopreempt au考慮事項(xiàng){ auth _ typepassauth _ pass 1111111 } track _ script { chk _ nginx } virtual _ ip address { 192 . 168 . 31 . 111 # vip } } eof #編寫健康檢查腳本vim/etc/keepalived/check _ port . sh chk _ port = $ 1 if[-n chk港];然后port _ process = ` ss-lt | grep $ chk _ port | wc-l ` if[$ port _ process-eq 0];然后回聲 端口$ chk _端口未被使用,結(jié)束。 從1號(hào)出口出去檢查端口不能為空! 菲,開始保持活力
systemctlenable-now keepalived 測(cè)試 vip正常嗎?
ping vipping apiserver.frps.cn #我們的域名kubeadm安裝配置首先我們需要配置k8s-01中的kubeadm源碼。
以下kubeadm操作只需在k8s-01上進(jìn)行。
國(guó)內(nèi)來(lái)源
這里packages.cloud.google.com什么都知道,下面改成阿里云源碼。
cat eof/etc/yum . repos . d/kubernetes . repo[kubernetes]name = kubernetes base url = mirrors . aliyun . com/kubernetes/yum/repos/kubernetes-el7-x86 _ 64 enabled = 1 gpg check = 0 repo _ gpg check = 0 gpgk yum-key . gpg mirrors . aliyun . com/kubernetes/yum/doc/rpm-package-key . gpg eof官方文檔推薦來(lái)源。
cat eof | sudo tee/etc/yum . repos . d/kubernetes . repo[kubernetes]name =俱吠羅netesbaseurl = packages . cloud . google . com/yum/repos/kubernetes-el7-$ basearcnabled = 1 gpg check = 1 repo _ gpg check = 1 gpg key = packages . cloud . google . com/yum/doc/yum-key . gpgecheo 20-@ .com packages . cloud . google . com/yum/doc/rpm-package-key . gpgexclude = ku elet kube adm kubet
yum install-y kubelet-1 . 24 . 0 kube adm-1 . 24 . 0 kubectl-1 . 24 . 0-disable exclusions = kubernetes將k8s-01節(jié)點(diǎn)的kube let設(shè)置為boot:
systemctl enable - now kubelet配置kubeadm文件
這里,我們?cè)趉8s-01上配置并打印init默認(rèn)配置信息。
kubeadm config print init-defaults kubeadm-init . yaml雖然kube adm是etcd節(jié)點(diǎn)的管理工具,但請(qǐng)注意,kube adm并不打算支持此類節(jié)點(diǎn)的證書輪換或升級(jí)。長(zhǎng)期計(jì)劃是使用etcdadm作為管理工具。
因?yàn)槲乙谶@里做集群,所以請(qǐng)根據(jù)我這里的配置,根據(jù)需要進(jìn)行修改。
[root@k8s-01 ~]#貓kub: kub:-groups:-system :bootstrappers: kubeadm: d: abcdef . 0123456789 abcd: 24h 0 m0s usag:-簽名-認(rèn)證在kind: init configuration localapi: adv: 192 . 168 . 31 . 10 # k8s-01 ip地址bindport: 6443 nod: crisock: unix:///var/run/containerd/ container d . sock imagepullpolicy: if not present name : k8s-01 tains: null-apiserver: time out for controllane: 4 msopiversion: kub: 10 . 244 . 0 . 0/16 sch: { }-apiv: kubeproxy.config.k8s.io/ v1 alpha 1 kind: kub: ipvs # kube-proxy mode-kubelet.config.k8s.io/, apiv: v1 beta 1 authentication: anonymous : enabled : false webhooketchettl: 0s enabled : true x509 echo344-@.com 0s kind: kubeletconfiguration cgroupdriv: systemd # configuration cgroupdriv: { } m: { } nodestatusreportfrequency: 0s nodestatusupdatefrequency: 0s rotatecertificat: true runtimerequesttimeoute cho 34-@ . com 0s shutdowngraceperiodcriticalpods: 0s staticpodpath:/etc/kubernetes/manifests streamingconnectionidletimeout: 0s syncfrequency : 0s volumestat
[root @ k8s-01 ~]# kube adm init-config kube adm-init . yaml-dry-run正確如下。
提前拉鏡像
[root@k8s-01 ~]# kubeadm配置圖片列表-config kube adm-init . yaml k8s.gcr.io/kub:v1.24.0k8s.gcr.io/ kube-controller-manager : v 1.24 . 0k8s . gcr . io/kube-schedule : v 1.24 . 0k8s . gcr . io/kube-proxy : v 1.24 . 0k8s . gcr . io/pause:s.gcr.io/coredns/cor: d.frps.cn/file/kubernetes/image/k8s _ all _ 1.24.tar #復(fù)制到k8s-02 k8s-03 k8s-04 k8s-05中的其他節(jié)點(diǎn)給我;do scp k8s _ all _ 1.24.tar root@$i:/root/ ssh root @ $ ictr-nk8s . io ii import k8s _ all _ 1.24.tar done check。
[root @ k8s-01 ~]# ctr-n k8s . io i ls-qk8s . gcr . io/coredns/coredns: v 1 . 8 . 6k 8s . gcr . io/etc d: 3 . 5 . 3-0k8s . gcr . io/kube-api server: v 1 . 24 . 0 k8s . gcr . io/kube-controller-manager echo
kubeadm不會(huì)安裝或管理kubelet,所以kubectl需要確保他們的kubeadm和kubernetes版本匹配。如果沒有,就有版本偏差的風(fēng)險(xiǎn)。不過(guò),支持kubelet和k8s之間的小版本偏差,但kubelet的版本可能永遠(yuǎn)不會(huì)超過(guò)api服務(wù)器的版本。
#下載1.24.0 kubectl工具[root @ k8s-01 ~]# curl-lo[root @ k8s-01 ~]#/local/bin/ #檢查kubectl工具的版本號(hào)[root @ k8s-01 ~]# ku bectl version-client-output = yaml cli: builddat: 2022-05-03t 13 : 46 : 05z 編譯r: gc gitcommit: 4 ce 5a 8954017644 c 5420 bae 81d 72 b 09 b 735 c 21 f 0 gittr:清潔gitv: v 1 . 24 . 0 gov: go 1 . 18 . 1 major: 1 minor: 24 platform: linux/amd64 kustomiz: v 4 . 5 . 4 #為k8s-02 k8s-03中的i復(fù)制kubectl到其他主節(jié)點(diǎn);doscp/usr/local/bin/ku bectl root@$i:/usr/local/bin/kubectl ssh root @ $ ichmodx/usr/local/bin/ku bectl完成下一次啟動(dòng)初始化。
[root @ k8s-01 ~]# kube adm init-config kube adm-init . yaml-upload-certs初始化流程
初始化完成
記住init之后打印的token,復(fù)制kubectl的kubeconfig。kubectl的kubeconfig路徑是~/。默認(rèn)為kube/config。
由mkdir-p $ home/初始化的配置文件。kube cp-i/etc/kubernetes/admin . conf $ home/。kube/config chow $(id-u): $(id-g)$ home/。kube/config保存在配置圖中。
庫(kù)貝系統(tǒng)tem get cm kubeadm-config -o yaml接下來(lái),執(zhí)行kubectl,就可以看到node了。
[root @ k8s-01 ~]# ku bectl get nodename狀態(tài)角色年齡版本k8s-01就緒控制平面4m18s v1.24.0主節(jié)點(diǎn)配置我們已經(jīng)為所有主節(jié)點(diǎn)配置了服務(wù)。
nginxkeeplivedcontainerd接下來(lái)只需要為其他主節(jié)點(diǎn)安裝k8s組件。
cat eof/etc/yum . repos . d/kubernetes . repo[kubernetes]name = kubernetes baseurl = mirrors . aliyun . com/kubernetes/yum/repos/kubernetes-el7-x86 _ 64 enabled = 1 gpg check = 0 repo _ gpg check = 0 gpg key = mirrors . aliyun . com/kubernetes/yum/doc/yum-key . gpg mirrors . aliyun . com
yum install-y kubelet-1 . 24 . 0 kube adm-1 . 24 . 0 kubectl-1 . 24 . 0-disable exclusions = kubernetes啟動(dòng)kube let。
system ctl enable-現(xiàn)在kubeletmaster執(zhí)行節(jié)點(diǎn)添加。
kube adm join api server . frps . cn : 8443-token abcdef . 0123456789 abcdef-discovery-token-ca-cert-hash sha 256 : a54 c 17 e 514 edba 57226 f 969268227 b 749d 8 bfb 8802 ae 99112 e 08 cbcabcd 22 ae 0-控制平面-證書-密鑰f 7 b 0 eb 9 c 7c9fb04461250設(shè)置kubectl配置文件
mkdir-p $ home/。kube sudocp-i/etc/kubernetes/admin . conf $ home/。kube/config sudo chow $(id-u): $(id-g)$ home/。kube/config目前,我們的三個(gè)主節(jié)點(diǎn)已經(jīng)添加完畢。
[root @ k8s-02 ~]# kubektl get nodename status roles age版本k8s-01就緒控制平面15mv1.24.0k8s-02就緒控制平面6m25s v1.24.0k8s-03就緒控制平面14m v1.24.0node節(jié)點(diǎn)配置節(jié)點(diǎn)節(jié)點(diǎn)安裝kubeadm
cat eof/etc/yum . repos . d/kubernetes . repo[kubernetes]name = kubernetes baseurl = mirrors . aliyun . com/kubernetes/yum/repos/kubernetes-el7-x86 _ 64 enabled = 1 gpg check = 0 repo _ gpg check = 0 gpg key = mirrors . aliyun . com/kubernetes/yum/doc/yum-key . gpg mirrors . aliyun . com
yum install-y kube adm-1 . 24 . 0-disable exclusions = kubernetes add join命令。
kube adm join api server . frps . cn : 8443-token abcdef . 0123456789 abcdef-discovery-token-ca-cert-hash sha 256 :a 54 c 17 e 514 edba 57226 f 969268227 b 749d 8 bfb 8802 ae 99112 e 08 cbcabcd 22 ae 0如果后面需要添加nod,e節(jié)點(diǎn),可以到k8s-01節(jié)點(diǎn)執(zhí)行以下命令獲取token的相關(guān)信息。
[root @ k8s-01 ~]# kube adm token create-print-join-command kube adm join api server . frps . cn : 8443-token sgv cen . qf 87 ykht 9 gopqe 0d-discovery-token-ca-cert-ha shsha 256 : 535 fdf 0 af 19022 a 30760 fd 5069 c 648019 a3 f 4 b 4828 bfb 2 eb 5666
驗(yàn)證所有服務(wù)器都已添加到群集。
[root @ k8s-01 ~]# ku bectl get node-o widename狀態(tài)角色年齡版本internal-ip external-ip os-image內(nèi)核-版本容器-runtimek8s-01就緒控制平面22m v 1 . 24 . 0 192 . 168 . 31 . 10 none centos linux 7(核心)5 . 17 . 8-1 . el7 . el repo . x86 _ 64 contain:// 1 . 6 . 4 k8s-02就緒控制平面13m v 1 . 24 . 0 199. 8-1 . el7 . el repo . x86 _ 64 contain://1.6.4k8s-05就緒none 6m6s v 1 . 24 . 0 192 . 168 . 31 . 14 none centos linux 7(核心)3 . 10 . 0-1160 . 62 . 1 . el7 . x86 _ 64 contain://1.6.4網(wǎng)絡(luò)配置其實(shí)集群可以 此時(shí)不能正常使用,因?yàn)檫€沒有安裝網(wǎng)絡(luò)插件,接下來(lái)安裝網(wǎng)絡(luò)插件。你可以在文檔 kubernetes . io/docs/setup/production-environment/tools/kube adm/create-clust-flannel.yml wget根據(jù)需求修改網(wǎng)卡配置,我這里主要用eth0。
contain:-nam: kub: quay.io/coreos/ flannel: v0 . 12 . 0-amd64 command:-/opt/bin/flann:--ip-masq--kube-subnet-mgr--ifac:在kubeadm.yaml文件中設(shè)置了一個(gè)podsubnet段,同樣的段應(yīng)該設(shè)置在法蘭絨中。(默認(rèn)情況下,我在這里有相同的配置)
執(zhí)行
[root @ k8s-01 ~]# kubetlapply-fkube-法蘭絨. ymlcni插件問(wèn)題默認(rèn)情況下,contained也會(huì)有一個(gè)cni插件,但是我們已經(jīng)安裝了法蘭絨,所以需要使用法蘭絨 的cni插件,并在包含的cni配置文件中添加注釋,否則這兩個(gè)配置將會(huì)。
因?yàn)槿绻@個(gè)目錄下有多個(gè)cni配置文件,kubelet會(huì)使用文件名字典順序中的第一個(gè)作為配置。文件,所以之前的默認(rèn)選擇是使用containerd-net插件。
mv/etc/cni/net . d/10-container d-net . conflist/etc/cni/net . d/10-container d-net . conf list . bak ifconfig cni 0 down ip鏈接刪除cni 0 system ctl daemon-reload system ctl重啟contain測(cè)試是否正常。
cate of | kubectl apply-f -apiv: apps/v1kind: d: nam: nginxspec: selector: matchlab: app: nginx template : metadata : label : nginx spec: containers :-image: nginx: name: nginx portsecho344-@.com-protocol: tcp port: 80 targ: 80 nod: 30001-apiv: v1kind: podm: name : busybox namespace : defaultspec: containers : busybox image: abc docker 9/centos : v1 command cho 34-@ . com-sleep- 3600 imagepullpolicy:如果不在場(chǎng),restartpolicy:總是在pod創(chuàng)建后eof,我們會(huì)檢查它。
使用nslookup看看能否返回地址。
[root @ k8s-01 ~]# ku bectl exec-ti busybox-nslookup kub: 10.96.0.10addr: 10 . 96 . 0 . 10 # 53nam: kubernetes.default.svc.cluster.localaddr: 10 . 96 . 0 . 1 測(cè)試ngixsvc和pod內(nèi)網(wǎng)通信正常?
對(duì)于k8s-01k 8s-02k 8s-03k8s-04k 8s-05do ssh root @ $ i curl-s 10 . 99 . 209 . 220 # nginxsvcipssh root @ $ i curl-s 10 . 244 . 3 . 4 # pod ip done訪問(wèn)主機(jī)節(jié)點(diǎn)端口。
標(biāo)簽:
節(jié)點(diǎn)版本
了解更多k8s高可用性集群架構(gòu)(快速構(gòu)建k8s集群)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。
上一個(gè):300V直流電和220V交流電那個(gè)更危險(xiǎn)?在直接觸碰的過(guò)程中那個(gè)傷害比較厲害?
下一個(gè):造價(jià)感覺入不了門?按工程造價(jià)基本學(xué)習(xí)方法慢慢學(xué)

硬盤壞了一般修起來(lái)多少錢,電腦硬盤壞了換一個(gè)硬盤得多少錢
剪力墻施工質(zhì)量提高方法總結(jié)
6splus拍照怎么滿屏,iphone6s怎么縮放拍照畫面如何操作縮放拍照
英國(guó)sarclad離線鋼絞線狀態(tài)監(jiān)測(cè)系統(tǒng)scm
筆記本電腦哪種處理器好,本本什么CPU最好
古樹茶讓人著迷的山野韻,從何而來(lái)?
知乎點(diǎn)了喜歡怎么找(知乎點(diǎn)完喜歡的記錄在哪里)
茶的食療養(yǎng)生
山水盆景怎樣管理?
綠茶乙醇浸提技術(shù)研究