日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

rancher2.0安装mysql_高可用rancher集群搭建

發(fā)布時(shí)間:2025/6/15 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rancher2.0安装mysql_高可用rancher集群搭建 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我在使用rancher過程中遇到的問題:

一開始是用的單機(jī)的環(huán)境,沒有設(shè)置啟動(dòng)內(nèi)存,而且mysql使用的是內(nèi)嵌的數(shù)據(jù)庫(kù)。Rancher Server在運(yùn)行了幾個(gè)月后變的極慢,甚至不能再添加和啟動(dòng)、刪除容器,一個(gè)操作會(huì)卡在那一直不動(dòng)。

當(dāng)時(shí)的啟動(dòng)命令是

sudo docker run --name rancher-server -d --restart=unless-stopped -p 18180:8080 rancher/server

可以參看我之前寫的文章https://www.jianshu.com/p/1a80328ea0a5

問題調(diào)研

翻看了rancher社區(qū)和官方文檔發(fā)現(xiàn):

很可能有一些任務(wù)由于某些原因而處于僵死狀態(tài),如果你能夠用界面查看系統(tǒng)管理 -> 系統(tǒng)進(jìn)程,你將可以看到Running中的內(nèi)容,如果這些任務(wù)長(zhǎng)時(shí)間運(yùn)行(并且失敗),則Rancher會(huì)最終使用太多的內(nèi)存來(lái)跟蹤任務(wù)。這使得Rancher Server處于了內(nèi)存不足的狀態(tài)。

為了使服務(wù)器變?yōu)榭身憫?yīng)狀態(tài),你需要添加更多內(nèi)存。通常4GB的內(nèi)存就夠了。

你需要再次運(yùn)行Rancher Server命令并且添加一個(gè)額外的選項(xiàng)-e JAVA_OPTS="-Xmx4096m",但是由于之前用的是內(nèi)嵌的mysql,一旦重新運(yùn)行一個(gè)容器,所有數(shù)據(jù)就會(huì)丟失,所以強(qiáng)烈建議使用外部mysql

$ docker run -d -p 8080:8080 --restart=unless-stopped -e JAVA_OPTS="-Xmx4096m" rancher/server

根據(jù)MySQL數(shù)據(jù)庫(kù)的設(shè)置方式的不同,你可能需要進(jìn)行升級(jí)才能添加該選項(xiàng)。

如果是由于缺少內(nèi)存而無(wú)法看到系統(tǒng)管理 -> 系統(tǒng)進(jìn)程的話,那么在重啟Rancher Server之后,已經(jīng)有了更多的內(nèi)存。你現(xiàn)在應(yīng)該可以看到這個(gè)頁(yè)面了,并可以開始對(duì)運(yùn)行時(shí)間最長(zhǎng)的進(jìn)程進(jìn)行故障分析。

解決方案

1. 使用外部的msyql數(shù)據(jù)庫(kù)

在你的外部數(shù)據(jù)庫(kù)中,只需要提前創(chuàng)建數(shù)據(jù)庫(kù)名和數(shù)據(jù)庫(kù)用戶。Rancher會(huì)自動(dòng)創(chuàng)建Rancher所需要的數(shù)據(jù)庫(kù)表。

以下是創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)用戶的SQL命令例子

CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';

GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';

GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';

啟動(dòng)一個(gè)Rancher連接一個(gè)外部數(shù)據(jù)庫(kù),你需要在啟動(dòng)容器的命令中添加額外參數(shù)。

sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server \

--db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle

大部分的輸入?yún)?shù)都有默認(rèn)值并且是可選的,只有MySQL server的地址是必須輸入的。

--db-host IP or hostname of MySQL server

--db-port port of MySQL server (default: 3306)

--db-user username for MySQL login (default: cattle)

--db-pass password for MySQL login (default: cattle)

--db-name MySQL database name to use (default: cattle)

多節(jié)點(diǎn)的HA部署

HA部署需求

HA 節(jié)點(diǎn):

所有安裝有支持的Docker版本的現(xiàn)代Linux發(fā)行版 RancherOS, Ubuntu, RHEL/CentOS 7 都是經(jīng)過嚴(yán)格的測(cè)試。

對(duì)于 RHEL/CentOS, 默認(rèn)的 storage driver, 例如 devicemapper using loopback, 并不被Docker推薦。 請(qǐng)參考Docker的文檔去修改使用其他的storage driver。

對(duì)于 RHEL/CentOS, 如果你想使用 SELinux, 你需要 安裝額外的 SELinux 組件.

9345, 8080 端口需要在各個(gè)節(jié)點(diǎn)之間能夠互相訪問

1GB內(nèi)存

MySQL數(shù)據(jù)庫(kù)

至少 1 GB內(nèi)存

每個(gè)Rancher Server節(jié)點(diǎn)需要50個(gè)連接 (例如:3個(gè)節(jié)點(diǎn)的Rancher則需要至少150個(gè)連接)

MYSQL配置要求

選項(xiàng)1: 用默認(rèn)COMPACT選項(xiàng)運(yùn)行Antelope

選項(xiàng)2: 運(yùn)行MySQL 5.7,使用Barracuda。默認(rèn)選項(xiàng)ROW_FORMAT需設(shè)置成Dynamic

外部負(fù)載均衡服務(wù)器

負(fù)載均衡服務(wù)器需要能訪問Rancher Server節(jié)點(diǎn)的 8080 端口

大規(guī)模部署建議

每一個(gè)Rancher Server節(jié)點(diǎn)需要有4 GB 或者8 GB的堆空間,意味著需要8 GB或者16 GB內(nèi)存

MySQL數(shù)據(jù)庫(kù)需要有高性能磁盤

對(duì)于一個(gè)完整的HA,建議使用一個(gè)有副本的Mysql數(shù)據(jù)庫(kù)。另一種選擇則是使用Galera集群并強(qiáng)制寫入一個(gè)MySQL節(jié)點(diǎn)。

在每個(gè)需要加入Rancher Server HA集群的節(jié)點(diǎn)上,運(yùn)行以下命令:

docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 -e JAVA_OPTS="-Xmx4096m" rancher/server \

--db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle \

--advertise-address

在每個(gè)節(jié)點(diǎn)上, 需要在每個(gè)節(jié)點(diǎn)上唯一,因?yàn)檫@個(gè)IP會(huì)被添加到HA的設(shè)置中。

如果你修改了 -p 8080:8080 并在host上暴露了一個(gè)不一樣的端口,你需要添加 --advertise-http-port 參數(shù)到命令中。

注意:

你可以使用 docker run rancher/server --help 獲得命令的幫助信息

配置一個(gè)外部的負(fù)載均衡器,這個(gè)負(fù)責(zé)均衡負(fù)責(zé)將例如80或443端口的流量,轉(zhuǎn)發(fā)到運(yùn)行Rancher Server的節(jié)點(diǎn)的8080端口中。負(fù)載均衡器必須支持websockets 以及 forwarded-for 的Http請(qǐng)求頭以支持Rancher的功能。參考 使用SSL 這個(gè)配置的例子。

總結(jié)

以上是生活随笔為你收集整理的rancher2.0安装mysql_高可用rancher集群搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。