<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • cp網(wǎng)站搭建(cp網(wǎng)站搭建開發(fā))

            2024-04-14    分類: 網(wǎng)站建設

            近期由于工作原因,在項目支持的過程中,進行了一次K8S的基礎環(huán)境部署,云平臺一直是公司的重要底座,而我由于一系列原因,一直沒有親自嘗試,通過本次的機會,讓我重新做了一遍,也找到了和以前部署傳統(tǒng)環(huán)境一樣的感覺,雖然還有些生疏和不解,但是邁出了這一步,也算是深入學習的開始。

            環(huán)境部署是作為公司技術人員,必須要掌握的,我們的產(chǎn)品都是基于這個基本條件下進行搭建使用的,因此對于環(huán)境的了解,原理的學習,對于我們后續(xù)問題排查,產(chǎn)品問題定位都是有所幫助的。

            集群架構

            其核心思想是讓 K8S master 節(jié)點中的各類組件具備高可用性,消除單點故障

            1.kube-apiserver:對外暴露了 K8S API,是整個集群的訪問入口。由于 apiserver 本身無狀態(tài),可以通過啟動多個實例并結合負載均衡器實現(xiàn)高可用。

            2.etcd:用于存儲 K8S 集群的網(wǎng)絡配置和對象的狀態(tài)信息,是整個集群的數(shù)據(jù)中心。可以通過啟動奇數(shù)個 etcd 實例建立一個冗余的,可靠的數(shù)據(jù)存儲層。

            3.kube-scheduler:為新創(chuàng)建的 pod 選擇一個供他們運行的節(jié)點。一個集群只能有一個活躍的 kube-scheduler 實例,可以同時啟動多個 kube-scheduler 并利用領導者選舉功能實現(xiàn)高可用。

            4.kube-controller-manager:集群內(nèi)部的管理控制中心。一個集群只能有一個活躍的 kube-controller-manager 實例,可以同時啟動多個 kube-controller-manager 并利用領導者選舉功能實現(xiàn)高可用。

            另外,構建集群時還需要注意下列問題

            1)節(jié)點上 K8S 進程的可靠性。需要讓 kubelet、kube-scheduler、kube-controller-manager 等進程在出現(xiàn)故障后能自動重啟。

            2)為 worker node 中的非 pod 進程預留資源,防止他們將與 pod 爭奪資源導致節(jié)點資源短缺。

            部署架構

            目前提供了5臺服務器,供開發(fā)和測試環(huán)境使用,具體分配情況已經(jīng)使用情況如如下:

            環(huán)境準備

            進行配置前一些必要內(nèi)容的處理,包括主機名的修改,網(wǎng)絡調(diào)整、以及系統(tǒng)配置、安全策略等的調(diào)整,保證后續(xù)安裝過程中的順利進行。

            1.協(xié)調(diào)虛擬IP

            部署高可用環(huán)境,需要兩個虛擬IP的支持,一個用作內(nèi)部集群的使用,另一個是用作外部集群使用,因此在與客戶交互之初,就要協(xié)調(diào)好虛擬IP的網(wǎng)絡情況,以便后續(xù)我們可以直接使用。

            我們這邊拿到的兩個IP分別為122和123,整理我用122作為了內(nèi)部集群,123為外部的集群。

            2.修改主機名稱

            設置主機名,添加主機名與IP對應關系,如下:

            修改5臺虛擬機的hosts文件:

            3.修改安全策略

            安全策略的處理包括兩個位置,一個是關閉selinux,一個是調(diào)整防火墻的策略,保證系統(tǒng)訪問安全,同時保證后續(xù)部署過程中不會受到安全限制。

            > > > > 關閉selinux

            > > > > 防火墻處理

            調(diào)整防火墻的端口,如下:

            防火墻白名單添加,如下:

            上述調(diào)整完成之后,將防火墻進行重啟:

            4.修改網(wǎng)絡映射

            將橋接的IPv4流量傳遞到iptables的鏈:

            添加完畢后執(zhí)行生效,如下:

            5.其他系統(tǒng)配置

            調(diào)整關閉swap,方法如下:

            同時調(diào)整時間同步,啟動chronyd系統(tǒng)服務(需要檢查客戶給出的服務器時間是否一致,不一致要進行調(diào)整),方法如下:

            外圍部署

            針對不是容器里面處理的產(chǎn)品,我們要進行部署,因為UMC產(chǎn)品是需要部署到容器外的,所以支持UMC的相關中間件也是要部署到環(huán)境上的,包括redis、nginx以及keepalived。

            1.redis部署

            > > > > 前置條件

            1.更新linux自帶的gcc 與make。

            安裝完成后會有提示“完畢!”并自動返回到命令行。

            2.如果wget提示無此命令,安裝wget。

            1)檢查wget是否安裝:

            如下顯示則已經(jīng)安裝:

            如果沒有顯示則表示沒有安裝,需要通過以下命令安裝;

            > > > > 安裝步驟

            安裝命令如下:

            注意:其他服務器安裝方式和這個相同。

            > > > > 配置Redis

            1.在server1機器上 /usr/local/redis-5.0.4 目錄下創(chuàng)建 redis_cluster 目錄。

            命令如下:

            2.在 redis_cluster 目錄下,創(chuàng)建名為7000、7001的目錄,并將 redis.conf 拷貝到這三個目錄中。

            命令如下:

            上方使用的是絕對路徑進行復制,也可使用相對路徑進行復制命令(需要在新建的redis_cluster目錄下進行操作)如下:

            3.分別修改這三個配置文件,修改如下內(nèi)容。

            注意備份:cp /usr/local/redis-5.0.4/redis_cluster/7000/redis.conf /usr/local/redis-5.0.4/redis_cluster/7000/redis.conf.bak

            注意:其他服務器于此部署類似。

            > > > > 啟動Redis

            全部修改完畢后,在第一臺機器上執(zhí)行,啟用Redis節(jié)點,以下命令:

            注意:如果關閉xshell后redis進程停止了,則用下命命令啟動

            第二臺機器上執(zhí)行,啟用Redis節(jié)點,以下命令:

            第三臺機器上執(zhí)行,啟用Redis節(jié)點,以下命令:

            > > > > Redis集群

            在server1上執(zhí)行。

            > > > > Redis驗證

            server1執(zhí)行:

            之后左側變成“XXX.XXX.X.241:7000>”表示進入了Redis的節(jié)點之后:

            回顯顯示設置值成功:

            同樣在server2執(zhí)行。

            查看Redis中的信息。

            同時可以通過確認集群信息也可以在這里執(zhí)行:

            cluster info //查看集群信息。

            cluster nodes //查看節(jié)點信息。

            如果集群報錯,可以通過在每個節(jié)點下做以下兩個命令;然后重新創(chuàng)建集群。

            flushall //清空

            cluster reset //重置集群

            2.nginx部署

            > > > > 前置條件

            Nginx需要很多前置包,所以在安裝nginx前需要更新前置安裝包。

            > > > > 步驟說明

            1.將nginx安裝包上傳到,/usr/local目錄中,如下:

            2.解壓這三個安裝包:

            3.接著進入 nginx-1.14.2目錄中;

            進行編譯安裝:

            編譯:

            這樣代表nginx已經(jīng)編譯安裝完成。

            可以通過以下命令檢測Nginx是否安裝完成:

            > > > > 啟動nginx

            重啟命令:

            3.keepalived部署

            > > > > 安裝步驟

            1.通過以下命令安裝Keepalived。

            2.設置為系統(tǒng)服務。

            修改keepalived配置,主從機不同的地方通過黃色高亮顯示:

            注意備份:cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

            根據(jù)下文進行配置:

            注意:5臺都要部署,分為兩組,一組為master1、master2、master3組成的一個虛擬IP,一組是由worker1、woeker2組成的一個虛擬IP。

            > > > > 啟停服務

            開啟:systemctl start keepalived.service。

            軟件安裝

            軟件安裝部分,特指部署K8S所涉及的相關軟件內(nèi)容,通過部署這些軟件內(nèi)容,實現(xiàn)K8S的功能建立實現(xiàn)。

            1.安裝haproxy

            1.安裝。

            2.修改haproxy配置。

            黃色:服務器機器名

            綠色:服務器ip

            3.開機默認啟動haproxy,開啟服務。

            4.檢查服務端口情況。

            查看haproxy狀態(tài):

            注意:如果出現(xiàn)啟動失敗情況,顯示不能綁定IP,系統(tǒng)文件處理添加如下

            注意:所有master服務器都要進行部署配置。

            2.安裝Docker

            注意:所有服務器都要進行部署。

            3.添加阿里云UUM軟件源

            在/etc/yum.repos.d目錄下vi kubernetes.repo

            復制如下代碼直接執(zhí)行即可。

            注意:所有服務器都要安裝。

            4.安裝kubeadm、kubelet、kubectl

            > > > > 安裝方法

            5.修改Cgroup Driver

            修改cgroup driver是為了消除初始化集群時提示的告警:

            查看:

            docker info | grep Cgroup

            編輯service文件:

            追加下方紅色字體代碼:

            重新加載docker:

            再次查看:

            docker info | grep Cgroup

            集群部署

            以下內(nèi)容主要就是針對master和worker的加入,構建內(nèi)部集群。

            1.部署Master

            在master1上,準備集群配置文件,在/opt目錄下創(chuàng)建kubeadm-config.yaml。

            1.kubernetes拉取鏡像。

            注意:如果服務器斷網(wǎng),需要提前加載鏡像包,上傳服務器之后,通過

            的方式加載鏡像,鏡像列表如下(可以通過:docker images命令查詢)。

            2.執(zhí)行節(jié)點初始化。

            3.Master初始化完畢后最下面這個必須記錄下來,后面node服務器加入需要用到。

            按提示執(zhí)行命令:

            4.查看:

            kubectl get nodes

            kubectl get pods -n kube-system

            注意:node現(xiàn)在是NotReady狀態(tài),pod中coredns是Pending狀態(tài),是因為CNI網(wǎng)絡插件未安裝,繼續(xù)以下步驟

            2.CNI網(wǎng)絡插件

            安裝flannel:

            安裝結果:

            查看pods:

            kubectl get pods -n kube-system

            如果網(wǎng)絡不通,使用flanneld-v0.12.0-amd64.docker手動在所有節(jié)點安裝:

            安裝所需要的文件如下:

            3.加入master節(jié)點

            在master2和master3上執(zhí)行,向集群添加新master節(jié)點,執(zhí)行在kubeadm init輸出的kubeadm join命令:這個在master init初始化時會有提示,更換為自己的IP和token。

            查看:

            可以看到,集群中已經(jīng)有3臺master節(jié)點了。

            4.加入node節(jié)點

            在woker1和worker2執(zhí)行,向集群添加新節(jié)點,執(zhí)行在kubeadm init輸出的kubeadm join命令:這個在master init初始化時會有提示,更換為自己的IP和token。

            到master節(jié)點查看node狀態(tài),都顯示ready:

            5.配置Ingress-nginx

            > > > > 鏡像上傳

            把nginx-ingress.tar上傳到各個master上,路徑自己能找到就行(如果下面的mandatory.yaml里配置指定master,這里可以只放到指定的master就可以),導入鏡像:

            > > > > YAML修改

            1)編輯添加212行,表示使用主機網(wǎng)絡。

            hostNetwork: true

            關于上面yaml文件中寫入的“hostNetwork: true”具體解釋:如果添加了此字段,意味著pod中運行的應用可以直接使用node節(jié)點端口,這樣node節(jié)點主機所在網(wǎng)絡的其他主機,就可以通過訪問該端口來訪問此應用。(類似于docker映射到宿主機的端口。)

            2)編輯221行,修改鏡像版本,改成上面導入的0.29.0。

            上傳到master服務器,路徑自己能找到就行。

            3)設置pod時間,通常情況云服務器的時區(qū)為世界標準時間,和中國標準時間相差8個小時。

            加入紅框部分,如下圖:

            參考模板文件如下:

            > > > > 允許master節(jié)點部署pod

            因為ingress-controller我們需要部署到master服務器上,而默認master不允許部署pod,所以使用如下方法解決:

            輸出如下:

            node “K8S” untainted

            輸出error: taint “node-role.kubernetes.io/master:” not found錯誤忽略。

            > > > > 執(zhí)行mandatory.yaml

            kubectl apply -f mandatory.yaml

            > > > > 確認Ingress-nginx容器

            確認Ingress-nginx容器正常運行:

            kubectl get pod -n ingress-nginx -o wide

            > > > > 開啟指定變量

            上傳文件configmap.yaml,然后調(diào)整相應參數(shù),在該目錄下執(zhí)行以下命令

            kubectl apply -f configmap.yaml。

            1.內(nèi)部ingress-nginx,data參數(shù)說明:

            1)proxy-add-original-uri-header: "true"

            作用:獲取到ingress的完整路徑。

            2)enable-underscores-in-headers: "true"

            作用:允許ingress支持自定義變量。

            3)use-forwarded-headers: "true"

            作用:獲取X-Forwarded-Proto,如https。

            6.drdb高可用

            > > > > 安裝相關支撐程序

            在master1和master2安裝

            到 http://oss.linbit.com/drbd 下載drbd-9.0.19-1.tar.gz、drbd-utils-9.12.1.tar.gz,再將drbd-9.0.19-1.tar.gz、drbd-utils-9.12.2.tar.gz上傳到虛擬機/usr/local目錄,再裝一些支撐軟件。

            安裝po4a-translate,編譯drbd-utils的rpm包的時候,需要有命令【po4a-translate】的支持,但是系統(tǒng)上并沒有這個命令。

            > > > > 編譯drbd-utils

            > > > > 編譯drbd

            > > > > 安裝drbd模塊

            > > > > 查看drbd版本及路徑

            > > > > 新磁盤分區(qū)

            > > > > 配置drbd資源文件

            vi /etc/drbd.d/drbd.res

            > > > > 配置資源

            > > > > 設置主節(jié)點

            強制設置為主節(jié)點,在任一節(jié)點上執(zhí)行:

            再次查看:

            drbdadm status

            看到此時數(shù)據(jù)的狀態(tài)為UpToDate(數(shù)據(jù)正在同步,單未完全同步),且已經(jīng)同步42.28

            主:

            副:

            > > > > 格式化新分區(qū)并掛載

            查看:

            lsblk

            > > > > 設置drbd開機啟動

            7.NFS配置

            針對NFS進行服務端和客戶端的處理,通過客戶端和服務端的關系,保證客戶端可以訪問服務端。

            > > > > NFS服務端配置

            1.安裝NFS和rpc:

            2.啟動服務和設置開啟啟動:

            3.建立共享文件夾:

            4.設置共享:

            5.啟動NFS:

            6.查看2049端口是否打開:

            > > > > NFS客戶端配置

            1.在worker1和worker2也安裝nfs,確保每個節(jié)點安裝nfs(客戶端上不需要啟動nfs服務,只是為了使用showmount工具):

            2.查看掛載配置:

            3.在worker1上測試掛載是否成功:

            掛載失敗提示如下:

            取消掛載:

            4.在客戶端創(chuàng)建目錄,并掛載共享目錄:

            5.檢查(有就行,和順序無關):

            8.鏡像庫搭建

            鏡像庫主要進行存儲鏡像信息,

            文章題目:cp網(wǎng)站搭建(cp網(wǎng)站搭建開發(fā))
            瀏覽地址:http://www.jbt999.com/news22/323522.html

            成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、網(wǎng)站設計、品牌網(wǎng)站制作、定制網(wǎng)站、服務器托管、云服務器

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

            成都做網(wǎng)站

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 气质女人操逼 | 黄色日批视频在线观看 | 五月婷婷综合视频 | 天干天干天夜夜 | 国产理论视频在线观看 |