プラットフォーム雲基石-CoreOSのクラスタ編(インターネット不要)

5447 ワード

まず『プラットフォーム雲基石-CoreOSのオフラインインストール編(インターネット不要)』に従って3台のCoreOSマシンをインストールする(CoreOS公式によるとクラスタには少なくとも3台のマシンが必要).
      公式ドキュメントのクラスタの構成についてはcloud-config.yamlでdiscoveryを構成する必要がありますが、私の実験環境には外部ネットワークがありません.
 
 
#cloud-config

coreos:
  etcd:
    # generate a new token for each unique cluster from https://discovery.etcd.io/new
    discovery: https://discovery.etcd.io/<token>
    # multi-region and multi-cloud deployments need to use $public_ipv4
    addr: $private_ipv4:4001
    peer-addr: $private_ipv4:7001
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start

 
 
 ソリューション1、自分のDiscovery Endpointを構築する(私は解決していない)
https://github.com/coreos/discovery.etcd.io ローカルデプロイメントをダウンロードします.私はアクセス表示を配置してtokenを生成することができなくて、試みを放棄して、興味のある友达は試して、あなたの解決を期待することができます.
 
ソリューション2、etcdを手動で起動(問題あり)
ログインcoreos 1
 
ssh [email protected]

次のコードを実行します. 
 
 
etcd -name="coreos1" -addr="192.168.1.104:4001" -peer-addr="192.168.1.104:7001"  -data-dir="/home/core/etcd"

 
 
ログインcoreos 2
 
ssh [email protected]

 次のコードを実行します. 
 
 
etcd -name="coreos2" -addr="192.168.1.105:4001" -peer-addr="192.168.1.105:7001" -peers="192.168.1.104:7001" -data-dir="/home/core/etcd"

 
 
ログインcoreos 3
 
ssh [email protected]

 次のコードを実行します.
 
 
etcd -name="coreos3" -addr="192.168.1.106:4001" -peer-addr="192.168.1.106:7001" -peers="192.168.1.104:7001,192.168.1.105:7001" -data-dir="/home/core/etcd"

 
 
テストクラスタ
新しいウィンドウを開いてcoreos 1にログイン
 
ssh [email protected]

 入力
fleetctl list-machines

 に届く
core@coreos1 ~ $ fleetctl list-machines
MACHINE         IP              METADATA
79a6a4fe...     192.168.1.103   -
d049e2ca...     192.168.1.106   -
dcbf31c5...     192.168.1.105   -

 
に質問
1、etcdはバックグラウンドで実行できない
上記のetcdコマンドに従って実行すると、クライアントを閉じるとetcdが閉じられ、クラスタがなくなり、nohupが無効になります.
 
ソリューション3:cloud-config.yaml(これを使いましょう)
単一マシンは『プラットフォーム雲基石-CoreOSのオフラインインストール編(インターネット不要)』に従い、構成は以下のように変更される.完璧に解決!ここではyamlファイルのフォーマットのインデント、スペース、tabなどに特に注意し、失敗したらファイルをチェックします.
最初の機械
プライマリノードは、次のように構成されています.
cloud-config-104.yaml
#cloud-config

hostname: coreos1

coreos:  
  etcd:    
    addr: 192.168.1.104:4001
    peer-addr: 192.168.1.104:7001
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start
    - name: static.network
      content: |
        [Match]
        Name=enp3s0

        [Network]
        Address=192.168.1.104/24
        Gateway=192.168.1.254
        DNS=192.168.1.254	
users:  
  - name: core
    ssh-authorized-keys: 
      - ssh-rsa #    

  - groups:
      - sudo
      - docker

 
 2台目の機械
cloud-config-105.yaml
#cloud-config

hostname: coreos2

coreos:  
  etcd:    
    peers: 192.168.1.104:7001
    addr: 192.168.1.105:4001
    peer-addr: 192.168.1.105:7001
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start
    - name: static.network
      content: |
        [Match]
        Name=enp3s0

        [Network]
        Address=192.168.1.105/24
        Gateway=192.168.1.254
        DNS=192.168.1.254	
users:  
  - name: core
    ssh-authorized-keys: 
      - ssh-rsa #    

  - groups:
      - sudo
      - docker

 
 3台目の機械
 cloud-config-106.yaml
 
#cloud-config

hostname: coreos3

coreos:  
  etcd:    
    peers: 192.168.1.104:7001
    addr: 192.168.1.106:4001
    peer-addr: 192.168.1.106:7001
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start
    - name: static.network
      content: |
        [Match]
        Name=enp3s0

        [Network]
        Address=192.168.1.106/24
        Gateway=192.168.1.254
        DNS=192.168.1.254	
users:  
  - name: core
    ssh-authorized-keys: 
      - ssh-rsa  #    
  - groups:
      - sudo
      - docker

 テスト
fleetctl list-machines