【Docker】RancherOS에서 본격적인 집 서버를 구축하자(2) ~ rancher-server를 설치 ~

rancher-server를 설치하자.





관련 기사


  • RancherOS에서 본격적인 집 서버를 구축합시다.
  • RancherOS에서 rancher-server를 설치합시다. ← 지금 여기
  • RancherOS에서 rancher-agent를 구축합시다.
  • RancherOS에서 GlusterFS를 사용하여 데이터를 영구화합시다.
  • RancherOS에서 private registory로 docker image를 관리합시다.
  • Rancher의 CATALOG 라이브러리 목록

  • rancherOS 설치





    iso의 경우



  • htps : // / ぇ あせ s. 란치 r. 이 m/오 s/아 st/란치ぇ로 s. 이소 을 CD에 구워
  • CD 기동(ID:rancher,Pass:rancher)
  • touch cloud-donfig.yml

  • 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의 경우




  • ES2/ECS로 생성
  • VPC를 만들고 그 안에 새 인스턴스를 설정합니다.
  • rancheros-v0.4.3-0-amazon-ecs-optimized
  • 보안 그룹

  •             80 - 80
                22 - 22
                8080 - 8080
                5000 - 5000(private registry用)
    
  • ECS로 작성
    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
  • Vagrantfile 편집
  •     -- 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에 대한 고찰
  • 몇 분 후 rancher-server 8080에 액세스하면 관리 화면이 나타납니다




  • 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 서버가 떨어지면


  • rancherOS 업데이트 절차를 따르십시오.
  • 좋은 웹페이지 즐겨찾기