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

資訊專欄INFORMATION COLUMN

Docker Swarm集群搭建教程

endless_road / 1104人閱讀

摘要:現階段,容器技術已經相當成熟,就算是中小型公司也可以基于鏡像服務輕松搭建自己的集群服務。線上環境可以設置為,測試環境設置為安裝創建一個項目登錄創建一個項目。接下來我們就可以訪問集群任意一臺機器的端口。

現階段,Docker容器技術已經相當成熟,就算是中小型公司也可以基于 Gitlab、Aliyun鏡像服務、Docker Swarm 輕松搭建自己的 Docker集群服務。

安裝 Docker
curl -sSL https://get.daocloud.io/docker | sh
搭建自己的Gitlab 安裝Gitlab

首先我們修改一下端口號,把 sshd 服務的 22 端口改為 2222,讓 gitlab 可以使用 22 端口。

$ vim /etc/ssh/sshd_config

# 默認 Port 改為 2222
Port 2222

# 重啟服務
$ systemctl restart sshd.service

重新登錄機器

ssh -p 2222 root@host 

安裝 Gitlab

sudo docker run -d --hostname gitlab.xxx.cn 
--publish 443:443 --publish 80:80 --publish 22:22 
--name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab 
--volume /srv/gitlab/logs:/var/log/gitlab 
--volume /srv/gitlab/data:/var/opt/gitlab 
gitlab/gitlab-ce:latest

首次登錄 Gitlab 會重置密碼,用戶名是 root

安裝gitlab-runner

官方地址

CentOS 為例

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
yum install gitlab-runner

當然,可以用 curl https://setup.ius.io | sh 命令,更新為最新的 git 源,然后直接使用 yum 安裝 git 和 gitlab-runner。

$ curl https://setup.ius.io | sh
$ yum -y install git2u
$ git version
$ yum install gitlab-runner
注冊 gitlab-runner
$ gitlab-runner register --clone-url http://內網ip/

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://gitlab.xxx.cc/
Please enter the gitlab-ci token for this runner:
xxxxx
Please enter the gitlab-ci description for this runner:
xxx
Please enter the gitlab-ci tags for this runner (comma separated):
builder
Please enter the executor: docker-ssh, shell, docker+machine, docker-ssh+machine, docker, parallels, ssh, virtualbox, kubernetes:
shell
初始化 Swarm 集群

登錄另外一臺機器,初始化集群

$ docker swarm init

創建自定義 Overlay 網絡

docker network create 
--driver overlay 
--subnet 10.0.0.0/24 
--opt encrypted 
default-network

加入集群

# 顯示manager節點的TOKEN
$ docker swarm join-token manager
# 加入manager節點到集群
$ docker swarm join --token  ip:2377

# 顯示worker節點的TOKEN
$ docker swarm join-token worker
# 加入worker節點到集群
$ docker swarm join --token  ip:2377

然后配置發布用的 gitlab-runner

其他與 builder 一致,但是 tag 卻不能一樣。線上環境可以設置為 tags,測試環境設置為 test
安裝 Portainer

Portainer

docker service create 
    --name portainer 
    --publish 9000:9000 
    --replicas=1 
    --constraint "node.role == manager" 
    --mount type=volume,src=portainer_data,dst=/data 
    --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock 
    portainer/portainer
創建一個Demo項目

登錄 Gitlab 創建一個 Demo 項目。并導入我們的項目 hyperf-skeleton

配置鏡像倉庫
我們直接使用阿里云的即可

首先創建一個命名空間 test_namespace,然后創建一個鏡像倉庫 demo,并使用本地倉庫。

然后到我們直接打包用的服務器中,登錄阿里云 Docker Registry

usermod -aG docker gitlab-runner
su gitlab-runner
docker login --username=your_name registry.cn-shanghai.aliyuncs.com

修改我們項目里的 .gitlab-ci.yml

variables:
  PROJECT_NAME: demo
  REGISTRY_URL: registry.cn-shanghai.aliyuncs.com/test_namespace

還有 deploy.test.yml,需要仔細對比以下文件哦。

version: "3.7"
services:
  demo:
    image: $REGISTRY_URL/$PROJECT_NAME:test
    environment:
      - "APP_PROJECT=demo"
      - "APP_ENV=test"
    ports:
      - 9501:9501
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
      update_config:
        parallelism: 2
        delay: 5s
        order: start-first
    networks:
      - default-network
    configs:
      - source: demo_v1.0
        target: /opt/www/.env
configs:
  demo_v1.0:
    external: true
networks:
  default-network:
    external: true

然后在我們的 portainer 中,創建對應的 Config demo_v1.0。當然,以下參數需要根據實際情況調整,因為我們的Demo中,沒有任何IO操作,所以填默認的即可。

APP_NAME=demo

DB_DRIVER=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=hyperf
DB_USERNAME=root
DB_PASSWORD=
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_PREFIX=

REDIS_HOST=localhost
REDIS_AUTH=
REDIS_PORT=6379
REDIS_DB=0

因為我們配置的 gitlab-ci.yml 會檢測 test 分支和 tags,所以我們把修改的內容合并到test分支,然后推到gitlab上。

接下來我們就可以訪問集群任意一臺機器的 9501 端口。進行測試了

curl http://127.0.0.1:9501/
意外情況 fatal: git fetch-pack: expected shallow list

這種情況是 gitlab-runner 使用的 git 版本過低,更新 git 版本即可。

$ curl https://setup.ius.io | sh
$ yum remove -y git
$ yum -y install git2u
$ git version

# 重新安裝 gitlab-runner 并重新注冊 gitlab-runner
$ yum install gitlab-runner

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31834.html

相關文章

  • 生產環境中使用Docker Swarm的一些建議

    摘要:譯者按實踐中會發現,生產環境中使用單個節點是遠遠不夠的,搭建集群勢在必行。集群的網絡通信服務發現,負載均衡以及容器間通信非常可靠。負載均衡也是由提供的。 譯者按: 實踐中會發現,生產環境中使用單個Docker節點是遠遠不夠的,搭建Docker集群勢在必行。然而,面對Kubernetes, Mesos以及Swarm等眾多容器集群系統,我們該如何選擇呢?它們之中,Swarm是Docker原...

    loonggg 評論0 收藏0
  • Docker Swarm的前世今生

    摘要:當然此時的局限性較大,比如沒有副本和負載均衡的概念,這導致服務無法高可用當然也更不存在什么服務網絡管理和跨節點數據存儲這些東西沒有服務模型集群中服務間關系和啟動順序編排也很復雜于是就有了下面的的誕生。 showImg(https://segmentfault.com/img/remote/1460000015317037?w=1885&h=1153); 概述 在我的《Docker S...

    lemon 評論0 收藏0
  • Docker Swarm集群初探

    摘要:既然要組集群那就涉及諸如的資源調度管理等等一系列問題。目前涉及集群的三個主要的技術無外乎三種。從本文開始作者將會一一實踐這幾種主要的集群技術,話不多說,現在開始。完全運行于內存中,體積小,啟動快。 showImg(https://segmentfault.com/img/remote/1460000015723680); 前言 相信Docker技術大家都有所了解,單個Docker能發...

    MingjunYang 評論0 收藏0
  • docker 1.12 的服務自動發現

    摘要:介紹的集群的自動發現有兩種方式與本文使用的是的方式準備安裝以上版本初始化集群創建一個名為的網絡開放端口初始化集群部份可看我之前的博客使用搭建多主機集群創建網絡查看當前的網絡也是一個網絡可以跨主機通信本教程會創建一個新的創建網絡 介紹 docker 1.12 的swarm 集群的自動發現有兩種方式, virtual IP address (VIP) 與 DNS round-robin, ...

    ygyooo 評論0 收藏0

發表評論

0條評論

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