LXCを使った軽量仮想環境。
これからの動向が気になるところ。
情報共有しましょう。
http://www.docker.io/
前スレ
Docker Part2
https://mao.5ch.net/test/read.cgi/linux/1506574845/
Docker Part3
■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
2019/03/08(金) 14:40:20.55ID:VDOvuQ0J2019/12/01(日) 23:19:09.03ID:YiJOHqAn
2019/12/01(日) 23:20:20.84ID:YiJOHqAn
2019/12/01(日) 23:41:50.11ID:Y8NJ61TV
Ruby 製のVagrant の作者、HashiCorp のMitchell Hashimoto は、今世紀最大の起業家!
今は、Go 製のTerraform, Packer を作っている
彼が時代の中心だから、彼についていけばよい
他には、CircleCI, GitHub Actions
今は、Go 製のTerraform, Packer を作っている
彼が時代の中心だから、彼についていけばよい
他には、CircleCI, GitHub Actions
2019/12/01(日) 23:55:04.57ID:YiJOHqAn
> おれはお前以外の人の書き込みからそれを学んで、心から納得したよ。
ようやくVMとDockerは使い方が違う。組み合わせて使うものと理解したようだが
お前のその書き込みは「お前から学んだということは認めたくない」と言うためだけの書き込みだなw
「組み合わせて使う」と書き込んでるのはたいてい俺だと思うけど、
俺以外の書き込みから学んだとは、一体どの書き込みから学んだんだろうか?
指摘してみてほしいところだが、ま、いえないよなぁw
ようやくVMとDockerは使い方が違う。組み合わせて使うものと理解したようだが
お前のその書き込みは「お前から学んだということは認めたくない」と言うためだけの書き込みだなw
「組み合わせて使う」と書き込んでるのはたいてい俺だと思うけど、
俺以外の書き込みから学んだとは、一体どの書き込みから学んだんだろうか?
指摘してみてほしいところだが、ま、いえないよなぁw
2019/12/01(日) 23:59:45.78ID:YiJOHqAn
>>415
CircleCIもGitHub ActionsもDockerベース
CircleCIは2.0でDockerベースに変わったし、
GitHub Actionsは以前はDockerfileが必須だった。
Packerも随分前からDockerイメージを作れる
(Packerはしばらく使ってないが、dockerのキャッシュ使うようになった?
正直これができないと、使い物にならないレベルなんだけど)
Terraformはすまんね。知らない。
世の中Dockerだらけw
CircleCIもGitHub ActionsもDockerベース
CircleCIは2.0でDockerベースに変わったし、
GitHub Actionsは以前はDockerfileが必須だった。
Packerも随分前からDockerイメージを作れる
(Packerはしばらく使ってないが、dockerのキャッシュ使うようになった?
正直これができないと、使い物にならないレベルなんだけど)
Terraformはすまんね。知らない。
世の中Dockerだらけw
418417
2019/12/02(月) 00:04:37.15ID:iQ/jQknl VagrantはVirtualBoxがHyperVと共存できないから使うのやめたな。
Vagrant+HyperVという使い方ができるのは知ってるけど、
WSLができてWindowsがLinux同等に使えるようになったから実機で必要十分になった。
(Macはもとより実機で開発。もちろんDockerはWindowsでもMacでも使える。)
わざわざ開発マシン(実機)の中に、別の開発マシン(VM)を作るという二重構成にする必要がない。
Vagrant+HyperVという使い方ができるのは知ってるけど、
WSLができてWindowsがLinux同等に使えるようになったから実機で必要十分になった。
(Macはもとより実機で開発。もちろんDockerはWindowsでもMacでも使える。)
わざわざ開発マシン(実機)の中に、別の開発マシン(VM)を作るという二重構成にする必要がない。
419login:Penguin
2019/12/02(月) 09:24:17.50ID:UZ4iaYjq Windowsでdocker自体を動かすのには
さすがに仮想マシンが必要
ホストOSもLinuxなら要らない
Docker for WindowsはLinux使うからHyper-Vが必要
WSL2もHyper-Vを利用する
WSL2は必要なHyper-V機能の一部がHome Editionにも配布されるので
Homeでも利用可能になる
仮想マシンを利用する方式に変更した事で
WSL1では動かなかったdockerもWSL2では使えるようになった
さすがに仮想マシンが必要
ホストOSもLinuxなら要らない
Docker for WindowsはLinux使うからHyper-Vが必要
WSL2もHyper-Vを利用する
WSL2は必要なHyper-V機能の一部がHome Editionにも配布されるので
Homeでも利用可能になる
仮想マシンを利用する方式に変更した事で
WSL1では動かなかったdockerもWSL2では使えるようになった
420login:Penguin
2019/12/02(月) 15:23:52.09ID:cX5TDnkz GAFAMは普通にDockerの考え方に順応して使ってるよな
最近出てきた訳でもない
登場してかなり経つ安定した技術なのに
まだ全く使ってないというのは流石に頭硬すぎ
最近出てきた訳でもない
登場してかなり経つ安定した技術なのに
まだ全く使ってないというのは流石に頭硬すぎ
2019/12/02(月) 21:16:18.41ID:nGJwV5Oa
GoogleはDockerが登場する前からコンテナ使ってたらしいしな
そういう所は今、一日に何十回(何百回?)もデプロイしてる。
古いやり方、多くても一ヶ月に一回、一週間前までにデプロイ計画立てて
サービス停止して深夜作業でデプロイするようなやり方では到底無理
顧客も賢くなってきてるから、丁寧にやってるから遅いんですよとかいう
言い訳はもう通じなくなってる。
みんながコンテナ使ってる中、あなたはコンテナ使わずに
同じぐらいの速度で開発ができますか?ってことだよ。
そういう所は今、一日に何十回(何百回?)もデプロイしてる。
古いやり方、多くても一ヶ月に一回、一週間前までにデプロイ計画立てて
サービス停止して深夜作業でデプロイするようなやり方では到底無理
顧客も賢くなってきてるから、丁寧にやってるから遅いんですよとかいう
言い訳はもう通じなくなってる。
みんながコンテナ使ってる中、あなたはコンテナ使わずに
同じぐらいの速度で開発ができますか?ってことだよ。
2019/12/03(火) 00:34:18.03ID:tig7/aUP
オフラインで使う組み込み系だと開発環境構築をちょっと楽するぐらいしか使い道ないわ
423login:Penguin
2020/01/04(土) 16:07:12.22ID:IuViAdEQ 1. あるマシンに他ユーザーから隠しておきたい秘密情報のファイルがある
2. rootから隠すことはできない。
3. だから他ユーザーはrootになったりsudoが使えてはいけない。(自分はなって良い)
4. ユーザーがdockerを使えるということはrootの権限があるのと同じことである
(例えばボリュームを使えば、どのディレクトリも読み書きができる。)
5. dockerグループに追加してdockerコマンドの実行にsudoを不要にした所でそれは変わらない
以上のことから、あるマシンに他ユーザーから隠しておきたい秘密情報がある場合は
そのマシンで他にdockerが使えるユーザーがいてはならない
言い換えると、自分以外のdocker使用者がいる場合はそのマシンに秘密情報を置くことができないので
「秘密情報を置いて安全に管理してる」ならば「他に自分以外のdocker使用者がいない」を意味する
あってるよね?
2. rootから隠すことはできない。
3. だから他ユーザーはrootになったりsudoが使えてはいけない。(自分はなって良い)
4. ユーザーがdockerを使えるということはrootの権限があるのと同じことである
(例えばボリュームを使えば、どのディレクトリも読み書きができる。)
5. dockerグループに追加してdockerコマンドの実行にsudoを不要にした所でそれは変わらない
以上のことから、あるマシンに他ユーザーから隠しておきたい秘密情報がある場合は
そのマシンで他にdockerが使えるユーザーがいてはならない
言い換えると、自分以外のdocker使用者がいる場合はそのマシンに秘密情報を置くことができないので
「秘密情報を置いて安全に管理してる」ならば「他に自分以外のdocker使用者がいない」を意味する
あってるよね?
424login:Penguin
2020/01/04(土) 16:20:38.88ID:IuViAdEQ dockerサーバーがリモートにある場合がよくわからないんだよな
マシンAとマシンBがあってそれぞれ所有者は異なる。
dockerサーバーがリモートにあって
マシンAとマシンBの両方から接続する
ん?ローカルのディレクトリってリモートマシンのボリュームにできるの?
マシンAがdockerサーバーでコンテナを作ったとして、
マシンBが同じdockerサーバーに接続したらそのコンテナは見えてしまうのか?
つまりdocker execで乗り込めてしまうのか?
もしできてしまったら、マシンAが渡したボリュームにたいして
マシンBから読み書きできてしまう?
どこかで実験したいな
マシンAとマシンBがあってそれぞれ所有者は異なる。
dockerサーバーがリモートにあって
マシンAとマシンBの両方から接続する
ん?ローカルのディレクトリってリモートマシンのボリュームにできるの?
マシンAがdockerサーバーでコンテナを作ったとして、
マシンBが同じdockerサーバーに接続したらそのコンテナは見えてしまうのか?
つまりdocker execで乗り込めてしまうのか?
もしできてしまったら、マシンAが渡したボリュームにたいして
マシンBから読み書きできてしまう?
どこかで実験したいな
2020/01/04(土) 23:16:07.85ID:4WXnY3BD
ローカルをリモートのボリュームには通常できないでしょう。
2020/01/05(日) 09:23:16.08ID:sWW1tNjy
>>425
NFSやらSMBやらで共有するという話ではなくて?
NFSやらSMBやらで共有するという話ではなくて?
427login:Penguin
2020/01/05(日) 16:26:28.41ID:PM+h1CUF >>425
そのとおりでした。なんか勘違いしてましたね。
つまりはDockerサーバーにアクセスできるユーザーは
そのDockerサーバーが動いているマシンのroot権限を
持ってるのに等しいと理解しました。
だから例えばCIサービスとかを作るとして、複数の人が同じサーバーで
コンテナを動かす場合、Dockerに直接接続させてはならないわけですね。
ウェブインターフェースやRESTインターフェースをもたせて
そこで認証かけて、やれることも制限しろと
そのとおりでした。なんか勘違いしてましたね。
つまりはDockerサーバーにアクセスできるユーザーは
そのDockerサーバーが動いているマシンのroot権限を
持ってるのに等しいと理解しました。
だから例えばCIサービスとかを作るとして、複数の人が同じサーバーで
コンテナを動かす場合、Dockerに直接接続させてはならないわけですね。
ウェブインターフェースやRESTインターフェースをもたせて
そこで認証かけて、やれることも制限しろと
2020/01/05(日) 18:41:47.66ID:6QavSJIx
root持ってりゃdocker停止もアンインストールもOSシャットダウンもできるわけなので
2020/01/05(日) 21:24:00.57ID:p4jkzryR
docker composeがルート権限必要だから、AとBでコンテナ作れたらどちらでもなんでもありになる。
2020/01/05(日) 22:06:51.29ID:9zcJiqAl
あれ非特権モードでも?
2020/01/05(日) 22:30:34.66ID:IPuUazgK
ルート権限が不要ってだけで
同じdockerサーバーに接続してるユーザー同士で
隠し事はできないよね?
同じdockerサーバーに接続してるユーザー同士で
隠し事はできないよね?
2020/01/05(日) 22:44:47.94ID:IPuUazgK
あるユーザーがDockerを起動して
同じホストの他のユーザーはそのDockerに接続できるのだろうか?
接続できてしまったら、あるユーザーのファイルは読み書きし放題?
同じホストの他のユーザーはそのDockerに接続できるのだろうか?
接続できてしまったら、あるユーザーのファイルは読み書きし放題?
2020/01/05(日) 22:50:31.17ID:IPuUazgK
そうか、MySQLなんかと何が違うのかと思ったら
Dockerって認証がないのか。無いよね?
Dockerって認証がないのか。無いよね?
435429
2020/01/05(日) 23:36:13.44ID:p4jkzryR ルートレスモードは分からないが、通常モードはその通り。マルチユーザー向きではない。
実験した方が早いのでは?ルートレスをインストールして、
ubuntu 辺りで二つアカウント作って、
それぞれのコンテナにアクセスできるかどうか。
実験した方が早いのでは?ルートレスをインストールして、
ubuntu 辺りで二つアカウント作って、
それぞれのコンテナにアクセスできるかどうか。
2020/01/06(月) 08:12:36.75ID:/JEJvQJG
Docker Toolbox (windows)使ってる人いる?
docker run -v /:/mnt -it alpine ls -al /mnt
の結果が見たいんだけど誰か貼り付けてくれない?
ちなみにDocker Desktop for Windowsの場合
total 8494
drwxr-xr-x 1 root root 280 Jan 4 19:54 .
drwxr-xr-x 1 root root 4096 Jan 5 23:10 ..
lrwxrwxrwx 1 root root 11 Jan 4 19:54 C -> /host_mnt/c
drwxr-xr-x 2 root root 14336 Nov 13 09:39 bin
lrwxrwxrwx 1 root root 11 Jan 4 19:54 c -> /host_mnt/c
drwxr-xr-x 11 root root 2960 Jan 4 19:54 dev
drwxr-xr-x 1 root root 180 Jan 4 19:54 etc
drwxr-xr-x 1 root root 60 Jan 5 22:08 home
drw-r--r-- 3 root root 60 Jan 4 19:54 host_mnt
drwxr-xr-x 1 root root 60 Jan 4 19:54 lib
drwxr-xr-x 5 root root 2048 Nov 13 09:39 media
drwxr-xr-x 2 root root 2048 Nov 13 09:39 mnt
drwxr-xr-x 1 root root 80 Jan 4 19:54 opt
dr-xr-xr-x 174 root root 0 Jan 5 04:53 proc
drwx------ 1 root root 60 Jan 4 19:54 root
drwxr-xr-x 1 root root 140 Jan 4 19:54 run
drwxr-xr-x 2 root root 30720 Nov 13 09:39 sbin
-rwxr-xr-x 1 root root 8640280 Nov 6 09:27 sendtohost
drwxr-xr-x 2 root root 2048 Nov 13 09:39 srv
dr-xr-xr-x 13 root root 0 Jan 5 21:55 sys
drwxrwxrwt 1 root root 40 Jan 5 23:10 tmp
drwxr-xr-x 1 root root 80 Nov 13 09:39 usr
drwxr-xr-x 13 root root 2048 Nov 13 09:39 var
docker run -v /:/mnt -it alpine ls -al /mnt
の結果が見たいんだけど誰か貼り付けてくれない?
ちなみにDocker Desktop for Windowsの場合
total 8494
drwxr-xr-x 1 root root 280 Jan 4 19:54 .
drwxr-xr-x 1 root root 4096 Jan 5 23:10 ..
lrwxrwxrwx 1 root root 11 Jan 4 19:54 C -> /host_mnt/c
drwxr-xr-x 2 root root 14336 Nov 13 09:39 bin
lrwxrwxrwx 1 root root 11 Jan 4 19:54 c -> /host_mnt/c
drwxr-xr-x 11 root root 2960 Jan 4 19:54 dev
drwxr-xr-x 1 root root 180 Jan 4 19:54 etc
drwxr-xr-x 1 root root 60 Jan 5 22:08 home
drw-r--r-- 3 root root 60 Jan 4 19:54 host_mnt
drwxr-xr-x 1 root root 60 Jan 4 19:54 lib
drwxr-xr-x 5 root root 2048 Nov 13 09:39 media
drwxr-xr-x 2 root root 2048 Nov 13 09:39 mnt
drwxr-xr-x 1 root root 80 Jan 4 19:54 opt
dr-xr-xr-x 174 root root 0 Jan 5 04:53 proc
drwx------ 1 root root 60 Jan 4 19:54 root
drwxr-xr-x 1 root root 140 Jan 4 19:54 run
drwxr-xr-x 2 root root 30720 Nov 13 09:39 sbin
-rwxr-xr-x 1 root root 8640280 Nov 6 09:27 sendtohost
drwxr-xr-x 2 root root 2048 Nov 13 09:39 srv
dr-xr-xr-x 13 root root 0 Jan 5 21:55 sys
drwxrwxrwt 1 root root 40 Jan 5 23:10 tmp
drwxr-xr-x 1 root root 80 Nov 13 09:39 usr
drwxr-xr-x 13 root root 2048 Nov 13 09:39 var
2020/01/06(月) 08:41:19.24ID:/JEJvQJG
Docker Desktop for WSL2ってWSL2の中のディレクトリもボリュームに指定できるっぽい?
2020/01/06(月) 08:54:42.63ID:OVK7howH
ただのVMなんだからできないわけがないだろう
2020/01/06(月) 09:09:29.13ID:/JEJvQJG
>>437
WSL1もVMだよ?
現行のDocker Desktop for Windowsではdocker専用のVMを使っていて、
Docker Desktop for WSL2では、WSLすべてで一つのVMを共有しているからできるのかな?
WSL1もVMだよ?
現行のDocker Desktop for Windowsではdocker専用のVMを使っていて、
Docker Desktop for WSL2では、WSLすべてで一つのVMを共有しているからできるのかな?
2020/01/06(月) 09:09:40.26ID:/JEJvQJG
>>438あての間違い
2020/01/06(月) 09:10:28.32ID:/JEJvQJG
もう一つ訂正
× WSL1もVMだよ?
○ Docker Desktop for WindowsもVMだよ?
WSL1はVMではないね
× WSL1もVMだよ?
○ Docker Desktop for WindowsもVMだよ?
WSL1はVMではないね
2020/01/06(月) 09:12:31.58ID:2KANC7Df
よく知らんがwslのディレクトリをwinからマウント出来るのであれば可能なんじゃないの?試して教えて
2020/01/06(月) 09:13:49.21ID:/JEJvQJG
でもまあ、すべてのWSLのインスタンスd一つのVMを共有しているからと言って
そのWSLはコンテナ技術で分離されてるはずなんだから、そう単純にはいかないはずなんだがな
/mnt/wslに他のWSLのコンテナのディレクトリらしきものが見えてるし
WSLのコンテナ間でディレクトリを共有する技術がWSL2にあるんだろうな
そのWSLはコンテナ技術で分離されてるはずなんだから、そう単純にはいかないはずなんだがな
/mnt/wslに他のWSLのコンテナのディレクトリらしきものが見えてるし
WSLのコンテナ間でディレクトリを共有する技術がWSL2にあるんだろうな
2020/01/06(月) 09:18:27.00ID:/JEJvQJG
WSL2のubuntuのマウント状況
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sdd ext4 263174212 1396116 248339940 1% /
tmpfs tmpfs 1633568 0 1633568 0% /mnt/wsl
tools 9p 66509328 30595464 35913864 47% /init
none devtmpfs 1631092 0 1631092 0% /dev
none tmpfs 1633568 8 1633560 1% /run
none tmpfs 1633568 0 1633568 0% /run/lock
none tmpfs 1633568 0 1633568 0% /run/shm
none tmpfs 1633568 0 1633568 0% /run/user
tmpfs tmpfs 1633568 0 1633568 0% /sys/fs/cgroup
C:\ 9p 66509328 30595464 35913864 47% /mnt/c
/dev/sdc ext4 263174212 1545568 248190488 1% /mnt/wsl/docker-desktop-data/isocache
/dev/sdb ext4 263174212 123192 249612864 1% /mnt/wsl/docker-desktop/shared-sockets
/dev/loop0 iso9660 248570 248570 0 100% /mnt/wsl/docker-desktop/cli-tools
/mnt/wsl/docker-desktop-dataとかって/dev/sdcでext4なのか
ちょっと想定外だったw これ他のコンテナじゃなさそう。
WSLに割り当てたディスクなのかも
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sdd ext4 263174212 1396116 248339940 1% /
tmpfs tmpfs 1633568 0 1633568 0% /mnt/wsl
tools 9p 66509328 30595464 35913864 47% /init
none devtmpfs 1631092 0 1631092 0% /dev
none tmpfs 1633568 8 1633560 1% /run
none tmpfs 1633568 0 1633568 0% /run/lock
none tmpfs 1633568 0 1633568 0% /run/shm
none tmpfs 1633568 0 1633568 0% /run/user
tmpfs tmpfs 1633568 0 1633568 0% /sys/fs/cgroup
C:\ 9p 66509328 30595464 35913864 47% /mnt/c
/dev/sdc ext4 263174212 1545568 248190488 1% /mnt/wsl/docker-desktop-data/isocache
/dev/sdb ext4 263174212 123192 249612864 1% /mnt/wsl/docker-desktop/shared-sockets
/dev/loop0 iso9660 248570 248570 0 100% /mnt/wsl/docker-desktop/cli-tools
/mnt/wsl/docker-desktop-dataとかって/dev/sdcでext4なのか
ちょっと想定外だったw これ他のコンテナじゃなさそう。
WSLに割り当てたディスクなのかも
2020/01/08(水) 15:48:58.62ID:ksPzE1/R
あるコンテナを--restart=alwaysで自動起動するタイミングで、ホスト側でコマンドを実行させる方法ってありますか?
「そのコンテナが起動したら、ホストのスタティックルートをコンテナのIPに向ける」
という条件を実現したいです。
これまでは --restart=always を使っておらず、スクリプトでいちいちコンテナを起動していました。
それならスクリプト内にrouteコマンドを仕込んでおくだけで簡単だったんですが。
「そのコンテナが起動したら、ホストのスタティックルートをコンテナのIPに向ける」
という条件を実現したいです。
これまでは --restart=always を使っておらず、スクリプトでいちいちコンテナを起動していました。
それならスクリプト内にrouteコマンドを仕込んでおくだけで簡単だったんですが。
2020/01/08(水) 15:52:55.36ID:wWoUnX7g
そんな面倒なことしなくても普通に固定IP振ればいいだけでは
2020/01/08(水) 16:50:00.22ID:ksPzE1/R
コンテナでOpenVPN動かしてて、そのVPN先までルートを通したいんですよね。
コンテナには固定IP振ってるんですが、そもそもその固定IPがDockerネットワークなので
OS起動時には存在せず、OS起動時のルーティングは切れない、と。
コンテナに物理NWのIPを振るとか
ホストでcron回すとか割と泥臭いことやれば解決できると思うんですが、
なんかもっとスマートな方法ないかな…と。
コンテナには固定IP振ってるんですが、そもそもその固定IPがDockerネットワークなので
OS起動時には存在せず、OS起動時のルーティングは切れない、と。
コンテナに物理NWのIPを振るとか
ホストでcron回すとか割と泥臭いことやれば解決できると思うんですが、
なんかもっとスマートな方法ないかな…と。
2020/01/08(水) 17:21:17.56ID:ITBdUvUl
好みとは思うが
「コンテナの機能にホストが依存する構成」
は上下ひっくり返った感じで落ち着かないので避ける
「コンテナの機能にホストが依存する構成」
は上下ひっくり返った感じで落ち着かないので避ける
2020/01/08(水) 18:55:54.72ID:i7Ggys1A
450login:Penguin
2020/01/08(水) 20:29:54.16ID:m+D5UTvu Kubernetesのhelmチャートには
ホストOSの設定を起動時に変える物があるけど?
kiamはAWSのメタデータAPIへのアクセスを仲介するのにiptableルールを自動的に書き換える機能がある
Elasticsearchはカーネル設定のvm.max_map_countを特権コンテナを使って置き換える
これらはホストごとに一回だけで良いので
1回しか起動しないが
ホストOSの設定を起動時に変える物があるけど?
kiamはAWSのメタデータAPIへのアクセスを仲介するのにiptableルールを自動的に書き換える機能がある
Elasticsearchはカーネル設定のvm.max_map_countを特権コンテナを使って置き換える
これらはホストごとに一回だけで良いので
1回しか起動しないが
2020/01/08(水) 20:36:06.71ID:avX2X6NW
だから何なの
2020/01/08(水) 22:07:16.36ID:htMW+uqX
前の人もそうだが、複雑な事をやりたければk8s使えばどうにかなる。
設定その他簡単ではないけどね
設定その他簡単ではないけどね
2020/01/08(水) 22:23:08.42ID:i7Ggys1A
話分かってないならでてこなくていいよ。
k8sは大規模な構成を作るためのもので
複雑な事をするものではないし、
ましてや間違った使い方を解決するためのものでもない
たった数個のコンテナでk8sなんか使い物になるかよ
OpenVPNなんて使用メモリ5MBぐらいで、貧弱なブロードバンドルータでも
動くっていうのにk8sつかうと1GBも持っていかれるわ
超軽量(苦笑)のk3sでもたった(苦笑)512MBってアピールしてる程度だしな
k8sは大規模な構成を作るためのもので
複雑な事をするものではないし、
ましてや間違った使い方を解決するためのものでもない
たった数個のコンテナでk8sなんか使い物になるかよ
OpenVPNなんて使用メモリ5MBぐらいで、貧弱なブロードバンドルータでも
動くっていうのにk8sつかうと1GBも持っていかれるわ
超軽量(苦笑)のk3sでもたった(苦笑)512MBってアピールしてる程度だしな
454login:Penguin
2020/01/08(水) 23:57:27.85ID:ghrrHBBS よく分かんないけどホストOSのネットワークで動かしたり
ポートマッピングでホストOSのポートでアクセスできるよう設定してから
iptablesでルート設定して流すだけじゃないの?
ポートマッピングでホストOSのポートでアクセスできるよう設定してから
iptablesでルート設定して流すだけじゃないの?
2020/01/09(木) 00:45:09.92ID:M2xrYdZL
2020/01/09(木) 04:57:13.50ID:6QLBQsrn
2020/01/09(木) 05:08:33.92ID:6QLBQsrn
VPNのIPの話はk8sのサービス→ロードバランサ使えば瞬時に解決する話。
k8sは外部公開用の話が多いのでその手の技術や情報が充実している。dockerはローカル環境想定なので、外部公開系はできなくはないが機能的に微妙。
そもそもとしてvpnはクラウド経由させれば細かいIPの設定は不要なわけだが、その辺りの知識も無さそうw
k8sは外部公開用の話が多いのでその手の技術や情報が充実している。dockerはローカル環境想定なので、外部公開系はできなくはないが機能的に微妙。
そもそもとしてvpnはクラウド経由させれば細かいIPの設定は不要なわけだが、その辺りの知識も無さそうw
2020/01/09(木) 08:20:56.55ID:M2xrYdZL
2020/01/09(木) 08:21:38.97ID:M2xrYdZL
あと電気代じゃねーぞ。まあ電気代の話にすり替えてごまかそうとしてるんだろうけどなw
2020/01/09(木) 08:23:29.67ID:M2xrYdZL
461login:Penguin
2020/01/09(木) 08:51:57.55ID:CnTio2h+ Dockerコンテナをシステム・サービスのように使う例などいくらでもある
https://coreos.com/os/docs/latest/booting-on-ecs.html
これだってそうだ
kiam同様、AWSメタデータ APIの仲介役として
ECSエージェントとして利用している
kiamやElasticsearchのhelmチャートが
ホストOSの設定を変更するのは、あくまで一例
Dockerコンテナ内でやらずとも、systemdユニットでやる方法がある
https://coreos.com/os/docs/latest/booting-on-ecs.html
これだってそうだ
kiam同様、AWSメタデータ APIの仲介役として
ECSエージェントとして利用している
kiamやElasticsearchのhelmチャートが
ホストOSの設定を変更するのは、あくまで一例
Dockerコンテナ内でやらずとも、systemdユニットでやる方法がある
462login:Penguin
2020/01/09(木) 09:04:53.08ID:CnTio2h+ DockerでOpenVPNってこれ?
https://github.com/kylemanna/docker-openvpn/blob/master/README.md
コンテナに特権を与える事でホストOSのネットワークへのアクセスを可能にしている
systemdの初期化スクリプトも入ってる
これ使えばいいんじゃね?
知らんけど
https://github.com/kylemanna/docker-openvpn/blob/master/README.md
コンテナに特権を与える事でホストOSのネットワークへのアクセスを可能にしている
systemdの初期化スクリプトも入ってる
これ使えばいいんじゃね?
知らんけど
2020/01/09(木) 09:16:12.84ID:M2xrYdZL
今回問題にしてるのは、システムサービスじゃなくて
ルーティングサービスだ
ルーティングサービスだ
464login:Penguin
2020/01/09(木) 09:28:46.16ID:CnTio2h+ 特権与えればホストOSの設定にアクセス出来るから
基本的にコンテナ外でできる事は
コンテナ内でも出来る
iptablesの設定だって変えられる
変えて何が悪い?
実際やってる人なんていくらでも居るじゃん
基本的にコンテナ外でできる事は
コンテナ内でも出来る
iptablesの設定だって変えられる
変えて何が悪い?
実際やってる人なんていくらでも居るじゃん
2020/01/09(木) 11:13:36.32ID:1eanVRuK
https://github.com/hwdsl2/docker-ipsec-vpn-server
自分はこれつかってIPsec/L2TPサーバーやらせてるな
自分はこれつかってIPsec/L2TPサーバーやらせてるな
466445
2020/01/09(木) 13:14:25.22ID:cTaOp8rO 皆さんありがとうございます。
k8s未経験だけに、ルーティング1つ書くためだけに導入するのはちょっとハードル高いですが
入れればできそうってのは覚えておいて、今後機会があればやってみます。
OpenVPNコンテナは、alpineスクラッチからDockerfileで手構築です。
元々オンプレで動かしてたものをコンテナ化した都合から、色々いじってるので。
ただアプローチとしては>>464さんの言うとおりだなぁと思いました。
権限与えてるんだから、コンテナ内からホストにルーティング投げればいいだけですね。
その方向で試してみたいと思います。
k8s未経験だけに、ルーティング1つ書くためだけに導入するのはちょっとハードル高いですが
入れればできそうってのは覚えておいて、今後機会があればやってみます。
OpenVPNコンテナは、alpineスクラッチからDockerfileで手構築です。
元々オンプレで動かしてたものをコンテナ化した都合から、色々いじってるので。
ただアプローチとしては>>464さんの言うとおりだなぁと思いました。
権限与えてるんだから、コンテナ内からホストにルーティング投げればいいだけですね。
その方向で試してみたいと思います。
2020/01/10(金) 23:04:53.49ID:SGMX+Q1g
openvpnのコンテナ探して、やり方をそのままやった方が早そう
468login:Penguin
2020/01/15(水) 16:07:08.54ID:M8GRLPix dockerでもdocker-composeでもいいんだけど、
シェルスクリプトを作る以外でマルチステージビルドの
ようなことを他の手段はないですかね?
つまりあるDockerfileをbuildする。
この時、FROMに別のDockerfileが指定されていて、
そっちを先にビルドして使うような感じにしたい
FROMにイメージ名が書いてあればそれをpullするけど
そうじゃなくてイメージをアップしたくなくて、
ローカルでビルドしたい。それを自動的にしたい。
シェルスクリプトを作る以外でマルチステージビルドの
ようなことを他の手段はないですかね?
つまりあるDockerfileをbuildする。
この時、FROMに別のDockerfileが指定されていて、
そっちを先にビルドして使うような感じにしたい
FROMにイメージ名が書いてあればそれをpullするけど
そうじゃなくてイメージをアップしたくなくて、
ローカルでビルドしたい。それを自動的にしたい。
2020/01/15(水) 16:13:25.17ID:+oUgohk9
>>468
ローカルにdockerイメージリポジトリを作ればよい。
ローカルにdockerイメージリポジトリを作ればよい。
470login:Penguin
2020/01/15(水) 16:21:38.60ID:M8GRLPix dockerイメージリポジトリにイメージをアップしたくないんですよ
2020/01/15(水) 16:44:01.03ID:cqAMYOAh
いやだからローカルに作ろうよ
472login:Penguin
2020/01/15(水) 16:46:55.58ID:M8GRLPix いや、だからアップしたくないって言ってるやんw
相手の環境なんかわからないんだからさ
相手の環境なんかわからないんだからさ
473login:Penguin
2020/01/15(水) 16:48:12.41ID:M8GRLPix 相手に、このコマンドを実行すればOKですって書くのはまだいいけど、
相手に、ローカルに作ってください、作ってアップしてくださいって
手順を長々と書くのはダメやろ?
相手に、ローカルに作ってください、作ってアップしてくださいって
手順を長々と書くのはダメやろ?
2020/01/15(水) 16:51:06.82ID:6O0iX9bd
相手ってなんだよ
いきなり新しい登場人物か
いきなり新しい登場人物か
2020/01/15(水) 18:45:17.43ID:yxjUdNw1
できるけど
476login:Penguin
2020/01/15(水) 19:29:55.39ID:M8GRLPix2020/01/15(水) 21:02:50.99ID:FeJAdkeM
最初はなかった「相手」が増えてるじゃん
478login:Penguin
2020/01/15(水) 21:12:09.27ID:WmUoZk76 じゃあ「相手」は無視していいよ
関係ない話だから
関係ない話だから
2020/01/15(水) 21:30:30.57ID:D3zJtvMI
利用マニュアルにコマンド並べればいいんじゃないの?
シェルスクリプトとPowerShell両方用意してるプロジェクトもあるね
シェルスクリプトとPowerShell両方用意してるプロジェクトもあるね
480login:Penguin
2020/01/16(木) 15:06:12.13ID:HmEXTTgD2020/01/16(木) 19:00:48.25ID:zyhk0GYW
>>480
禁止っていうか、シェルスクリプト作るなら誰だってできるって話
Dockerfileビルド時に依存したDockerfileも自動的にビルドする方法は
マルチステージビルド以外では方法はなさそうね
禁止っていうか、シェルスクリプト作るなら誰だってできるって話
Dockerfileビルド時に依存したDockerfileも自動的にビルドする方法は
マルチステージビルド以外では方法はなさそうね
2020/01/17(金) 07:24:42.58ID:ZAXZSb1y
むしろマルチステージビルドという仕組みがあるのね
483login:Penguin
2020/01/19(日) 19:15:57.69ID:6YirC2HC Docker Hubのさぁ、Automated Buildでさぁ
GitHubのREADME.mdを中途半端に持ってくるのやめてくれないかな
リンクあるだけでいいだろ、あれ誰が嬉しいんだ?
GitHubのREADME.mdを中途半端に持ってくるのやめてくれないかな
リンクあるだけでいいだろ、あれ誰が嬉しいんだ?
2020/01/20(月) 17:21:05.08ID:NtEsdlOO
>>483
一理ある
一理ある
2020/01/20(月) 18:26:17.46ID:hh3AXqYf
>>483
一理あるから、Docker Hubに文句言ってきてください。
一理あるから、Docker Hubに文句言ってきてください。
2020/01/20(月) 23:01:44.50ID:j4KqcwiZ
487login:Penguin
2020/01/21(火) 00:08:02.28ID:3DzPFxLf >>486
> 概要把握したい向きもあるだろう
一行の見出しでは情報を伝えられないだろ?
Automated Buildを使わなければ丁寧に概要を書くこともできるし、
GitHubのREADME.mdをコピペすることだってできる
でもAutomated Buildを使うと、GitHubのREADME.mdを
表示させることしか出来ないんだよ
丁寧に書いてもAutomated Buildが走ると消されるwww
> 概要把握したい向きもあるだろう
一行の見出しでは情報を伝えられないだろ?
Automated Buildを使わなければ丁寧に概要を書くこともできるし、
GitHubのREADME.mdをコピペすることだってできる
でもAutomated Buildを使うと、GitHubのREADME.mdを
表示させることしか出来ないんだよ
丁寧に書いてもAutomated Buildが走ると消されるwww
488login:Penguin
2020/01/22(水) 21:54:29.16ID:tgVfjbcp Amazon EKSが50%値下げだってよ
でもまだ高い、クラスター1つくらいは
タダにしてくれよ
でもまだ高い、クラスター1つくらいは
タダにしてくれよ
489login:Penguin
2020/01/22(水) 23:01:11.05ID:Fr3HVC6X クラスター使ったことある?
高いの?
いくらすたー?
高いの?
いくらすたー?
2020/01/22(水) 23:48:26.84ID:OxBzKT9R
googleも無料枠だと無理だからねえ。
それ以前にAWSも無料枠欲しいな。
忘れてたら毎月600円課金されてた
それ以前にAWSも無料枠欲しいな。
忘れてたら毎月600円課金されてた
491login:Penguin
2020/01/24(金) 20:27:25.19ID:Pc7e1TLp etcd: t3.micro (リザーブドで購入) * 3
k8s api server: t3.small (スポットインスタンス)* 2
etcd: EBS 9GB * 3
k8s api server: EBS 16 GB * 2
これでやれば40.64ドル
EKSの72ドルより安いが
安定するかは知らない
APIサーバーの負荷分散に
NLBを使うと17.5ドル
これを含めると58.14ドル
DNSラウンドロビンでも負荷分散出来るけど
更新時の反映の遅れを考えると
NLBの方がいい
NLBはイングレスとAPIサーバーが
1つのNLBを共用も可能
EKSでイングレスの負荷分散にNLBを使うなら
72+17.5で89.5ドル
k8s api server: t3.small (スポットインスタンス)* 2
etcd: EBS 9GB * 3
k8s api server: EBS 16 GB * 2
これでやれば40.64ドル
EKSの72ドルより安いが
安定するかは知らない
APIサーバーの負荷分散に
NLBを使うと17.5ドル
これを含めると58.14ドル
DNSラウンドロビンでも負荷分散出来るけど
更新時の反映の遅れを考えると
NLBの方がいい
NLBはイングレスとAPIサーバーが
1つのNLBを共用も可能
EKSでイングレスの負荷分散にNLBを使うなら
72+17.5で89.5ドル
492login:Penguin
2020/01/24(金) 20:40:22.15ID:Pc7e1TLp HAとか気にしなければさらに安く出来るが
大事な環境でやるのはおすすめしない
t3a.smallのスポットインスタンス1つと
17GBのEBSを使い
etcdとk8sのapi serverを同居させれば
7.37ドルでコントローラーノードが作れる
いずれの場合も当然ながら
ワーカーノードは別料金
k3sとか使えばもっと安く出来るかもしれないが
やってない
大事な環境でやるのはおすすめしない
t3a.smallのスポットインスタンス1つと
17GBのEBSを使い
etcdとk8sのapi serverを同居させれば
7.37ドルでコントローラーノードが作れる
いずれの場合も当然ながら
ワーカーノードは別料金
k3sとか使えばもっと安く出来るかもしれないが
やってない
493login:Penguin
2020/01/25(土) 00:15:37.21ID:IX/hIA45 CVE-2019-5021
いまいちこの脆弱性がよくわからないんだけど、
どういうシナリオで攻撃が成功するの?
攻撃者は何を使うの?docker exec?
いまいちこの脆弱性がよくわからないんだけど、
どういうシナリオで攻撃が成功するの?
攻撃者は何を使うの?docker exec?
494login:Penguin
2020/01/25(土) 18:04:37.61ID:ES14vB7p ちょっとした疑問なんだけどさ、docker pullってあれ
レイヤーごとに並列でダウンロードしてるよね?
なんとなくレイヤーは分けたくないなって思ってたけど
でかいファイルは複数のレイヤーに分けておくと
ダウンロードが速くなったりするのかな?
その観点からのレポートってどこかにない?
レイヤーごとに並列でダウンロードしてるよね?
なんとなくレイヤーは分けたくないなって思ってたけど
でかいファイルは複数のレイヤーに分けておくと
ダウンロードが速くなったりするのかな?
その観点からのレポートってどこかにない?
2020/01/25(土) 18:13:26.66ID:oy3JqaRN
初めてDockerを触ろうと思っています
Windows10Proで動かしたいんですが調べてみると
Docker for WindowsとDocker Toolboxのどちらを入れれば良いのか分かりませんでした
用途としてはPythonの開発環境をDockerに組もうと思っているのですが
どちらを使えば良いのか教えていただけると幸いです
Windows10Proで動かしたいんですが調べてみると
Docker for WindowsとDocker Toolboxのどちらを入れれば良いのか分かりませんでした
用途としてはPythonの開発環境をDockerに組もうと思っているのですが
どちらを使えば良いのか教えていただけると幸いです
496login:Penguin
2020/01/25(土) 18:53:06.86ID:ES14vB7p 通常はDocker for Windows (=Docker Desktop for Windows)
歴史的にはWin版、Mac版共に、Docker Toolboxが最初に作られ
そしてDocker Desktop for Windows or Macが作られた。
Docker Toolboxは古いもの扱い。
1. Docker Toolbox・・・仮想マシンとしてVirtualBoxを使った実装
2. Docker Desktop ・・・WindowsではHyperV、MacではOSネイティブの何とかを使った実装
つまり、サードメーカーのVirtualBoxを使うのをやめて
OSネイティブの仮想マシン技術を使うようになった
ただしその結果、Windowsでは制限が生まれた。
HyperVはProでしか使えない。HyperVはVirtual BoxやVMWareと(ほぼ)共存できない。
だからHomeを使ってるとか、他の競合する仮想マシンを
使う必要があるなら古いDocker Toolboxを使わざるを得ない
3. Docker Desktop for WSL2 が近いうちに登場する
WSL2は近々登場するWindows標準機能で、
HyperVのサブセット機能の仮想マシンを使って動かすLinux環境
Docker Desktop for WindowsはDocker社で作ったLinux環境を使っているが
Docker Desktop for WSL2はWindows標準のWSL2のLinux環境を使うようになる
WSL2はいろんな性能が向上しているとともに、Windows 10 Homeでも使えるようになる。
Virtual BoxやVMWareと共存は相変わらず出来ないが、こっちは別で共存できるように開発中
あと数カ月後はDocker Desktop for WSL2を使う
歴史的にはWin版、Mac版共に、Docker Toolboxが最初に作られ
そしてDocker Desktop for Windows or Macが作られた。
Docker Toolboxは古いもの扱い。
1. Docker Toolbox・・・仮想マシンとしてVirtualBoxを使った実装
2. Docker Desktop ・・・WindowsではHyperV、MacではOSネイティブの何とかを使った実装
つまり、サードメーカーのVirtualBoxを使うのをやめて
OSネイティブの仮想マシン技術を使うようになった
ただしその結果、Windowsでは制限が生まれた。
HyperVはProでしか使えない。HyperVはVirtual BoxやVMWareと(ほぼ)共存できない。
だからHomeを使ってるとか、他の競合する仮想マシンを
使う必要があるなら古いDocker Toolboxを使わざるを得ない
3. Docker Desktop for WSL2 が近いうちに登場する
WSL2は近々登場するWindows標準機能で、
HyperVのサブセット機能の仮想マシンを使って動かすLinux環境
Docker Desktop for WindowsはDocker社で作ったLinux環境を使っているが
Docker Desktop for WSL2はWindows標準のWSL2のLinux環境を使うようになる
WSL2はいろんな性能が向上しているとともに、Windows 10 Homeでも使えるようになる。
Virtual BoxやVMWareと共存は相変わらず出来ないが、こっちは別で共存できるように開発中
あと数カ月後はDocker Desktop for WSL2を使う
497login:Penguin
2020/01/25(土) 19:01:18.86ID:ES14vB7p > 用途としてはPythonの開発環境をDockerに組もうと思っているのですが
それは推奨しない。Dockerはアプリケーションを作るもの
Windows10Proなら、Pythonの開発環境としてはWSLを使うのが良い。
開発環境はWSLでもWindowsでもMacでもLinuxでも
仮想マシン上のなにかでも、どこでも好きなOSを自由に選べる
開発環境を自由に選べる理由がDocker
DockerというのはPythonで作ったアプリに可搬性をもたせるために
(どのOSでも動くようにするために)Dockerイメージでラッピングするというのが正しい使い方
作ったものがどこでも動くから、開発環境はどこでもいい。
どこでもいいからWindows10ProでPython開発環境として一番便利なWSLが推奨
それは推奨しない。Dockerはアプリケーションを作るもの
Windows10Proなら、Pythonの開発環境としてはWSLを使うのが良い。
開発環境はWSLでもWindowsでもMacでもLinuxでも
仮想マシン上のなにかでも、どこでも好きなOSを自由に選べる
開発環境を自由に選べる理由がDocker
DockerというのはPythonで作ったアプリに可搬性をもたせるために
(どのOSでも動くようにするために)Dockerイメージでラッピングするというのが正しい使い方
作ったものがどこでも動くから、開発環境はどこでもいい。
どこでもいいからWindows10ProでPython開発環境として一番便利なWSLが推奨
2020/01/25(土) 19:42:29.77ID:F7NqsOON
別にDockerを開発環境にしてもいいのに
このスレではそれやると発狂する人がいるよね
このスレではそれやると発狂する人がいるよね
2020/01/26(日) 00:27:49.86ID:m8Av32+M
開発環境としてDocker(というかコンテナ)使うのは環境汚さないで済むから寧ろ推奨する
VSCodeのRemote Developmentなんかのおかげで開発環境としてのコンテナがものすごく扱いやすくなったのも大きい
VSCodeのRemote Developmentなんかのおかげで開発環境としてのコンテナがものすごく扱いやすくなったのも大きい
2020/01/26(日) 11:56:04.11ID:BR48jIcb
今まで仮想マシンや物理マシンに対して、ansibleみたいなツールを使って設定の自動化をしていた
これがdockerになると、コンテナに対する設定はdockerfileに書くから、ansibleみたいなツールは必要なくなるという認識でええのかね
これがdockerになると、コンテナに対する設定はdockerfileに書くから、ansibleみたいなツールは必要なくなるという認識でええのかね
2020/01/26(日) 12:26:39.51ID:OzJ+Z2xw
>>500
Ansibleのメリットは複数のホストに跨った設定を一貫して管理できることであり、
そもそもDockerfileで置き換えられるような用途であればシェルスクリプトで十分だ
元々Ansibleなんか必要ない
コンテナ時代にAnsibleを使うとすればクラスタの構築や管理においてだが、普通はGKS、EKS、ECS使ってポチるだけだから小難しい構成管理なんか要らない
Ansibleのメリットは複数のホストに跨った設定を一貫して管理できることであり、
そもそもDockerfileで置き換えられるような用途であればシェルスクリプトで十分だ
元々Ansibleなんか必要ない
コンテナ時代にAnsibleを使うとすればクラスタの構築や管理においてだが、普通はGKS、EKS、ECS使ってポチるだけだから小難しい構成管理なんか要らない
502login:Penguin
2020/01/26(日) 12:41:22.73ID:7x8NuhpY ECSを動かすにはクラスターが必要
クラスターは通常VPC、起動テンプレート、ASGが必要
ECSタスク定義やサービスが必要
定期実行はスケジュールドタスクの設定が必要
プライベートネットワークにEC2を置きつつ
EC2をインターネットに繋ぐにはNATゲートウェイが必要
HTTPの負荷分散やローリングデプロイには
ELBが必要
CDNにCloudFrontが必要
データの保存先としてRDSやS3も必要
一部リソースはIAMロールの設定も必要
イメージ置き場にECRリポジトリも必要
これ全部ポチポチでやんの?
terraform使えよ
クラスターは通常VPC、起動テンプレート、ASGが必要
ECSタスク定義やサービスが必要
定期実行はスケジュールドタスクの設定が必要
プライベートネットワークにEC2を置きつつ
EC2をインターネットに繋ぐにはNATゲートウェイが必要
HTTPの負荷分散やローリングデプロイには
ELBが必要
CDNにCloudFrontが必要
データの保存先としてRDSやS3も必要
一部リソースはIAMロールの設定も必要
イメージ置き場にECRリポジトリも必要
これ全部ポチポチでやんの?
terraform使えよ
2020/01/26(日) 12:41:34.96ID:UB3s9UX0
2020/01/26(日) 17:42:21.26ID:oh//L3LW
>>500
Ansibleでできることを中の人が教えます - インストールと実行?EC2へのNginx投入までを学ぼう
https://employment.en-japan.com/engineerhub/entry/2019/04/12/103000
> 現在では構成管理にとどまらずその守備範囲を広げ、
> アプリケーションのデプロイやオーケストレーションなどにも利用できるようになりました。
↑この違い
インフラ担当者がアプリの複雑なデプロイまでやってた時代があった。
アプリを動かすにこれそれのパッケージが必要だから入れるとか入れ替えるとか
入れるだけならまだしも、複数のパッケージを入れるとか、
しかも標準パッケージにないものとか怖くてやってられない。
それが一時期、Ansibleでなんでもできるぜーって冪等性でどんなマシンでも
いっぺんに同じ状態にできるぜー(嘘)となってアプリの複雑なデプロイをAnsibleでやる時代があった。
冪等性があるといっても実際にはやってみなきゃわからんこともあるわけで
複雑なデプロイをAnsibleでやるのは苦痛でしか無い。
Ansibleはバージョン依存がひどすぎるから。
んでDockerがでてきた。アプリの複雑デプロイはDockerコンテナの起動という、
たった一つ(もしくは数個)の命令に置き換えられるようになった。
とはいってもこれは「アプリケーションのデプロイ」であって
構成管理やオーケストレーションの話とは関係ない
DockerベースになるとオーケストレーションはKubernetesを使うことが多い
守備範囲を広げたAnsibleは、元の構成管理だけをするように戻りつつある
いろいろ手を広げすぎたんだよ、やつは。
Ansibleでできることを中の人が教えます - インストールと実行?EC2へのNginx投入までを学ぼう
https://employment.en-japan.com/engineerhub/entry/2019/04/12/103000
> 現在では構成管理にとどまらずその守備範囲を広げ、
> アプリケーションのデプロイやオーケストレーションなどにも利用できるようになりました。
↑この違い
インフラ担当者がアプリの複雑なデプロイまでやってた時代があった。
アプリを動かすにこれそれのパッケージが必要だから入れるとか入れ替えるとか
入れるだけならまだしも、複数のパッケージを入れるとか、
しかも標準パッケージにないものとか怖くてやってられない。
それが一時期、Ansibleでなんでもできるぜーって冪等性でどんなマシンでも
いっぺんに同じ状態にできるぜー(嘘)となってアプリの複雑なデプロイをAnsibleでやる時代があった。
冪等性があるといっても実際にはやってみなきゃわからんこともあるわけで
複雑なデプロイをAnsibleでやるのは苦痛でしか無い。
Ansibleはバージョン依存がひどすぎるから。
んでDockerがでてきた。アプリの複雑デプロイはDockerコンテナの起動という、
たった一つ(もしくは数個)の命令に置き換えられるようになった。
とはいってもこれは「アプリケーションのデプロイ」であって
構成管理やオーケストレーションの話とは関係ない
DockerベースになるとオーケストレーションはKubernetesを使うことが多い
守備範囲を広げたAnsibleは、元の構成管理だけをするように戻りつつある
いろいろ手を広げすぎたんだよ、やつは。
2020/01/26(日) 17:46:42.25ID:oh//L3LW
>>502
GCPならデプロイメントマネージャーという
クラウドサービス標準で、自社のクラウドを適切にサポートした
純正機能があるわけだけど、そこに外部が作ったterraformを使う意味あるの?
terraformという第三者が絡むせいで制限とか互換性問題とか生まれてるでしょ?
GCPならデプロイメントマネージャーという
クラウドサービス標準で、自社のクラウドを適切にサポートした
純正機能があるわけだけど、そこに外部が作ったterraformを使う意味あるの?
terraformという第三者が絡むせいで制限とか互換性問題とか生まれてるでしょ?
2020/01/26(日) 18:15:00.87ID:oh//L3LW
> そもそもDockerfileで置き換えられるような用途であればシェルスクリプトで十分だ
いつも思うけど「シェルスクリプトで十分だ」って考え方なんなんだろうね。
「シェルスクリプトが適切だ」が正しいと思うんだけど
シェルスクリプトが適切な問題を、プログラム言語でやろうとすると
めんどくさくなるよ。
リダイレクトとかパイプとか、実行環境を整える所から必要になってめんどくさい。
いつも思うけど「シェルスクリプトで十分だ」って考え方なんなんだろうね。
「シェルスクリプトが適切だ」が正しいと思うんだけど
シェルスクリプトが適切な問題を、プログラム言語でやろうとすると
めんどくさくなるよ。
リダイレクトとかパイプとか、実行環境を整える所から必要になってめんどくさい。
2020/01/26(日) 20:17:48.43ID:Dr6wHv91
Ansibleが担うのはprovisioningでDockerなどのコンテナはdeploymentのイメージがある
508login:Penguin
2020/01/26(日) 21:03:20.89ID:7x8NuhpY AWSはCloudFormationあるけど
terraformより色々使いづらい点が多い
AWS製にも関わらず
たまにCloudFormationでだけ設定できない項目があったりする
S3の期限切れ削除マーカーの削除の設定が
何故か未だに未実装
https://stackoverflow.com/questions/40179860/support-for-expired-object-delete-marker-with-cloudformation
この質問が投稿されたのは2016年10月だが
2020年になっても放置
忘れられているっぽい
terraformより色々使いづらい点が多い
AWS製にも関わらず
たまにCloudFormationでだけ設定できない項目があったりする
S3の期限切れ削除マーカーの削除の設定が
何故か未だに未実装
https://stackoverflow.com/questions/40179860/support-for-expired-object-delete-marker-with-cloudformation
この質問が投稿されたのは2016年10月だが
2020年になっても放置
忘れられているっぽい
2020/01/26(日) 21:12:50.84ID:Sxuz1Gfw
まあ本家のツールが使いにくいっていうのならTerraformとかの意味があると思うけど
あとAWSとGCPを行ったり来たりしたり、同じものを別々の場所に構築するとか
コード共通でできるんでしょ?しらんけどw
あとAWSとGCPを行ったり来たりしたり、同じものを別々の場所に構築するとか
コード共通でできるんでしょ?しらんけどw
510login:Penguin
2020/01/26(日) 21:37:08.16ID:7x8NuhpY マルチクラウドは出来るらしいがやったことない
GCPやAzureは使ったことが無いし
開発環境と同じ構成で
EC2インスタンスのスペックやドメインだけ変えて作るのは可能
Terraformの方が便利とは言っても
複数モジュールの同時デプロイや
モジュール間の値の受け渡しが
Terraformだけでは不便なので
最近Terragruntも使い始めた
コスト削減のために、開発環境では使わない機能がある、
あるいは複数環境で1つのリソースを共有する場合に
巨大モジュールを作って大量の変数
でAWSリソースを作るか作らないかを制御するより
Terraformモジュールを分けた方が良いというのもある
Kubernetesを使ってもインフラの管理から完全に逃れることはできない
GCPやAzureは使ったことが無いし
開発環境と同じ構成で
EC2インスタンスのスペックやドメインだけ変えて作るのは可能
Terraformの方が便利とは言っても
複数モジュールの同時デプロイや
モジュール間の値の受け渡しが
Terraformだけでは不便なので
最近Terragruntも使い始めた
コスト削減のために、開発環境では使わない機能がある、
あるいは複数環境で1つのリソースを共有する場合に
巨大モジュールを作って大量の変数
でAWSリソースを作るか作らないかを制御するより
Terraformモジュールを分けた方が良いというのもある
Kubernetesを使ってもインフラの管理から完全に逃れることはできない
511login:Penguin
2020/01/26(日) 21:48:04.47ID:7x8NuhpY TerraformのKubernetesプロバイダーで
helmのデプロイやKubernetesリソースのデプロイも出来る
TerraformのAWSプロバイダーでIAMロールを作成して
kiamで特定ポッドのみにAWSへのアクセス権限付与したりする合わせ技も可能
しかし微妙にかゆいところに手が届かない感はある
公式KubernetesプロバイダーはKubernetesリソースをHCLで書く必要がある
YAMLをそのまま使いたい、CRDを使いたい場合は
公式のKubernetesプロバイダーでは無理
非公式のプロバイダーが必要
banzaicloudのk8sってやつ
CRDが使えないって割と重大な欠陥の気がする
helmは最近v3が出たが
公式Terraformプロバイダーはまだv2までの対応
helmのデプロイやKubernetesリソースのデプロイも出来る
TerraformのAWSプロバイダーでIAMロールを作成して
kiamで特定ポッドのみにAWSへのアクセス権限付与したりする合わせ技も可能
しかし微妙にかゆいところに手が届かない感はある
公式KubernetesプロバイダーはKubernetesリソースをHCLで書く必要がある
YAMLをそのまま使いたい、CRDを使いたい場合は
公式のKubernetesプロバイダーでは無理
非公式のプロバイダーが必要
banzaicloudのk8sってやつ
CRDが使えないって割と重大な欠陥の気がする
helmは最近v3が出たが
公式Terraformプロバイダーはまだv2までの対応
2020/01/26(日) 23:59:58.56ID:o6VABBUy
なにか便利な機能を提供してくれるならいいけど、
「使い方を変えるだけ」の道具はいらないなぁ
公式で同じことできるんでしょ?
それが簡単になったわけじゃなくて
使い方を変えるだけでしょ?
そしてそのプラバイダーが、ある機能に
対応してない困ったぞーっていうのを
永遠と繰り返してるでしょ?
「使い方を変えるだけ」の道具はいらないなぁ
公式で同じことできるんでしょ?
それが簡単になったわけじゃなくて
使い方を変えるだけでしょ?
そしてそのプラバイダーが、ある機能に
対応してない困ったぞーっていうのを
永遠と繰り返してるでしょ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「習氏より先に言うとは…」 トランプ氏同盟国発言、日本政府内に困惑 [蚤の市★]
- 第2次大戦に触れトランプ氏「米中は同盟国」、当時は中華民国…「抗日」巡る中国の言説補強する恐れ ★7 [蚤の市★]
- 高市総理「日米は非常に強い絆で結ばれた同盟国」 トランプ大統領の“中国は同盟国だった”発言受け [首都圏の虎★]
- 【野球】広島東洋カープの矢野雅哉・前川誠太選手を書類送検 ゾンビたばこを巡る容疑 広島県警 [Ailuropoda melanoleuca★]
- 「暗い未来に子供を産みたくない…」それでも左派よりも右派の方が「たくさん子供を産む」のはなぜか【米研究】 [首都圏の虎★]
- 【速報】 ベッセント米財務長官、円安は問題であると高市政権と確認 [お断り★]
- 【訃報】米国債10年利回り5.2%突破、金利やばすぎでしょw [943688309]
- ガールズ&パンツァー第9話「絶対絶命です!」実況スレ🏡21時スタート
- ハッタショって人から「ハッタショ」と指摘されるのはめちゃくちゃ嫌がるよな
- 【高市日本】高市と石破、それぞれの訪米の時のおやびんがこちら [165981677]
- 女性「たのしいピクニック女は、男は好きでも女が見るとめっちゃ不安になる。生きる力がない女なのよ。それが分からないの?」 [592058334]
- 【悲報】現役の内閣参与、高市にブチギレ [404143271]