準備4台伺服器
部署 harbor 安裝docker compose
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose # 等效上面的指令
chmod +x /usr/local/bin/docker-compose
安裝harbor
wget https://github.com/goharbor/harbor/releases/download/v2.2.1/harbor-offline-installer-v2.2.1.tgz
tar -zxvf harbor-offline-installer-v2.2.1.tgz
配置harbor
cd /usr/local/harbor/ #進入到harbor目錄
cp harbor.yml.tmpl harbor.yml
vim harbor.yml #編輯harbor的配置檔案
#修改以下内容
hostname = 192.168.100.204 #修改harbor的啟動ip,這裡需要依據系統ip設定
port: 80 #harbor的端口,有兩個端口,http協定(80)和https協定(443)
harbor_admin_password = harbor12345 #修改harbor的admin使用者的密碼
data_volume: /harbor/data #修改harbor存儲位置
# https related config
#如果有安全密匙自行配置 沒有就注
# https:
# # https port for harbor, default is 443
# port: 443
# # The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path
安裝harbor
./prepare
./install.sh
關閉防火牆
systemctl stop firewalld.service
設定docker
yum install -y yum-utils
sudo yum-config-manager \ --add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl restart docker
啟動了docker
設定docker國内鏡像 (harbor 為私有倉庫ip)
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
, "insecure-registries": [ "harborip"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
安裝zookeeper(伺服器2)
docker pull zookeeper:latest
docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest
設定mesos master鏡像(伺服器1)
docker pull mesosphere/mesos-master:1.7.1
mesos master配置(伺服器1)
docker run -d --net=host \
--hostname= 本機ip \
-e MESOS_PORT=5050 \
-e MESOS_ZK=zk://zookeeperip/mesos \
-e MESOS_QUORUM=1 \
-e MESOS_REGISTRY=in_memory \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
-v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
mesosphere/mesos-master:1.7.1 --no-hostname_lookup --ip=本機ip
http://mesosmaster:5050/#/ 檢視 伺服器狀态
設定mesos slave1(伺服器3)
docker pull mesosphere/mesos-master:1.7.1
docker run -d --net=host --privileged \
--hostname=本機ip \
-e MESOS_PORT=5051 \
-e MESOS_MASTER=zk://zookeeperip/mesos \
-e MESOS_SWITCH_USER=0 \
-e MESOS_CONTAINERIZERS=docker,mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
-v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /sys:/sys \
-v /usr/bin/docker:/usr/local/bin/docker \
mesosphere/mesos-slave:1.7.1 --no-systemd_enable_support \
--no-hostname_lookup --ip=本機ip
設定mesos slave2(伺服器4)
docker pull mesosphere/mesos-master:1.7.1
docker run -d --net=host --privileged \
--hostname=本機ip \
-e MESOS_PORT=5051 \
-e MESOS_MASTER=zk://zookeeperip/mesos \
-e MESOS_SWITCH_USER=0 \
-e MESOS_CONTAINERIZERS=docker,mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v "$(pwd)/mesos/log/mesos:/var/log/mesos" \
-v "$(pwd)/mesos/tmp/mesos:/var/tmp/mesos" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /sys:/sys \
-v /usr/bin/docker:/usr/local/bin/docker \
mesosphere/mesos-slave:1.7.1 --no-systemd_enable_support \
--no-hostname_lookup --ip=本機ip
設定 marathon(伺服器1)
docker run -d --net=host \
mesosphere/marathon:v1.7.230-plain-tasks \
--master zk://zookeeperip:2181/mesos \
--zk zk://zookeeperip:2181/marathon
http://marathon:8080/ 開啟應用
設定marathon-lb(伺服器2)
docker run -d -p 9090:9090 \
-e PORTS=9090 \
mesosphere/marathon-lb:v1.12.3 sse \
--group external \
--marathon http://marathonip:8080
方法二
{
"id": "/marathon-lb",
"cmd": "apt-get install curl -y && /marathon-lb/run sse --marathon http://marathonip:8080 --group external",
"cpus": 1,
"mem": 128,
"disk": 0,
"instances": 1,
"constraints": [
[
"hostname",
"LIKE",
"指定主機ip"
]
],
"acceptedResourceRoles": [
"*"
],
"container": {
"type": "DOCKER",
"docker": {
"forcePullImage": false,
"image": "docker.io/mesosphere/marathon-lb",
"parameters": [],
"privileged": true
},
"volumes": []
},
"portDefinitions": [
{
"port": 10001,
"name": "default",
"protocol": "tcp"
}
]
}
http://marathon-lb:9090/haproxy?stats 應用分組狀态
可能出現問題marathon 部署應用bridge 網絡報錯
mesos-slave重新開機docker
其他工具性指令
1.啟動docker,指令:systemctl start docker
2.驗證docker是否啟動成功,指令:dockers version
3.重新開機docker,指令:systemctl restart docker
4.關閉docker,指令:systemctl stop docker END
安裝
yum -y install vim*
啟動所有
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
所有停止
docker stop $(docker ps -q)
删除 所有
docker rm $(docker ps -aq)
防火牆
firewall-cmd --zone=public --add-port=5050/tcp --permanent
firewall-cmd --reload