91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker編排工具和consul的介紹

發布時間:2020-06-12 10:18:15 來源:億速云 閱讀:248 作者:Leah 欄目:云計算

這篇文章將為大家詳細講解有關docker編排工具和consul,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

**Docker Compose容器編排功能**
Docker compose的前身是Fig,它是一個定義及運行多個docker容器的工具
使用Docker Compose不再需要使用shell腳本來啟動容器
Docker Compose非常適合組合是同多個容器進行開發的場景
可以執行多個容器的操作
**Docker Compose容器編排**
YAML是一種標記語言很直觀的數據序列化格式
文件格式及編寫注意事項
不支持表符tab縮進,需要使用空格縮進
通常開頭縮進2個空格
字符后縮進1個空格,如冒號,逗號,橫杠
用#號注釋
如果包含特殊字符用單引號引起來
布爾值必須用引號括起來

Docker Compose配置常用字段

build dockerfile context 指定Dockerfile文件名構建鏡像上下文路徑
image   指定鏡像
command  執行命令,覆蓋默認命令
container name  指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無法scale
deploy 指定部署和運行服務相關配置,只能在swarm模式使用
environment  添加環境變量
networks  加入網絡
ports  暴露容器端口,但端口不能低于60
volumes  掛載宿主機或命令卷,像數據卷一樣
restart  重啟策略
hostname 容器主機名

Docer Compose常用命令

build  重新構建服務
ps  列出容器
up  創建和啟動容器
exec  在容器里面執行命令
scale  指定一個服務容器啟動數量
top 顯示容器進程
logs 查看容器輸出
down  刪除容器,網絡,數據卷和鏡像
stop/start/restart 停止/啟動/重啟服務

Compose 命令說明

docker-compose選項
--verbose 輸出更多調試信息
--version 打印版本并退出
-f,--file 使用特定的compose模板文件,默認為docker-compose.yml
-p,指定項目名稱,默認使用目錄名稱

Consul

Consul是HashCorp公司推出得到開源工具,用于實現分布式系統的服務與配置
Consul的特性
Consul支持健康檢查,允許存儲鍵值對
一致性協議采用Raft算法,用來保證服務的高可用
成員管理和消息廣播采用GOSSIP協議,支持ACL訪問控制列表,與docker無縫配合

構建自動發現的Docker服務架構

建立Consul服務

每個提供服務的節點上都要部署Consul的agent
Consul agent有兩種運行模式
Server
Client
Server和Client只是Conusl集群層面的區分,與搭建在Cluster之上的應用服務無關

consul群集架構,發現注冊nginx中的docker容器,監控節點服務器的狀態。
consul server服務器中的nginx做反向代理去輪詢訪問服務器池中的一個個容器。用戶訪問代理端口,就能訪問到后面的多個容器,我們的端口做了兩次映射。consul服務器上可以統一修改配置文件

docker編排工具和consul的介紹

-----------------------------------------------------docker-compose容器編排----------------------------------------------------------------

#宿主機的共享目錄有nginx軟件包,我們掛載到/opt/目錄下
mount.cifs //192.168.100.25/LNMP /opt/
#創建容器編排目錄
mkdir /root/compose_ngin
#創建nginx容器鏡像
cd compose_nginx/

mkdir nginx

cd nginx/

cd /opt/

cp nginx-1.12.0.tar.gz /root/compose_nginx/nginx/

cd /root/compose_nginx/nginx/

#加上nginx啟動腳本
vim run.sh 
#!/bin/bash
/usr/local/nginx/sbin/nginx

[root@localhost nginx]# vim Dockerfile
FROM centos:7
MAINTAINER this is nginx <chen>
RUN yum -y update
RUN yum -y install wget pcre-devel zlib-devel make zlib gcc gcc-c++ openssl-devel net-tools
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORKDIR nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
WORKDIR /root/nginx
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

編寫docker-compose編排安裝nginx

[root@localhost compose_nginx]# vim docker-compose.yml
version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1216:80
      - 1217:443
    networks:
      - chen
    volumes:
      - ./wwwroot:/usr/local/nginx/html
networks:
  chen:

[root@localhost compose_nginx]# mount.cifs //192.168.100.25/compose /mnt/
Password for root@//192.168.100.25/compose:   
[root@localhost compose_nginx]# cd /mnt/
[root@localhost mnt]# ls
consul_0.9.2_linux_amd64.zip  consul-template_0.19.3_linux_amd64.zip  docker-compose
[root@localhost mnt]# cp -p docker-compose /usr/local/bin/
[root@localhost mnt]# chmod +x /usr/local/bin/docker-compose 

#開啟路由轉發
[root@localhost compose_nginx]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1[root@localhost compose_nginx]# sysctl -p
net.ipv4.ip_forward = 1

利用編排工具開啟nginx

[root@localhost compose_nginx]# docker-compose -f docker-compose.yml up -d

[root@localhost compose_nginx]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                         NAMES
66d7cee5692d        compose_nginx_nginx   "/run.sh"           11 seconds ago      Up 9 seconds        0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp   compose_nginx_nginx_1

我們做了數據卷我們寫個默認首頁進去

[root@localhost compose_nginx]# ls
docker-compose.yml  nginx  wwwroot
[root@localhost compose_nginx]# cd wwwroot/
[root@localhost wwwroot]# vim index.html
<h2>this is chen web ! ! !</h2>

docker編排工具和consul的介紹

-------------------------------------------------------------------consul部署----------------------------------------------------------------------

自動發現注冊多個docker容器節點,要想被consul管理,就要去注冊,滿足搜索條件agent就會提交注冊請求,consul server自動發現去處理注冊請求,監控容器的狀態,template模板

[root@localhost ~]# mkdir consul
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls
consul_0.9.2_linux_amd64.zip  consul-template_0.19.3_linux_amd64.zip  docker-compose

[root@localhost mnt]# cp consul_0.9.2_linux_amd64.zip /root/consul/
[root@localhost mnt]# cd /root/consul/
[root@localhost consul]# ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]# unzip consul_0.9.2_linux_amd64.zip 
Archive:  consul_0.9.2_linux_amd64.zip
  inflating: consul              

[root@localhost consul]# mv consul /usr/bin/

#使用conusl agent代理功能
[root@localhost consul]# consul agent \
#指定server功能
#參與領袖
#ui界面
#參數指定位置
#綁定本地地址
#面對所有節點
#本地節點名稱混合輸出到日志中,放在后臺運行
> -server \
> -bootstrap \
> -ui \
> -data-dir=/var/lib/consul-data \
> -bind=192.168.136.142 \
> -client=0.0.0.0 \
> -node=consul-server01 &> /var/log/consul.log &
[1] 37957

#查看群集信息
[root@localhost consul]# consul members
Node             Address               Status  Type    Build  Protocol  DC
consul-server01  192.168.136.142:8301  alive   server  0.9.2  2         dc1
#現在只有一臺,它就是老大
[root@localhost consul]# consul info | grep leader
        leader = true
        leader_addr = 192.168.136.142:8300

第二臺節點服務器(創建多個容器)容器服務自動加入nginx集群

[root@localhost ~]# docker run -d \
> --name=registrator \ #指定容器名稱
> --net=host \  #指定主機
> -v /var/run/docker.sock:/tmp/docker.sock \ #指定數據卷宿主機目錄,容器目錄
> --restart=always \ #重啟
> gliderlabs/registrator:latest \ #指定本地的鏡像
> -ip=192.168.136.167 \ #指定你本地的地址
> consul://192.168.136.142:8500 #指定consul的地址

#兩個nginx服務容器
[root@localhost ~]# docker run -itd -p:83:80 --name test-01 -h test01 nginx
root@localhost ~]# docker run -itd -p:84:80 --name test-02 -h test02 nginx
#兩個apache服務5容器
[root@localhost ~]# docker run -itd -p:88:80 --name test-03 -h test02 httpd
[root@localhost ~]# docker run -itd -p:89:80 --name test-04 -h test04 httpd
#查看所有容器
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                           COMMAND                  CREATED              STATUS              PORTS                NAMES
00a94fe6fd0c        httpd                           "httpd-foreground"       6 seconds ago        Up 5 seconds        0.0.0.0:89->80/tcp   test-04
b47b89287e43        httpd                           "httpd-foreground"       38 seconds ago       Up 37 seconds       0.0.0.0:88->80/tcp   test-03
9b695e1d8660        nginx                           "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:84->80/tcp   test-02
3cbf17118dab        nginx                           "nginx -g 'daemon of…"   2 minutes ago        Up 2 minutes        0.0.0.0:83->80/tcp   test-01
055caf398060        gliderlabs/registrator:latest   "/bin/registrator -i…"   3 minutes ago        Up 3 minutes                             registrator

驗證http和nginx服務是否注冊到consul

docker編排工具和consul的介紹

consul服務器

Consul-Templatee 是一個守護進程,用于實時查詢Consul集群信息,并更新文件系統上
任意數量的指定模板,生成配置文件。更新完成以后,可以選擇運行shell命令執行更新操作,重新加載nginx,Consul-template
可以查詢Consul中的服務目錄,key,key-values等
這種強大的抽象功能和查詢語言模板可以使Consul-template特別適合動態的創建配置文件
[root@localhost ~]# cd /root/
[root@localhost ~]# ls
anaconda-ks.cfg  compose_nginx  initial-setup-ks.cfg  公共  文檔  模板  音樂
chen             consul         下載                  圖片  桌面  視頻
[root@localhost ~]# cd consul/
[root@localhost consul]# ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]# 
#準備temlate nginx 模板文件

[root@localhost consul]# vim nginx.ctmpl
upstream http_backend {
  {{range service "nginx"}}
   server {{.Address}}:{{.port}};
   {{end}}
}

server {
  listen 1216;
  server_name localhost 192.168.136.167;
  access_log /var/log/nginx/kgc.cn-access.log;
  index index.html index.php;
  location / {
    proxy_set_header HOST $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Client-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://http_backend;
  }
}

#安裝nginx
[root@localhost nginx-1.12.0]# yum install gcc gcc-c++ pcre-devel zlib-devel -y
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx

[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
#nginx中有events,http,if,location,字段
 19     include     vhost/*.conf;
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/conf/
[root@localhost conf]# mkdir vhost
[root@localhost consul]# cd /var/log/
[root@localhost log]# mkdir /var/log/nginx
[root@localhost log]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/
[root@localhost log]# nginx
[root@localhost log]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      107612/nginx: ma
[root@localhost opt]# cd /mnt/
[root@localhost mnt]# cp consul-template_0.19.3_linux_amd64.zip /root/
[root@localhost mnt]# cd /root/

[root@localhost ~]# unzip consul-template_0.19.3_linux_amd64.zip 
[root@localhost ~]# mv consul-template /usr/bin/

#啟用模板
[root@localhost ~]# consul-template -consul-addr 192.168.136.142:8500 \
> -template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \
> --log-level=info

#coul服務器處于監控狀態,我們再開一臺終端同一臺服務器的

#驗證

docker編排工具和consul的介紹

#增加一個nginx容器節點
增加一個nginx容器節點,測試服務發現及配置更新功能
//在registrator服務端注冊
dockers run -itd -p:85:80 --name test-05 -h test05 nginx
docker logs -f test-01
docker logs -f test-02
docker logs -f test-05

看完上述內容,你們對docker編排工具和consul有進一步的了解嗎?如果還想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赤峰市| 上思县| 抚松县| 南木林县| 通化县| 洪湖市| 湘阴县| 新乡市| 慈溪市| 东海县| 武清区| 蒙自县| 崇明县| 卓资县| 北海市| 碌曲县| 张家界市| 介休市| 花莲县| 襄城县| 高雄县| 麻城市| 银川市| 浮梁县| 卢氏县| 南雄市| 东莞市| 台北县| 吴堡县| 加查县| 乃东县| 丰都县| 老河口市| 潍坊市| 交口县| 教育| 什邡市| 长春市| 亚东县| 黄骅市| 浠水县|