日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2025/6/15 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rancher2.0安装mysql_高可用rancher集群搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

一開始是用的單機的環境,沒有設置啟動內存,而且mysql使用的是內嵌的數據庫。Rancher Server在運行了幾個月后變的極慢,甚至不能再添加和啟動、刪除容器,一個操作會卡在那一直不動。

當時的啟動命令是

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

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

問題調研

翻看了rancher社區和官方文檔發現:

很可能有一些任務由于某些原因而處于僵死狀態,如果你能夠用界面查看系統管理 -> 系統進程,你將可以看到Running中的內容,如果這些任務長時間運行(并且失敗),則Rancher會最終使用太多的內存來跟蹤任務。這使得Rancher Server處于了內存不足的狀態。

為了使服務器變為可響應狀態,你需要添加更多內存。通常4GB的內存就夠了。

你需要再次運行Rancher Server命令并且添加一個額外的選項-e JAVA_OPTS="-Xmx4096m",但是由于之前用的是內嵌的mysql,一旦重新運行一個容器,所有數據就會丟失,所以強烈建議使用外部mysql

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

根據MySQL數據庫的設置方式的不同,你可能需要進行升級才能添加該選項。

如果是由于缺少內存而無法看到系統管理 -> 系統進程的話,那么在重啟Rancher Server之后,已經有了更多的內存。你現在應該可以看到這個頁面了,并可以開始對運行時間最長的進程進行故障分析。

解決方案

1. 使用外部的msyql數據庫

在你的外部數據庫中,只需要提前創建數據庫名和數據庫用戶。Rancher會自動創建Rancher所需要的數據庫表。

以下是創建數據庫和數據庫用戶的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';

啟動一個Rancher連接一個外部數據庫,你需要在啟動容器的命令中添加額外參數。

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

大部分的輸入參數都有默認值并且是可選的,只有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)

多節點的HA部署

HA部署需求

HA 節點:

所有安裝有支持的Docker版本的現代Linux發行版 RancherOS, Ubuntu, RHEL/CentOS 7 都是經過嚴格的測試。

對于 RHEL/CentOS, 默認的 storage driver, 例如 devicemapper using loopback, 并不被Docker推薦。 請參考Docker的文檔去修改使用其他的storage driver。

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

9345, 8080 端口需要在各個節點之間能夠互相訪問

1GB內存

MySQL數據庫

至少 1 GB內存

每個Rancher Server節點需要50個連接 (例如:3個節點的Rancher則需要至少150個連接)

MYSQL配置要求

選項1: 用默認COMPACT選項運行Antelope

選項2: 運行MySQL 5.7,使用Barracuda。默認選項ROW_FORMAT需設置成Dynamic

外部負載均衡服務器

負載均衡服務器需要能訪問Rancher Server節點的 8080 端口

大規模部署建議

每一個Rancher Server節點需要有4 GB 或者8 GB的堆空間,意味著需要8 GB或者16 GB內存

MySQL數據庫需要有高性能磁盤

對于一個完整的HA,建議使用一個有副本的Mysql數據庫。另一種選擇則是使用Galera集群并強制寫入一個MySQL節點。

在每個需要加入Rancher Server HA集群的節點上,運行以下命令:

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

在每個節點上, 需要在每個節點上唯一,因為這個IP會被添加到HA的設置中。

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

注意:

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

配置一個外部的負載均衡器,這個負責均衡負責將例如80或443端口的流量,轉發到運行Rancher Server的節點的8080端口中。負載均衡器必須支持websockets 以及 forwarded-for 的Http請求頭以支持Rancher的功能。參考 使用SSL 這個配置的例子。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。