CoreOSによるDockerコンテナのクラスタリング
-
Upload
yuji-oda -
Category
Technology
-
view
10.182 -
download
0
description
Transcript of CoreOSによるDockerコンテナのクラスタリング
![Page 1: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/1.jpg)
![Page 2: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/2.jpg)
![Page 3: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/3.jpg)
![Page 4: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/4.jpg)
![Page 5: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/5.jpg)
![Page 6: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/6.jpg)
![Page 7: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/7.jpg)
![Page 8: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/8.jpg)
![Page 9: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/9.jpg)
![Page 10: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/10.jpg)
![Page 11: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/11.jpg)
![Page 12: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/12.jpg)
![Page 13: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/13.jpg)
![Page 14: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/14.jpg)
![Page 15: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/15.jpg)
[Unit]
Description=busybox
Requires=docker.service
After=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill busybox
ExecStartPre=-/usr/bin/docker rm busybox
ExecStartPre=/usr/bin/docker pull busybox
ExecStart=/usr/bin/docker run --name busybox busybox /bin/sh -c "while
true; do echo Hello World; sleep 1; done"
ExecStop=/usr/bin/docker stop busybox
[X-Fleet]
X-Conflicts=busybox@*.service
![Page 16: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/16.jpg)
![Page 17: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/17.jpg)
![Page 18: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/18.jpg)
![Page 19: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/19.jpg)
![Page 20: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/20.jpg)
![Page 21: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/21.jpg)
![Page 22: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/22.jpg)
![Page 23: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/23.jpg)
coreos: etcd: discovery: https://discovery.etcd.io/<token> addr: $private_ipv4:4001 peer-addr: $private_ipv4:7001 units: - name: etcd.service command: start - name: fleet.service command: start
ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0g+ZTxC7weoIJLUafOgrm+h...
write_files: - path: /etc/motd permissions: 0644 owner: root content: | Good news, everyone!
![Page 24: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/24.jpg)
![Page 25: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/25.jpg)
#cloud-config
coreos: update: reboot-strategy: best-effort etcd: # generate a new token for each unique cluster from https://discovery.etcd.io/new discovery: https://discovery.etcd.io/<token> addr: $private_ipv4:4001 peer-addr: $private_ipv4:7001 units: - name: etcd.service command: start - name: fleet.service command: start
![Page 26: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/26.jpg)
write_files:
- path: /tmp/[email protected]
content: |
[Unit]
Description=busybox
Requires=docker.service
After=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill busybox-%i
ExecStartPre=-/usr/bin/docker rm busybox-%i
ExecStartPre=/usr/bin/docker pull busybox
ExecStart=/usr/bin/docker run --name busybox-%i busybox /bin/sh -
c "while true; do echo Hello World; sleep 1; done"
ExecStop=/usr/bin/docker stop busybox-%i
[X-Fleet]
X-Conflicts=busybox@*.service
![Page 27: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/27.jpg)
# 必要に応じてgcloud config set project <project_id>gcloud config set compute/zone asia-east1-agcloud config set compute/region asia-east1
# 3つのインスタンスを起動gcloud compute instances create core1 core2 core3 --image coreos \ --machine-type f1-micro --metadata-from-file user-data=cloud-config.yaml
![Page 28: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/28.jpg)
# ログインgcloud compute ssh core1
# サービスの登録と起動fleetctl submit /tmp/[email protected] start busybox@{1,2}.servicefleetctl list-units
![Page 29: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/29.jpg)
# unitに割り当てのあるインスタンスを削除してみる
gcloud compute instances delete core2
gcloud compute ssh core1
# フェイルオーバーが行われることを確認
fleetctl list-units
UNIT DSTATE STATE MACHINE ACTIVE
[email protected] inactive inactive - -
[email protected] launched launched ffc81480.../10.xxx.xxx.237 active
[email protected] launched launched 99f741a8.../10.xxx.xxx.150 active
UNIT DSTATE STATE MACHINE ACTIVE
[email protected] inactive inactive - -
[email protected] launched launched ffc81480.../10.xxx.xxx.237 active
[email protected] launched launched 27c76d9a.../10.xxx.xxx.221 activa
ting
![Page 30: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/30.jpg)
![Page 31: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/31.jpg)
![Page 32: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/32.jpg)
![Page 33: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/33.jpg)
![Page 34: CoreOSによるDockerコンテナのクラスタリング](https://reader033.fdocuments.net/reader033/viewer/2022052410/54b759f34a79593e0d8b45cb/html5/thumbnails/34.jpg)