【Docker】RancherOS에서 본격적인 집 서버를 구축하자(2) ~ rancher-server를 설치 ~
8402 단어 server도커신인 프로그래머 응원rancher
rancher-server를 설치하자.
관련 기사
rancherOS 설치
iso의 경우
htps : // / ぇ あせ s. 란치 r. 이 m/오 s/아 st/란치ぇ로 s. 이소 을 CD에 구워
cloud-config.yml 편집
#cloud-config
ssh_authorized_keys:
- ssh-rsa AAA...ZZZ example1@rancher
- ssh-rsa BBB...ZZZ example2@rancher
メモ
基本的な設定はauthorized_keysを書くだけで良い。
tlsの設定をしようとして、公式docにあるようなsystem-dockerに変数をわたすやつをするとfileシステムが壊れてしまった(バグ?)ので注意
その時は、サーバーに1度centosを入れ直してパーティションを削除してからまた、rancherOSのインストールをしないと治らない現象がおきた
rancher:
docker:
tls_args: [--tlsverify, --tlscacert=ca.pem, --tlscert=server-cert.pem, --tlskey=server-key.pem,
'-H=0.0.0.0:2376']
args: [daemon, --log-opt, max-size=25m, --log-opt, max-file=2, -s, overlay, -G, docker, -H, 'unix:///var/run/docker.sock', --userland-proxy=false, (--insecue-registry docker.oooo.com:5000) これを書こうとして壊れた、なくてもこわれた。]
ssh 설정
基本的には何もさわってない
RancherOSをインストールすればデフォルトの設定でpassログインが禁止されるから、上の鍵登録は絶対せんといかんばい。
설치
$ mkfs.ext4 -L RANCHER_STATE /dev/sda
$ sudo ros install -c cloud-config.yml -d /dev/sda
aws의 경우
80 - 80
22 - 22
8080 - 8080
5000 - 5000(private registry用)
ECS로 만들 수 있지만 private registry 때 조금 빠졌지만,
ECS 환경에서는 ECS 클러스터에 참여하기 때문에 인스턴스를 시작할 때 amazon/amazon-ecs-agent 컨테이너가 실행되므로 이후에 docker 서비스만 다시 시작하기가 어려울 수 있습니다. 인스턴스 재부팅도 고려해 봅시다.
라고 ( htp : //에서 v.ぁsss d. jp / c ぉ d / 도 c 케 r-레기 스트리-레시 페 s / )
정직 ec2 쪽이 만들기 쉬웠다. rancher로 한다면 더욱.
vagrant의 경우
htps : // 기주 b. 코m/란치ぇr/오-ゔぁg란t. 기 t 을 clone
-- 8行目$number_of_nodes = 1
++ 8行目$number_of_nodes = 3
# ノードの数に合わせて変えればよろし
#vm間で通信できるようにする
#ここは環境に合わせてブリッジにするならpublicで
-- web.vm.network :private_network, ip: ip
++ web.vm.network :public_network, ip: ip, virtualbox__intnet: "intnet"
$ vagrant up
メモ
upしたらvagrantのエラーで1個しか立ち上がらんけんノードの回数
vagrant upせんといかんっぽい
$ vagrant ssh {rancher-01<ここはvagrantfileで定義されてる名前01..03>}
관리 화면을 실행
도커 실행
run에는 1GB의 여유 공간이 필요합니다.
$ docker run -d --restart=always -p 8080:8080 rancher/server
メモ
--restart=alwaysをつけて起動すると、
dockerデーモンの再起動
マシンの再起動
どちらでも、コンテナが自動再起動してくれる
--restart=always에 대한 고찰
HAProxy
RancherOS에서 본격적인 집 서버를 구축합시다.에 정의 된 구성을 위해 프록시 설치
rancher-serverにしか80と443ポートを開けてないので
agent01とagent02にリクエストを振り分ける必要がある。
さらに、httpをhttpsでリダイレクトをかけるようにしている。
なお、ロードバランシング方法はroundrobinを採用
작업 폴더 만들기
$ cd
$ mkdir haproxy
$ cd haproxy
$ touch Dockerfile
$ touch proxy.cfg
haproxy.cfg
global
maxconn 4192
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend http *:80
#redirect scheme https code 301 if !{ ssl_fc }
# ssl を使うならリダイレクトをかける
default_backend agent
#オレオレ証明書などで代用もしくは書かない
#frontend https
# bind *:443 ssl crt ~/ssl/okamu.ro.pem
# default_backend agent
frontend registry *:5000
default_backend registry
backend agent
balance roundrobin
server agent01 192.168.3.101:80
server agent02 192.168.3.102:80
backend registry
balance roundrobin
server agent01 192.168.3.101:5000
server agent02 192.168.3.102:5000
Dockerfile
FROM haproxy:1.5
ADD haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
#証明書があればコメントアウトを外す
#RUN mkdir -p ~/ssl
#ADD ssl/okamu.ro.pem ~/ssl/okamu.ro.pem
EXPOSE 80
#EXPOSE 443
EXPOSE 5000
프록시 런
docker build -t proxy .
docker run -d --restart=always -p 80:80 -p 443:443 -p 5000:5000 proxy
rancherOS(서버) 업데이트 및 관리
rancher/server 업데이트
rancher/server 중지
$ docker stop <container_id_of_original_server>
일시적으로 볼륨으로 퇴피
$ docker create --volumes-from <container_name_of_original_server> --name rancher-data rancher/server:<tag_of_previous_rancher_server>
새 버전의 rancher/server를 pull
$ docker pull rancher/server:latest
후퇴 한 볼륨에서 rancher/server를 실행하십시오.
$ docker run -d --volumes-from rancher-data --restart=always -p 8080:8080 rancher/server:latest
기타
rancher 서버가 떨어지면
Reference
이 문제에 관하여(【Docker】RancherOS에서 본격적인 집 서버를 구축하자(2) ~ rancher-server를 설치 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okamu_/items/305e0af4545901d44a94텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)