国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn)

這篇具有很好參考價(jià)值的文章主要介紹了【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?本次部署說明

?在上一篇文章中,就已經(jīng)完成了二進(jìn)制k8s集群部署的搭建,但是單機(jī)master并不適用于企業(yè)的實(shí)際運(yùn)用(因?yàn)閱螜C(jī)master中,僅僅只有一臺(tái)master作為節(jié)點(diǎn)服務(wù)器的調(diào)度指揮,一旦宕機(jī)。就意味著整個(gè)集群的癱瘓,所以成熟的k8s的集群一定要考慮到master的高可用。)企業(yè)的運(yùn)用一般至少存在兩臺(tái)master及其以上的部署,本次將根據(jù)前面的部署,再添加一臺(tái)master(三個(gè)master或者更多,也可以根據(jù)本次添加步驟重復(fù)添加)。添加master后,我們會(huì)將借助keepalived+nginx的架構(gòu),來實(shí)現(xiàn)高可用的master【也可以使用haproxy+keepalived或則是keepalived+lvs(不推薦,步驟過于復(fù)雜)】

除此之外,我們還將搭建出k8s的ui管理界面

本次部署的架構(gòu)組件?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?文章來源地址http://www.zghlxwxcb.cn/news/detail-519206.html

架構(gòu)說明:

node節(jié)點(diǎn)的kubelet只能對(duì)接一個(gè)master節(jié)點(diǎn)的apiserver,不可能同時(shí)對(duì)接多個(gè)master節(jié)點(diǎn)的apiserver。簡而言之,node節(jié)只能有一個(gè)master來領(lǐng)導(dǎo)。

kubelet和kube-proxy是通過kubelet.kubeconfig和kube-proxy.kubeconfig文件中的server參數(shù)進(jìn)行對(duì)接 master節(jié)點(diǎn)的。

所以在多master節(jié)點(diǎn)的環(huán)境下,需要有nginx負(fù)載均衡器來進(jìn)行調(diào)度,而且需要進(jìn)行keepalived高可用的構(gòu)建(主從兩個(gè)節(jié)點(diǎn)) ,防止主節(jié)點(diǎn)宕機(jī)導(dǎo)致整個(gè)k8s集群的不可用。
?

?1. 新master節(jié)點(diǎn)的搭建

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

?1.1 對(duì)master02 進(jìn)行初始化配置

#關(guān)閉防火墻
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
?
#關(guān)閉selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
?
#關(guān)閉swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab?
?
#根據(jù)規(guī)劃設(shè)置主機(jī)名
hostnamectl set-hostname master02
su
#在master添加hosts(添加到整個(gè)k8s集群的主機(jī)上,保證其他主機(jī)均有該映射)
cat >> /etc/hosts << EOF
192.168.73.105 master01
192.168.73.110 master02
192.168.73.106 node01
192.168.73.107 node02
EOF
?
#調(diào)整內(nèi)核參數(shù)
cat > /etc/sysctl.d/k8s.conf << EOF
#開啟網(wǎng)橋模式,可將網(wǎng)橋的流量傳遞給iptables鏈
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#關(guān)閉ipv6協(xié)議
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF
?
sysctl --system
?
?
#時(shí)間同步
yum install ntpdate -y
ntpdate ntp.aliyun.com
?
#將時(shí)間同步的操作添加到計(jì)劃性任務(wù),確保所有節(jié)點(diǎn)保證時(shí)間的同步
crontab -e
*/30 * * * * /usr/sbin/ntpdate ?ntp.aliyun.com
crontab -l
?

?1.2? 將master01的配置移植到master02

?##------------ 1、 master01節(jié)點(diǎn),拷貝文件到master02 -------------------------------
?#從 master01 節(jié)點(diǎn)上拷貝證書文件、各master組件的配置文件和服務(wù)管理文件到 master02 節(jié)點(diǎn)
?scp -r /opt/etcd/ root@192.168.73.110:/opt/
?scp -r /opt/kubernetes/ root@192.168.73.110:/opt/
?scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service root@192.168.73.110:/usr/lib/systemd/system/
?scp -r /root/.kube/ ?master02:/root/
??

?##----------- 2、 master02節(jié)點(diǎn),修改配置文件并啟動(dòng)相關(guān)服務(wù)-------------------------
?
?#修改配置文件kube-apiserver中的IP
?vim /opt/kubernetes/cfg/kube-apiserver
?KUBE_APISERVER_OPTS="--logtostderr=true \ ? ? ? ?#輸出日志,false表示標(biāo)準(zhǔn)錯(cuò)誤不輸出到屏幕,而是輸出到日志中。true表示標(biāo)準(zhǔn)錯(cuò)誤會(huì)輸出到屏幕。
?--v=4 \ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#日志級(jí)別
?--etcd-servers=https://192.168.73.105:2379,https://192.168.73.106:2379,https://192.168.73.107:2379 \ ? ? ?#etcd節(jié)點(diǎn)的IP通信地址
?--bind-address=192.168.73.110 \ ? ? ? ? ? ? ?#修改,當(dāng)前綁定的內(nèi)網(wǎng)IP監(jiān)聽的地址
?--secure-port=6443 \ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#基于HPPTS開放端口
?--advertise-address=192.168.73.110 \ ? ? ? ? #修改,內(nèi)網(wǎng)通告地址,讓其他node節(jié)點(diǎn)地址通信
?......
??
?#在 master02 節(jié)點(diǎn)上啟動(dòng)各服務(wù)并設(shè)置開機(jī)自啟
?systemctl enable --now kube-apiserver.service
?systemctl enable --now kube-controller-manager.service
?systemctl enable --now kube-scheduler.service
??
?#將可執(zhí)行文件,創(chuàng)建軟鏈接
?ln -s /opt/kubernetes/bin/* /usr/local/bin/
??
?#查看node節(jié)點(diǎn)狀態(tài)
?kubectl get nodes
?kubectl get nodes -o wide ? ? ? ? ? #-o=wide:輸出額外信息;對(duì)于Pod,將輸出Pod所在的Node名
?#此時(shí)在master02節(jié)點(diǎn)查到的node節(jié)點(diǎn)狀態(tài)僅是從etcd查詢到的信息,而此時(shí)node節(jié)點(diǎn)實(shí)際上并未與master02節(jié)點(diǎn)建立通信連接,因此需要使用一個(gè)VIP把node節(jié)點(diǎn)與master節(jié)點(diǎn)都關(guān)聯(lián)起來

2.負(fù)載均衡的部署

?#配置load balancer集群雙機(jī)熱備負(fù)載均衡(nginx實(shí)現(xiàn)負(fù)載均衡,keepalived實(shí)現(xiàn)雙機(jī)熱備)
??
?#----------------- 1、兩臺(tái)負(fù)載均衡器配置nginx -------------------------------------
??
?#配置nginx的官方在線yum源,配置本地nginx的yum源
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOF
??
?yum install nginx -y
??
?#修改nginx配置文件,配置四層反向代理負(fù)載均衡,指定k8s群集2臺(tái)master的節(jié)點(diǎn)ip和6443端口
?vim /etc/nginx/nginx.conf
?events {
? ? ?worker_connections ?1024;
?}
??
?#添加
?stream {
? ? ?log_format ?main ?'$remote_addr $upstream_addr - [$time_local] $status?
? ? ?$upstream_bytes_sent';
? ? ?
? ? ?access_log ?/var/log/nginx/k8s-access.log ?main;
??
? ? ?upstream k8s-apiserver {
? ? ? ? ?server 192.168.73.105:6443; ? ?#master01
? ? ? ? ?server 192.168.73.110:6443; ? ?#master02
? ? ?}
? ? ?server {
? ? ? ? ?listen 6443;
? ? ? ? ?proxy_pass k8s-apiserver;
? ? ?}
?}
??
?http {
?......
??
??
?#檢查配置文件語法
?nginx -t ??
??
?#啟動(dòng)nginx服務(wù),查看已監(jiān)聽6443端口
?systemctl start nginx
?systemctl enable nginx
??
?ss -lntp|grep nginx?
??
??

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

?#------------------ 2、兩臺(tái)負(fù)載均衡器配置keepalived ------------------------------


??
?#部署keepalived服務(wù)
?yum install keepalived -y
??
?#修改keepalived配置文件
?vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
?
global_defs {
? ?router_id nginx_master
}
?
vrrp_script check_nginx {
? ?script "/etc/nginx/check_nginx.sh" ? #指定檢測(cè)腳本的路徑,并且該腳本充當(dāng)心跳檢測(cè)腳本
}
?
vrrp_instance VI_1 {
? ? state MASTER ? ? ? ?#指定狀態(tài)為master節(jié)點(diǎn),109為BACKUP備用節(jié)點(diǎn)
? ? interface ens33
? ? virtual_router_id 51
? ? priority 100 ? ?#108優(yōu)先級(jí)為100 109為90,優(yōu)先級(jí)決定著主備的位置
? ? advert_int 1
? ? authentication {
? ? ? ? auth_type PASS
? ? ? ? auth_pass 1111
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.73.66
? ? }
? ? track_script {
? ? ?check_nginx ? ? ? ?#追蹤腳本的進(jìn)程
? ? }
}
?
#將該文件 發(fā)送給備用調(diào)度器,并且將其中的配置修改為備用調(diào)度器的屬性
cd /etc/keepalived/
scp keepalived.conf ?root@192.168.73.109:`pwd`
??
??
#創(chuàng)建nginx狀態(tài)檢查腳本?
vim /etc/nginx/check_nginx.sh
?
#!/bin/bash
killall -0 nginx &>/dev/null
if [ $? -ne 0 ];then
? systemctl stop keepalived
fi
?
??
?chmod +x /etc/nginx/check_nginx.sh ?#為腳本增加執(zhí)行權(quán)限
?
#將該腳本發(fā)送給備用調(diào)度器
cd /etc/nginx
scp check_nginx.conf ?root@192.168.73.109:`pwd`
?
?
?
??
?#兩臺(tái)主備調(diào)度器啟動(dòng)keepalived服務(wù)(一定要先啟動(dòng)了nginx服務(wù),再啟動(dòng)keepalived服務(wù))
?systemctl start keepalived
?systemctl enable keepalived
?ip addr ? ? ? ? ? ? #查看主節(jié)點(diǎn)的VIP是否生成
??
?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java?

?

?#---------------- 3、關(guān)閉主節(jié)點(diǎn)的nginx服務(wù),模擬故障,測(cè)試keepalived-----------------------
??
?#關(guān)閉主節(jié)點(diǎn)lb01的Nginx服務(wù),模擬宕機(jī),觀察VIP是否漂移到備節(jié)點(diǎn)
?systemctl stop nginx
?ip addr
?systemctl status keepalived ? #此時(shí)keepalived被腳本殺掉了 ??
??
?#備節(jié)點(diǎn)查看是否生成了VIP
?ip addr ? ?#此時(shí)VIP漂移到備節(jié)點(diǎn)lb02
??

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

?#恢復(fù)主節(jié)點(diǎn)
?systemctl start nginx ? ? ? ? #先啟動(dòng)nginx
?systemctl start keepalived ? ?#再啟動(dòng)keepalived
?ip addr

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

?3.?k8s的web UI界面的搭建

//在 master01 節(jié)點(diǎn)上操作
#上傳 recommended.yaml 文件到 /opt/k8s 目錄中,部署 CoreDNS?
cd /opt/k8s
vim recommended.yaml
#默認(rèn)Dashboard只能集群內(nèi)部訪問,修改Service為NodePort類型,暴露到外部:
kind: Service
apiVersion: v1
metadata:
? labels:
? ? k8s-app: kubernetes-dashboard
? name: kubernetes-dashboard
? namespace: kubernetes-dashboard
spec:
? ports:
? ? - port: 443
? ? ? targetPort: 8443
? ? ? nodePort: 30001 ? ? #添加
? type: NodePort ? ? ? ? ?#添加
? selector:
? ? k8s-app: kubernetes-dashboard
?
?
#通過recommended.yaml資源配置清單,使用kubectl apply創(chuàng)建資源,-f指定資源配置清單文件
?kubectl apply -f recommended.yaml
?
#創(chuàng)建service account并綁定默認(rèn)cluster-admin管理員集群角色
kubectl create serviceaccount dashboard-admin -n kube-system
?
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
?
?#獲取token值
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
?
#使用輸出的token登錄Dashboard,訪問node節(jié)點(diǎn)
https://192.168.73.106:30001

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn),云原生,kubernetes,java

?

到了這里,關(guān)于【云原生】二進(jìn)制k8s集群(下)部署高可用master節(jié)點(diǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 二進(jìn)制部署高可用k8s集群V1.20.11版本

    二進(jìn)制部署高可用k8s集群V1.20.11版本

    單master架構(gòu)圖 master節(jié)點(diǎn) node1節(jié)點(diǎn) node2節(jié)點(diǎn) ??Etcd是一個(gè)分布式鍵值存儲(chǔ)系統(tǒng), K8s使用Etcd進(jìn)行數(shù)據(jù)存儲(chǔ) ,所以先準(zhǔn)備一個(gè)Etcd數(shù)據(jù)庫,為解決Etcd單點(diǎn)故障,應(yīng)采用集群方式進(jìn)行部署,這里使用3臺(tái)組件集群,可容忍1臺(tái)機(jī)器故障,當(dāng)然 也可以使用5臺(tái)組件集群,可容忍2臺(tái)機(jī)器故

    2024年01月22日
    瀏覽(30)
  • 【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

    【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

    在上文已經(jīng)成功部署了etcd分布式數(shù)據(jù)庫、master01節(jié)點(diǎn), 本文將承接上文的內(nèi)容,繼續(xù)部署Kubernetes集群中的 worker node 節(jié)點(diǎn)和 CNI 網(wǎng)絡(luò)插件 kubelet 采用 TLS Bootstrapping 機(jī)制,自動(dòng)完成到 kube-apiserver 的注冊(cè),在 node 節(jié)點(diǎn)量較大或者后期自動(dòng)擴(kuò)容時(shí)非常有用。 ? Master apiserver 啟用 T

    2024年02月09日
    瀏覽(29)
  • 【云原生】K8S二進(jìn)制搭建三:高可用配置

    【云原生】K8S二進(jìn)制搭建三:高可用配置

    在所有 node 節(jié)點(diǎn)上操作 在 master01 節(jié)點(diǎn)上操作 初始化環(huán)境 初始化環(huán)境看這里 在 master01 節(jié)點(diǎn)上測(cè)試 儀表板是基于Web的Kubernetes用戶界面。您可以使用儀表板將容器化應(yīng)用程序部署到Kubernetes集群,對(duì)容器化應(yīng)用程序進(jìn)行故障排除,并管理集群本身及其伴隨資源。您可以使用儀表

    2024年02月14日
    瀏覽(35)
  • k8s二進(jìn)制部署--部署高可用

    k8s二進(jìn)制部署--部署高可用

    notready是因?yàn)闆]有網(wǎng)絡(luò),因此無法創(chuàng)建pod 在同一個(gè)pod中的容器共享資源和網(wǎng)絡(luò),使用同一個(gè)網(wǎng)絡(luò)命名空間。 每個(gè)pod都有一個(gè)全局的真實(shí)IP地址,同一個(gè)node之間的不同pod可以直接使用對(duì)方pod的ip地址進(jìn)行通信。 pod1和pod2是通過docker0的網(wǎng)橋來進(jìn)行通信。 Pod 地址與 docker0 在同一網(wǎng)

    2024年02月03日
    瀏覽(58)
  • 第3關(guān) 二進(jìn)制形式安裝K8s高可用生產(chǎn)級(jí)集群

    第3關(guān) 二進(jìn)制形式安裝K8s高可用生產(chǎn)級(jí)集群

    ------ 課程視頻同步分享在今日頭條和B站 大家好,我是博哥愛運(yùn)維,下面是這次安裝k8s集群相關(guān)系統(tǒng)及組件的詳細(xì)版本號(hào) Ubuntu 22.04.3 LTS k8s: v1.27.5 containerd: 1.6.23 etcd: v3.5.9 coredns: 1.11.1 calico: v3.24.6 下面是此次虛擬機(jī)集群安裝前的IP等信息規(guī)劃(完全模擬一個(gè)中小型企業(yè)K8S集群)

    2024年02月04日
    瀏覽(56)
  • K8s集群部署(二進(jìn)制安裝部署詳細(xì)手冊(cè))

    K8s集群部署(二進(jìn)制安裝部署詳細(xì)手冊(cè))

    ? ?一、簡介 K8s部署主要有兩種方式: 1、Kubeadm Kubeadm是一個(gè)K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 2、二進(jìn)制 ? 從github下載發(fā)行版的二進(jìn)制包,手動(dòng)部署每個(gè)組件,組成Kubernetes集群。 ?本文通過二進(jìn)制安裝部署的方式在centos7上搭建kubernetes集群

    2024年02月15日
    瀏覽(21)
  • k8s1.23.15集群二進(jìn)制部署

    k8s1.23.15集群二進(jìn)制部署

    一、前言 ? ? 二進(jìn)制部署1.23.15版本k8s集群,etcd集群部署與k8s集群節(jié)點(diǎn)復(fù)用,手動(dòng)頒發(fā)集群證書 ? ? 主機(jī)信息如下 主機(jī)名稱 ip地址 服務(wù) k8s-master01 10.1.60.125 docker、etcd、kube-apiserver、kube-schduler、kube-controller-manage、kubelet、kube-proxy k8s-node01 10.1.60.126 docker、etcd、kubelet、kube-proxy

    2024年03月13日
    瀏覽(23)
  • k8s1.23.15版本二進(jìn)制部署/擴(kuò)容及高可用架構(gòu)詳解

    k8s1.23.15版本二進(jìn)制部署/擴(kuò)容及高可用架構(gòu)詳解

    前言 ????眾所周知,kubernetes在2020年的1.20版本時(shí)就提出要移除docker。這次官方消息表明在1.24版本中徹底移除了dockershim,即移除docker。但是在1.24之前的版本中還是可以正常使用docker的??紤]到可能并不是所有項(xiàng)目環(huán)境都緊跟新版換掉了docker,本次就再最后體驗(yàn)一下可支持

    2024年01月16日
    瀏覽(30)
  • [kubernetes]二進(jìn)制部署k8s集群-基于containerd

    k8s從1.24版本開始不再直接支持docker,但可以自行調(diào)整相關(guān)配置,實(shí)現(xiàn)1.24版本后的k8s還能調(diào)用docker。其實(shí)docker自身也是調(diào)用containerd,與其k8s通過docker再調(diào)用containerd,不如k8s直接調(diào)用containerd,以減少性能損耗。 除了containerd,比較流行的容器運(yùn)行時(shí)還有podman,但是podman官方安裝

    2024年02月12日
    瀏覽(30)
  • 【云原生】K8S二進(jìn)制搭建二:部署CNI網(wǎng)絡(luò)組件

    【云原生】K8S二進(jìn)制搭建二:部署CNI網(wǎng)絡(luò)組件

    解決了什么問題? 容器鏡像(帶有應(yīng)用程序規(guī)范的文件)必須以標(biāo)準(zhǔn)化,安全和隔離的方式啟動(dòng) 標(biāo)準(zhǔn)化,因?yàn)闊o論它們?cè)诤翁庍\(yùn)行,都需要標(biāo)準(zhǔn)的操作規(guī)則。 安全,因?yàn)槟悴幌M魏尾粦?yīng)該訪問它的人,對(duì)它操作。 隔離,因?yàn)槟悴幌M麘?yīng)用程序影響其他應(yīng)用,或受其他應(yīng)用

    2024年02月10日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包