国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在多主機(jī)Docker網(wǎng)絡(luò)中運(yùn)行XtraDB Cluster

canopus4u / 2818人閱讀

摘要:正文以下,我將闡述一下,怎么樣在多主機(jī)網(wǎng)絡(luò)中運(yùn)行。舉個例子,當(dāng)你在主機(jī)上運(yùn)行發(fā)現(xiàn)服務(wù)的時候,你可以這樣啟動節(jié)點這個節(jié)點就會自己把自己注冊到發(fā)現(xiàn)服務(wù)中去,并且加入名為的集群中。

譯者前言

Percona 所維護(hù)的XtraDB 是mysql的一個分支,使用了性能比innodb更加出色的xtrodb驅(qū)動,XtraDB-Cluster產(chǎn)品,是其集群化的方案,方案內(nèi)容,請自行g(shù)oogle。最近XtraDB-Cluster的5.7版本的推出,跟上了mysql主分支的腳步,更加吸引mysql愛好者轉(zhuǎn)移到Percona上來。

正文

以下,我將闡述一下,怎么樣在多主機(jī)Docker網(wǎng)絡(luò)中運(yùn)行Percona XtraDB Cluster。

隨著我們的Pecrona XtraDB Cluster 5.7 beta版本的發(fā)布,我們亦決定提供Pecrona XtraDB Cluster 5.6 和 Pecrona XtraDB Cluster 5.7 的鏡像文件。

啟動一個單點的Percona XtraDB Cluster 是很方便的,基本和Percona Server的鏡像相同。唯一的不同就是需要指定CLUSTER_NAME環(huán)境變量. 啟動容器的命令如下

docker run -d -p 3306:3306
    -e MYSQL_ROOT_PASSWORD= Theistareyk
    -e CLUSTER_NAME= Theistareykjarbunga
    -e XTRABACKUP_PASSWORD=Theistare
    percona/percona-xtradb-cluster

你應(yīng)該會注意到我們提供了可選的參數(shù) XTRABACKUP_PASSWORD,這個參數(shù)是用戶xtradbbackup@localhost 執(zhí)行xtrabackup-SST 同步的用戶密碼。

運(yùn)行單點的Percona XtraDB Cluster 需要迎合Cluster啟動所需要的 CLUSTER_NAME 參數(shù),單點其實也無所謂這個。在我們提供的鏡像中,需要解決以下任務(wù):

1.運(yùn)行在多主機(jī)的環(huán)境(多主機(jī)環(huán)境上一般跑Docker Swarm 和Kubernetes)

2.如我們所需的,在某個Cluster中啟動多個節(jié)點

3.在服務(wù)發(fā)現(xiàn)的服務(wù)端口上,注冊所有的節(jié)點,這樣,所有的客戶端就能知道有多少個節(jié)點以及他們運(yùn)行的狀態(tài)

4.集成 ProxySQL

讓我們一個一個看。

隨著Docker網(wǎng)絡(luò)協(xié)議的完善,可以使用多主機(jī)環(huán)境部署Percona XtraDB了。 最近的Docker 版本帶來了網(wǎng)絡(luò)overlay驅(qū)動,我們將使用這個特性建立一個虛擬網(wǎng)絡(luò)。安裝和啟動Docker 的overlay 網(wǎng)絡(luò)超出了本問的范圍,這里給出個鏈接,感興趣的人可以看下這個非常好的介紹資料了解下這個虛擬網(wǎng)絡(luò)是如何運(yùn)行的。

好了,等你overlay網(wǎng)絡(luò)驅(qū)動裝好,我們要在這上創(chuàng)建一個虛擬網(wǎng)絡(luò):

docker network create -d overlay cluster1_net

然后我們可以這樣啟動容器:

docker run -d -p 3306 --net=cluster1_net
 -e MYSQL_ROOT_PASSWORD=Theistareyk
 -e CLUSTER_NAME=cluster1
 ...
 -e XTRABACKUP_PASSWORD=Theistare
 percona/percona-xtradb-cluster

這玩意兒很cool,cool點在于,你隨便在哪臺服務(wù)器啟動這個節(jié)點,只要是基于同一個網(wǎng)絡(luò)的相同的 CLUSTER_NAME,他們都會自動的進(jìn)行通信。

如果你處在單一Docker主機(jī)的環(huán)境中,譬如做個測試什么的,你還可以創(chuàng)建一個網(wǎng)橋網(wǎng)絡(luò),在一個單主機(jī)的環(huán)境中使用他。

好吧,以上這個腳本,怎么說呢,基本可以執(zhí)行。問題在于每個新加入的節(jié)點需要知道運(yùn)行的cluster的地址。

為了讓實例知道這個地址,我們可以使用 CLUSTER_JOIN 這個變量,這個變量的值為某一個運(yùn)行中的節(jié)點的ip地址,(如果是一個新的群,那么就是空)

在本例中,這個腳本應(yīng)該像這樣:

docker run -d -p 3306 --net=cluster1_net
 -e MYSQL_ROOT_PASSWORD=Theistareyk
 -e CLUSTER_NAME=cluster1
 -e CLUSTER_JOIN=10.0.5.5
 -e XTRABACKUP_PASSWORD=Theistare
 percona/percona-xtradb-cluster

手動追蹤一個ip地址在我看來完全是一個額外的工作,尤其是要在一個動態(tài)的環(huán)境中起停一個節(jié)點的時候,真是有夠麻煩的。所以我們決定使用一個發(fā)現(xiàn)服務(wù)。現(xiàn)在我們使用的是Etcd發(fā)現(xiàn)服務(wù),當(dāng)然,使用其他的發(fā)現(xiàn)服務(wù)也沒啥問題,譬如Consul。

舉個例子,當(dāng)你在主機(jī) 10.20.2.4:2379上運(yùn)行發(fā)現(xiàn)服務(wù)的時候,你可以這樣啟動節(jié)點:

docker run -d -p 3306 --net=cluster1_net
 -e MYSQL_ROOT_PASSWORD=Theistareyk
 -e CLUSTER_NAME=cluster1
 -e DISCOVERY_SERVICE=10.20.2.4:2379
 -e XTRABACKUP_PASSWORD=Theistare
 percona/percona-xtradb-cluster

這個節(jié)點就會自己把自己注冊到發(fā)現(xiàn)服務(wù)中去,并且加入名為$CLUSTER_NAME的集群中。

下面是顯示 CLUSTER_NAME 為 $CLUSTER_NAME 集群的一個簡單的方法:

curl http://$ETCD_HOST/v2/keys/pxc-cluster/$CLUSTER_NAME/?recursive=true | jq
{
  "action": "get",
  "node": {
    "key": "/pxc-cluster/cluster4",
    "dir": true,
    "nodes": [
      {
        "key": "/pxc-cluster/cluster4/10.0.5.2",
        "dir": true,
        "nodes": [
          {
            "key": "/pxc-cluster/cluster4/10.0.5.2/ipaddr",
            "value": "10.0.5.2",
            "modifiedIndex": 19600,
            "createdIndex": 19600
          },
          {
            "key": "/pxc-cluster/cluster4/10.0.5.2/hostname",
            "value": "2af0a75ce0cb",
            "modifiedIndex": 19601,
            "createdIndex": 19601
          }
        ],
        "modifiedIndex": 19600,
        "createdIndex": 19600
      },
      {
        "key": "/pxc-cluster/cluster4/10.0.5.3",
        "dir": true,
        "nodes": [
          {
            "key": "/pxc-cluster/cluster4/10.0.5.3/ipaddr",
            "value": "10.0.5.3",
            "modifiedIndex": 26420,
            "createdIndex": 26420
          },
          {
            "key": "/pxc-cluster/cluster4/10.0.5.3/hostname",
            "value": "cfb29833f1d6",
            "modifiedIndex": 26421,
            "createdIndex": 26421
          }
        ],
        "modifiedIndex": 26420,
        "createdIndex": 26420
      }
    ],
    "modifiedIndex": 19600,
    "createdIndex": 19600
  }
}

用這個方法,你就可以在任意個Docker主機(jī)上啟動任意多個數(shù)據(jù)庫節(jié)點了。現(xiàn)在我們可以在數(shù)據(jù)庫集群前端放置SQL Proxy了,這個下回再討論了。

譯者附

我在實施該XtraDB Cluster的時候,發(fā)現(xiàn)腳本有問題,同時發(fā)現(xiàn)該文的后方,亦有人發(fā)現(xiàn)相同的問題,現(xiàn)貼出該bug并給出解決辦法:

發(fā)言人為Roma Cherepanov

他在啟動節(jié)點的時候發(fā)現(xiàn)了一些error,我也發(fā)現(xiàn)了這些問題,導(dǎo)致容器一直啟動不起來,之后經(jīng)過調(diào)試,解決該問題,并在下放給出了答復(fù)

kevin:

在跑這個鏡像的時候,我有相同的問題。

pxc-entry.sh腳本有些問題

line 125: (應(yīng)該是125,之前數(shù)錯了,帖子上面寫的也錯了?)

i=$(curl http://$DISCOVERY_SERVICE/v2/keys/pxc-cluster/queue/$CLUSTER_NAME | jq -r ".node.nodes[].value")

應(yīng)該是

i=(curl http://$DISCOVERY_SERVICE/v2/keys/pxc-cluster/queue/$CLUSTER_NAME | jq -r ".node.nodes[].value")

line 139:

i=$(curl http://$DISCOVERY_SERVICE/v2/keys/pxc-cluster/$CLUSTER_NAME/?quorum=true | jq -r ".node.nodes[]?.key" | awk -F"/" "{print $(NF)}")

應(yīng)該是

i=(curl http://$DISCOVERY_SERVICE/v2/keys/pxc-cluster/$CLUSTER_NAME/?quorum=true | jq -r ".node.nodes[]?.key" | awk -F"/" "{print $(NF)}")

腳本要給i 賦值一個數(shù)組,那么shell的數(shù)組賦值形式應(yīng)該是i=(a b c d) ,而不是i=$(a b c d) 不知道作者的腳本解釋語言是啥,反正在我這里應(yīng)該是這樣的,改了之后就OK啦!


作者信息
原文作者: Vadim Tkachenko
原文鏈接:https://www.percona.com/blog/...
翻譯自Maxleap團(tuán)隊_Service&Infra:Kevin
首發(fā)地址:https://blog.maxleap.cn/archi...

作者往期佳作
快速部署Test-Driven Development/Debug環(huán)境
Amazon和Mysql之間的那點事兒

歡迎關(guān)注微信公眾號:MaxLeap_yidongyanfa

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26802.html

相關(guān)文章

  • 在多主機(jī)Docker網(wǎng)絡(luò)運(yùn)行XtraDB Cluster

    摘要:正文以下,我將闡述一下,怎么樣在多主機(jī)網(wǎng)絡(luò)中運(yùn)行。舉個例子,當(dāng)你在主機(jī)上運(yùn)行發(fā)現(xiàn)服務(wù)的時候,你可以這樣啟動節(jié)點這個節(jié)點就會自己把自己注冊到發(fā)現(xiàn)服務(wù)中去,并且加入名為的集群中。 譯者前言 Percona 所維護(hù)的XtraDB 是mysql的一個分支,使用了性能比innodb更加出色的xtrodb驅(qū)動,XtraDB-Cluster產(chǎn)品,是其集群化的方案,方案內(nèi)容,請自行g(shù)oogle。最近X...

    awesome23 評論0 收藏0
  • 立足Docker運(yùn)行MySQL:多主機(jī)網(wǎng)絡(luò)Docker Swarm模式的容器管理

    摘要:本文將以多主機(jī)網(wǎng)絡(luò)環(huán)境為基礎(chǔ),探討如何利用內(nèi)置編排工具模式對各主機(jī)上的容器加以管理。在本文中,我們將立足于臺主機(jī)與在負(fù)載均衡之上部署應(yīng)用程序容器,同時將其接入一套覆蓋網(wǎng)絡(luò)。管理節(jié)點會利用負(fù)載均衡以將服務(wù)公布至集群之外。 本文將以多主機(jī)網(wǎng)絡(luò)環(huán)境為基礎(chǔ),探討如何利用內(nèi)置編排工具 Docker Swarm模式對各主機(jī)上的容器加以管理。 Docker Engine – Swarm模式 在...

    20171112 評論0 收藏0
  • 基于Docker搭建Percona XtraDB Cluster數(shù)據(jù)庫集群

    本文實驗的環(huán)境參數(shù) 阿里云ECS Centos7.5 Docker version 18.06.0-ce percona/percona-xtradb-cluster:5.7 Percona XtraDB Cluster的鏡像下載地址:https://hub.docker.com/r/percona/percona-xtradb-cluster/ 怎么使用Docke和下載鏡像,請查看Docke...

    pepperwang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<