探検


Docker Part4

■ このスレッドは過去ログ倉庫に格納されています
2020/08/17(月) 00:19:36.93ID:PKLBL3Xf
Linuxが持つコンテナ技術を使った、仮想マシン必要ないアプリケーション仮想化技術で
アプリケーションのデプロイが用意になります

Docker(アプリ仮想化)は仮想マシンと併用して使うことで最も効果を発揮し
開発・テストで使ったDockerイメージと全く同じものを本番環境で使えます
さらにWindowsとmacOSでも同じDockerイメージが動きます。
(Linuxは仮想マシンが不要ですが、WindowsとmacOSは仮想マシン技術を併用して実現しています。)

Dockerイメージ(Dockerfile)はアプリケーション開発者が作成します
動かすのに必要なもの全てがDockerイメージに含まれるので
インフラ担当者はそれを動かすだけ、本来のインフラの作業に集中できるようになります

Dockerは主にウェブ業界でサービスのデプロイの必須技術になりました
情報共有しましょう

http://www.docker.io/

前スレ
Docker Part3
https://mao.5ch.net/test/read.cgi/linux/1552023620/


注意 同じコンテナ技術を使うが異なるアプローチで仮想マシンの
代替を目指しているのがLXC。目的が全く異なるので注意
LXC(Linux Containers)
https://mao.5ch.net/test/read.cgi/linux/1330826939/
679login:Penguin
垢版 |
2020/11/04(水) 18:17:19.26ID:wKYTl7Ay
>>657
可搬性が理由だと思う。
2020/11/04(水) 18:18:07.54ID:YAhpIihL
GitLabは全部一緒くたになってるから
間違ってコンテナを消してしまうとデータまで消えてしまう
データのバックアップも大変
安心して運用なんてできないよ
2020/11/04(水) 18:19:48.34ID:5mpefc2R
>>677
またトンチンカンなことを
Gitlabサービスを使う話はしてない
コンテナの構成として1コンテナマルチサービスの是非を議論しているのにマネージドサービスと比較してどうすんだよ
本当に意味不明だよ君

今の話の大前提は「DockerでGitlabをセルフホストする」ことだ
マネージドサービスの話がしたいならスレ違いだからさっさと別のスレにいけ
2020/11/04(水) 18:19:53.14ID:YAhpIihL
>>654
排他制御の意味が違ってる。

例えばMySQLを2つ起動したとして、同じディレクトリを
参照していたらデータが壊れるだろ

ファイルは壊れなくてもデータが壊れる
2020/11/04(水) 18:20:55.39ID:i96Niluf
github使わずにgitlab使うのは自社サーバで運用したいケースが多いんじゃね
マイクロソフト資本を嫌悪したケースもあるかも知らんが
あとデータベースのバックアップは基本的にコンテナやボリューム単位ではなくて
データベース純正のバックアップ手段使うケースが多いと思うよ
2020/11/04(水) 18:21:34.34ID:YAhpIihL
>>681
> 今の話の大前提は「DockerでGitlabをセルフホストする」ことだ

ほらなw また条件つけた。

つまりこいつにとっての「使いやすい」の基準は
「DockerでGitlabをセルフホストする」場合の話であって
誰かのためにサービスを運営する(つまりGitLabサービス)のようなものには
当てはまらないということだ

開発者なら「誰かのためにサービスを運営する」だろ?
2020/11/04(水) 18:24:03.66ID:5mpefc2R
>>680
間違って消しちゃたら困るのは纏めてようが分けてようが同じ
バックアップはgitlabのコマンドラインツールを使う方法、ボリュームをバックアップする方法がサポートされている
いずれの場合も、対象が1つのコンテナにまとまってるから簡単にバックアップできる
もし、これが複数のコンテナに分量外していたら、それぞれのコンテナについてバックアップを考えなければならないので大変だ
2020/11/04(水) 18:25:44.20ID:YAhpIihL
> バックアップはgitlabのコマンドラインツールを使う方法、ボリュームをバックアップする方法がサポートされている

はいそれなw

「一つにまとめたほうがいい」という方針の結果がそれだよw
そういう方法を自分で作らなければいけなくなるということ

データベースが分離されていれば、一般的なやり方がそのまま使える
GitLabに依存してないからだ。しかし一つにまとめた結果そのやり方が使えなくなり
そういうツールを開発しなければいけなくなった
2020/11/04(水) 18:26:08.29ID:5mpefc2R
>>684
条件を付けた?
最初からこの条件で話してたらお前がマネージドサービスとの比較などというズレまくったトピックを持ち込んできたんだろ
いい加減にしろ
2020/11/04(水) 18:28:08.38ID:YAhpIihL
>>687
お前は他人が用意したものを使うだけの話をしてるが

こちとらDockerfileを「作る側」の話をしてるんだよ
それはGitLabサービスと同じ立場だ

一つにまとめれば作るのが簡単?
GitLabのバックアップの件からも特殊なツールの開発が
必要になるってことがわかったよなw
2020/11/04(水) 18:29:36.41ID:5mpefc2R
>>686
考えが浅すぎてため息しかでない
なにが一般的な方法が使えるだよ
Gitlabの管理するデータはDBだけじゃない
リポジトリデータやその他のサービスのデータも管理してる
これらを個別に管理したら大変だよ

個別に簡単に管理できるならGitlabはわざわざバックアップコマンドを用意したりしねーよ
少しは考えろ
2020/11/04(水) 18:33:11.70ID:5mpefc2R
>>688
作る側ならより慎重に使う側の都合を考えろよ
使う側に知識と労力を期待するのは三流の開発者だ

Gitlabの開発者はdocker runさえ知ってればGitlabを動かせるように整備した
これが一流の開発者だ
2020/11/04(水) 18:34:45.63ID:YAhpIihL
ああ、使う側って自分で開発したアプリでサービスを運営するって考えがないのかw
いやはや、考えが浅いなぁ
2020/11/04(水) 18:42:23.75ID:5mpefc2R
>>691
利用形態は外向けサービス運営だけじゃない
むしろサービス運営のほうが圧倒的に少数派
どんな企業でも開発用の社内システムを持ってるがサービス運営をしているとは限らない
社内システムでは導入の手軽さと運用コストがまっさきに検討される

こんなことにすら考えを巡らせられないのか?
浅い
浅すぎる
2020/11/04(水) 18:45:23.76ID:5mpefc2R
自分たちで作って自分たちだけで消費してるから不特定多数にイメージを使ってもらうという想定ができないんだろうな
閉じた世界で考えてるからとにかく浅い
2020/11/04(水) 19:02:30.64ID:aUQpvtzl
自分が浅いことがバレて必死になってるなw
2020/11/04(水) 19:05:27.60ID:7ED4Lec/
おや
ついに反論できなくなったようだな
勝負あり
696login:Penguin
垢版 |
2020/11/04(水) 19:14:19.28ID:g/DLzKYE
GitLabの公式イメージが気に入らなければ
k8sでHelmチャート版使うか非公式の方入れたら良い

https://github.com/sameersbn/docker-gitlab

既存のPostgreSQLとかRedisを使いたい!って要望に答えられないので
こういうものが作られる当然ではある

SMTPサーバーは流石にごった煮版の方もない
こればかりは一つのコンテナ内でどうにかならないからか
別にSMTPサーバー立てたり外部サービスを利用が必要
2020/11/04(水) 19:23:38.13ID:7Ele+Ilf
公式もDB外付けできますよ
2020/11/04(水) 21:35:24.62ID:aRkKqxcc
番号確認用テスト
2020/11/04(水) 21:36:45.88ID:aRkKqxcc
>>632
ありがとうございます!

ちなみにもう一つ質問なんですが
シェル変数に渡せないことがあるんですが全てのシェル変数には対応できないんでしょうか?

$UIDとか
2020/11/04(水) 22:08:46.47ID:3mo/cajL
>>678
試して言ってるんだけど
2020/11/04(水) 22:09:53.22ID:3mo/cajL
>>682
排他ロックがかかるという意味で言ってる
2020/11/04(水) 22:39:25.83ID:PYTTHrMi
>>699
UIDやGIDが何ものであるか、考えてみてください。
703login:Penguin
垢版 |
2020/11/05(木) 00:32:52.53ID:fiw9R+Nw
>>701
通常ディレクトリでも、libreOfficeでファイルを開けばロックファイルが作られる。
アプリケーションレベルでのみロックが掛けられると思う。
viでも編集中のファイルは、ロックファイルが作られるよね。

Dockerボリュームとか、ファイルシステムレベルでのロックなんてそもそもなかったのではないか?
2020/11/05(木) 07:26:28.83ID:I+aaEHF/
ボリュームなんてただのディレクトリでしかないのに何いってんだ
カーネルを共有してるにどうやって
ファイルシステムのロックを回避するっていうんだよ
Dockerは仮想マシンじゃねーよアホ
2020/11/05(木) 07:27:59.79ID:I+aaEHF/
>>702
> UIDやGIDが何ものであるか、考えてみてください。
ただの環境変数です。
706login:Penguin
垢版 |
2020/11/05(木) 07:32:50.40ID:3ZkEmE9Q
>>654
何のアプリケーションを試してるんだから知らないが
それDockerとか関係なく複数のプロセスから同じファイルを触らせてるだけだろ?

排他制御がどうなるかは動かしてるアプリケーションの仕様による
Docker関係ない
2020/11/05(木) 07:34:58.75ID:PZkmWwSI
>>706
>>626に言えよ
708login:Penguin
垢版 |
2020/11/05(木) 09:30:02.22ID:fiw9R+Nw
>>704
ファイルシステムのロックってなんのこと??
709login:Penguin
垢版 |
2020/11/05(木) 09:59:15.45ID:fiw9R+Nw
>>706
ボリューム使ってコンテナ間でふを共有しても、
排他制御されないらしい

https://www.digitalocean.com/community/tutorials/how-to-share-data-between-docker-containers

but there’s one critical caveat: at this time, Docker doesn’t handle file locking. If you need multiple containers writing to the volume, the applications running in those containers must be designed to write to shared data stores in order to prevent data corruption.

ファイルオープンしているときに、
別のコンテナからファイルに変更を加えられるということだよね。

コンテナは、確か、同じカーネルで動作しているけど、リソースを分けるように名前をわけているらしい。

ファイルハンドラーも分けられているに違いない。

なので、ローカルマシンで同じファイルシステムに複数プロセスがファイルにアクセスするシナリオとは異なっているのだと思う。
710login:Penguin
垢版 |
2020/11/05(木) 10:00:58.24ID:fiw9R+Nw
>>704

>>709を参照してほしい
711login:Penguin
垢版 |
2020/11/05(木) 10:18:40.71ID:fiw9R+Nw
>>709
いや、ファイルハンドラーのくだりでおかしいこと言ってるな
勘違いしたわ。


結局、一つのカーネルがファイルシステムをとりあつかっているから、
ボリュームでコンテナ間でファイルを共有しても、
それはコンテナ使わない通常の状況において複数プロセスがファイルにアクセスできるのと同じことになるのかな。
712login:Penguin
垢版 |
2020/11/05(木) 12:48:50.84ID:xIltC13o
初心者なんだけど、WindowsにDockerインストールして、DockerでCentOSのコンテナを起動、そこから、nginxとかpythonとかのコンテナを使いたいんだけど、そういう事出来るんでしょうか。
CentOSの80番に来たのをnginxのコンテナに飛ばして、更にpythonのコンテナに飛ばして処理、とか。
CentOS上にDockerをインストールして、そこからnginxのコンテナを置くとかの形になるんでしょうか。
2020/11/05(木) 12:53:40.32ID:/PyhrE0E
> DockerでCentOSのコンテナを起動、そこから、nginxとかpythonとかのコンテナを使いたいんだけど、

意味不明w

Dockerのコンテナ=アプリ
つまり「Windowsでnginxアプリを使う」だけの話

そのnginxアプリっていうのが、内部でDockerを使ってるかもしれないし使ってないかもしれないが
nginxアプリをつかつ人にとってはどうでもいいことだ
2020/11/05(木) 13:01:14.19ID:/PyhrE0E
Dockerっていうのはな、アプリを作るためのものなんだよ
もちろん誰かが作ったアプリを使うだけのやつも居るが
本来はアプリを開発するために使うもの

例えばお前が作ったアプリがWindows上でそのまま動くか?
Linux上で動かすことを想定して作ったアプリだと動かないだろ?

Dockerを使えば、そういうアプリがWindows上でも動くということ
なぜならアプリを動かすのに必要なものが全てコンテナに含まれているから
コンテナに含まれていないのはLinuxカーネルだけだが、そのLinuxカーネルは
Docker for Windowsが提供している。(WSL2を使う場合はWindowsが提供しているLinuxカーネルを使う)
2020/11/05(木) 13:08:24.93ID:PGgKBof2
>>712
Docker in dockerかDocker outside of dockerというテクニックを使えばコンテナからコンテナを扱うことができるが
君が本当にやりたかったことはおそらくただのdocker composeだろう
2020/11/05(木) 13:14:16.71ID:/PyhrE0E
いつものDockerを仮想マシンと勘違いしてるやつだろ
Dockerコンテナには原則としてログインしない(デバッグのときぐらい)
アプリにログインとかするか?それぐらい意味不明な行為
2020/11/05(木) 13:17:00.33ID:PGgKBof2
>>716
devcontainerを使ったことないのか
2020/11/05(木) 13:23:32.34ID:fiw9R+Nw
>>716
それは言い過ぎ(とうぜん、アプリにsshログインなんてしない。)

アプリを取り巻いている環境がコンテナにあるわけで、
それを調べるためにsshログインすると便利
719login:Penguin
垢版 |
2020/11/05(木) 13:27:52.47ID:xIltC13o
なるほど。
つまり、全体として一つの目的を果たすアプリを構築するモノであって、細かいコンテナを結合して使うような形はあまり想定されていないと。
やる場合はdocker composeが一番イメージに近そう。
こちらの想定としては、例えばpython2の実行環境が本番で動いているとして、その周りの環境はそのままに、pythonを2から3の実行環境へと入れ替え(ここをコンテナの入れ替えをするイメージでした)して、実際に全体として動くのかと言うような形の検証が出来ればいいなと考えていました。
この場合、python3ではうまく動かないなとなれば、python2のコンテナにつなぎ直せばゴミも残らず即元通りになると思いましたので。
2020/11/05(木) 13:29:57.21ID:aPKS8bQV
いつものアレなのでスルー推奨
2020/11/05(木) 13:44:06.16ID:0fHUxX44
よく飽きねぇな
2020/11/05(木) 13:45:03.78ID:7JWgbSNJ
次スレはワッチョイかip頼む
2020/11/05(木) 13:47:11.51ID:fiw9R+Nw
>>719
python2用コンテナと、
python3用コンテナを用意する。

というか、paython2も3も同一マシンに同時に導入できたんじゃ?
2020/11/05(木) 16:43:09.02ID:/PyhrE0E
>>719
そういう使い方ではない

Dockerは「実際に全体として動くのか」の「全体」を作るもの

つまり「Python2を使う全体」と「Python3を使う全体」を
Dockerfileの内容を元にそれぞれ作る。
念の為。それぞれの中にはDockerは入ってないぞ。

Dockerfile(手順)を実行してDockerイメージを作るのがDockerで
さらにできたDockerイメージを動かすのがDockerだ
2020/11/05(木) 18:56:14.40ID:nb4htb8e
>>702
なぜUIDだとダメなのでしょうか?
2020/11/05(木) 20:49:54.77ID:JL2sRUYB
>>627だけど、やっぱり誰も受けてない?
727login:Penguin
垢版 |
2020/11/05(木) 21:45:24.42ID:xIltC13o
>>724
今やっと(多分)正確に理解出来ました。
つまり、「nginxのコンテナ」や「python2のコンテナ」の中にも、(乱暴な言い方をすれば)CentOSが入っているということですね。
>>714を参考にすれば、kernelだけは含まれず、そこは別でDockerなりWindowsなり、ホスト側の環境に依存する形で利用される、と。

とすると、docker compose等で3306はMySQLコンテナに飛ばす、と言った話は、こちらも乱暴な言い方をすれば、WEBサーバとDBサーバが2つ立っていて、そのサーバ間で通信を行うイメージになるわけですね
2020/11/05(木) 22:44:52.50ID:kRAtqvcg
>>726
試しに受けてみようかなと思ったら195ダラーに引いたw
たった55題でその値段とか冗談でしょ。
729login:Penguin
垢版 |
2020/11/05(木) 22:49:30.86ID:fiw9R+Nw
>>726
資格持ってるやつほどできなさそう
発想ゼロで創造性なさそう
2020/11/05(木) 22:58:59.64ID:kRAtqvcg
外国のベンダー試験は死ぬほど実務的。
勉強して役に立たないという事は基本ない、という印象。高いけど。

ただdocker自体コンテナランタイムとしてどうよ?って気がする。
Docker swarmとか別に知りたくもないし。
2020/11/05(木) 23:18:47.89ID:zb/W11IL
前から言ってんじゃんこれからはpodmanだって
dockerはレジストリとしての価値も危ぶまれてるまじオワコンよ
2020/11/05(木) 23:34:44.62ID:TdGXrpVR
> これからはpodmanだって

podmanになったらまた来てくれ
これからはと言ってるやつの99%は外れだから
2020/11/06(金) 00:31:53.26ID:P7wMRRj0
Docker は、namespace, cgroup, overlayfs を使っている。
本質は使い捨ての、immutable

仮想OS じゃないし、Docker Compose も、実システムとして使えない。
実システムは、AWS などのKubernetes
2020/11/06(金) 00:37:54.86ID:s01/YDPr
>>731
podmanになるかは知らないけどDockerが何かに置き換えられるの可能性はあるだろうね。
DockeはDockerデーモンがネットワークを奪い取っちゃうのがイマイチなところ。
run -p 80:80 と書けるのは一見便利な様でコンテナランタイムでしかない筈のDockerプロセス
が標準ポートに対する攻撃を一人で引き受けることになる。
オマケにk8sとか上位からコンテナランタイムを制御したいシステムとネットワークが干渉して
邪魔になる。
2020/11/06(金) 00:50:07.25ID:P7wMRRj0
Python の環境構築なら、YouTube のキノコードの動画を参照!

【Bash】Windows Subsystem for Linux【WSL】8
https://mao.5ch.net/test/read.cgi/linux/1590742701/893
2020/11/06(金) 01:48:56.19ID:T6MZgdki
play with dockerで簡易cgiローカルサーバー動かそうと思ったけど
起動はしたもののどこに接続していいのかわからない

$ vim index.html
$ mkdir cgi-bin
$ vim cgi-bin/sample.py

$ docker pull python:3.7-slim
# $ docker images
$ docker run -itd -v /root:/var/www/html [イメージID] bash
# $ docker ps -a
$ docker exec -it [コンテナID] bash

コンテナ内bash
$ cd var/www/html
$ python -m http.server --cgi 8000

これで一応サーバーは動いたっぽいものの
play-with-dockerのOPEN PORTボタンからアクセスしてもページが無かった
(自分のPCからだとコンテナに割り当てられたローカルホストのアドレスからきちんとアクセスできた)
2020/11/06(金) 02:48:39.14ID:P7wMRRj0
Ruby なら、コマンドプロンプト・PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する

ruby -run -e httpd . -p 8080

そのフォルダに、index.html があれば、これでブラウザからアクセスできる
http://localhost:8080

ローカル回線だけでしょ。
ひょっとして、外部からアクセスさせるの?

外部なら、AWS のKubernetes, VPC のインターネット・ゲートウェイとか
2020/11/06(金) 02:51:35.40ID:W98uQtEe
compose使ってるんだけど毎回cdするの面倒くさい
ymlを登録するなりしてショートカット出来ないの?
739login:Penguin
垢版 |
2020/11/06(金) 03:07:19.75ID:s01/YDPr
>>737
回答がお門違いやな。"play with docker"って言ってるでしょ。
でも>>736のやり方じゃnginx とpythonを別々に動かしてるだけだから
アクセスは出来んわな。pythonとnginxをセットにしたイメージをdockerhubから
探すしかないんじゃね?
740737
垢版 |
2020/11/06(金) 03:38:32.11ID:P7wMRRj0
外部に公開するのは、

BB ルーターのポートフォワーディング・ポートマッピング・静的IP マスカレードの設定とか、
ファイアウォールのufw, netsh とか

でも、素人が公開すると、すぐに乗っ取られるw

ssh で、リモートログインの方が安全
741737
垢版 |
2020/11/06(金) 03:43:44.05ID:P7wMRRj0
nginx, python の組み合わせは、珍しい。
普通は、web サーバーと、フレームワークの組み合わせ

nginx, Ruby on Rails とか、
Apache, WordPress とか
2020/11/06(金) 08:55:36.62ID:Xq/Lj6my
>>726
ググってみたが、資格のページ無くないか?
2020/11/06(金) 09:35:23.76ID:Pu2vwu4g
podman 見た感じだとわるくないんだけど、Red Hat のかじ取りというかやり方が微妙であんまり流行らないだろうなとは思う
2020/11/06(金) 10:14:04.41ID:p0uOIOHq
pythonでdjangoとか使いますし
nginxと組み合わせるなんて珍しいとは思いませんよ
2020/11/06(金) 10:17:28.74ID:4r/vlmbk
>>734
> podmanになるかは知らないけどDockerが何かに置き換えられるの可能性はあるだろうね。

当たり前だろ。「いつまでに」って期限をつけないならいつかは置き換えられる。
Linuxだって置き換わるだろ。100年後、200年後までLinuxのままだとは思えない。
746login:Penguin
垢版 |
2020/11/06(金) 10:32:54.57ID:s01/YDPr
>>742
https://prod.examity.com/docker
にある。アカウント作ったら入れる。トラブったらチャットの人が即座に解決してくれる。
747login:Penguin
垢版 |
2020/11/06(金) 10:35:51.92ID:s01/YDPr
>>745
そういう非現実的な話はしてないな。
デーモンじゃマズイ、と言っているんだからその問題が無視できくなれば
置き換わるだろ、と言うか自分たちが作ってるクラスタは置き換わってるし。
(あるバージョンからコンテナランタイムのDockerが消えた)
748login:Penguin
垢版 |
2020/11/06(金) 10:37:25.40ID:s01/YDPr
>>744
まあそうだよね。
nginx+pythonで珍しいとか意味が解らんね。
2020/11/06(金) 11:13:26.38ID:Pu2vwu4g
自分が使ったことない物をめずらしいって言ってるだけだろうから無視していいよ
2020/11/06(金) 11:48:56.16ID:4r/vlmbk
>>747
だから世間がいつまでに置き換わるか言ってみ
当たるか当たらなかいかじゃなくて、お前がどれだけ
自分の説に自信と信念を持ってるかを判断してるんだよ

それとDockerはrktに置き換わるんじゃなかったっけ?w
2020/11/06(金) 12:13:25.48ID:CC12inH7
この粘着性はどうやったら育めるんだろうな
2020/11/06(金) 17:04:00.01
pylay with dockerでdjango+mysqlいけたけど
ロケットのおなじみの画面が表示されなくてALLOWED_HOST=['*']にすればいけた
あとchromeだとhttp://が弾かれることに気づかず(表示できたりできなかったりするので)めちゃくちゃハマった糞が
753login:Penguin
垢版 |
2020/11/06(金) 17:16:59.44ID:rIUKx7DZ
>>731
知識は役に立たないけど、経験は役に立つということなんだろうな。
Dockerコンテナ作れるから、もう安心ということにはならないな。
また、別の新しい技術が登場する。
前の知識は役に立たない。
役に立つのは、試行錯誤や理解に必要な経験だなあ。
こういうのを結晶化なんとかというのだろう。

表面的な知識は異なれども、それを成り立たせる思想には共通するものがある。

こう考えると、特定のアプリ技術に関する資格なんて無意味だな。

IPとか、低レベルの技術はなかなか変容しないから、そのあたりの資格はあっても良いと思う。
2020/11/06(金) 17:51:26.54ID:p0uOIOHq
Podmanx 2 Dr.ワイリーの謎
2020/11/06(金) 19:45:08.08ID:4r/vlmbk
>>753
代替ツールを流行っても居ないのに、これからはこれ!とか
言ってる奴は大概、役に立たない知識で終わっちゃうよね
ツールの使い方じゃなくて、考え方を理解してる人は、
後からでもすぐに理解できるから、焦って未熟な段階で使う必要がない
ノウハウがたまってバグがあらかた解決してからでも遅くないし
2020/11/06(金) 23:52:41.31ID:P7wMRRj0
Docker, Docker Compose は、本番では使えないから、
最も重要なものは、AWS, Kubernetes

Linux 財団のCloud Native Computing Foundation(CNCF)の卒業プロジェクトも。
Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd
2020/11/07(土) 00:16:16.97ID:eBGWX6aX
本番でも使えるが?
2020/11/07(土) 01:25:54.40ID:2ambohnb
dockerの入門書にk8sも記述されていることもあるけど
k8s使う場合って複数サーバが必要になりますよね?
2020/11/07(土) 02:05:56.71ID:A9UbMMtV
そらそうよ。
2020/11/07(土) 08:23:01.80ID:eBGWX6aX
1台でもいいよ
761login:Penguin
垢版 |
2020/11/07(土) 09:04:10.75ID:ulFlM/B0
k8sって重過ぎじゃね?
特にetcdが

minikubeも色々入れたらすぐ遅くなった

k3sだと小さなサーバー1台でも使える、データベースにsqliteとか他のも使えるらしいが
デメリットある?

sqliteはHAに対応してない
dqliteはsqliteの分散版で、HAに対応してるが実験的
と言うのは知ってる

https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/
2020/11/07(土) 09:41:24.11ID:8zmwVowU
>>761
そのとおり。VMインスタンスで最小スペックだとメモリ4GBほどだが
k8sはそのうち1GBほどかっさらっていく
最小スペックのマシンは実質使い物にならなくなる
763login:Penguin
垢版 |
2020/11/07(土) 11:00:12.29ID:ulFlM/B0
k3sはdqliteじゃなくてembedded etcdになるらしい
それって軽いの?
2020/11/07(土) 11:18:34.87ID:VOHFkWyI
重いのはスペックが足りないからやー!
2020/11/07(土) 17:29:16.56ID:XStoOlkj
k8sもメモリ食い過ぎだが、fluentdも酷い
たかがCPUとかメモリ使用率を取得するだけで数百MBもメモリを使用する
Ruby製なのが原因か知らんがC言語で作っていれば10MB程度しか食わないだろう
2020/11/07(土) 18:19:29.17ID:tGPIOgJu
fluentd_v1.11使っているが2週間くらいでElasticにデータ渡さなくなる症状に悩まされているよ
docker-compose restartを定期期にする必要がある
767login:Penguin
垢版 |
2020/11/07(土) 18:38:38.67ID:ulFlM/B0
>>765
そんなあなたにfluentbit
768login:Penguin
垢版 |
2020/11/07(土) 18:53:43.84ID:E4RaZBn4
k8sとかが、いったい何をしてくれるのか全然わからない。
全然わからないから、使う気にもなれない。
概要を読んでみても、まるで遠い話をしているみたいに聞こえて、必要性を感じられない。

だから、自分は素のままでDockerコンテナ使ってますよ。

何か一つこんなことができるよ的なことってないですかね。
2020/11/07(土) 20:07:06.04ID:AnDT9/b7
クラスタ組まないならcomposeでおk
クラスタ組む場合も自前ならswarmのほうが何かとお手軽で安定してる
composeもほとんどそのまま流用できる
AWSなんかはcomposeにも対応してるから今は無理してk8sを使う必要はない
2020/11/07(土) 22:47:47.96ID:3X/BADbo
k8s は、Auto Scale, Rolling Update, blue/green deployment
データセンター分離・ラック分離、多数決で意思決定

可用性・スケールアウトとか、全体の安全性が高い

Terraform も良い
2020/11/07(土) 23:57:22.23ID:E4RaZBn4
>>770
やっぱり、遠い話、雲の上の話
ぜんぜんぴんとこない
2020/11/08(日) 00:25:36.43ID:indWRCUE
docker環境で開発をしている人に質問なのですが
本番環境は別にdockerfile(もしくはdocker-compose.yml)を作っていますか?

本番環境ではソースコードをイメージの中に入れたいのですが
開発環境ではソースコードはホスト側に置いて、マウントしたいです
(開発中に1行書き換える度にイメージ作り直す訳にいかんし)

とはいえ別ファイルにすると(ソースコードをマウントしている)開発環境では動くけど、(ソースコードをイメージの中に含んでいる)本番では動かない
という可能性も出てきてしまう気がして、一般的にはどうしているのかを知りたいです
2020/11/08(日) 00:39:21.68ID:E0Efq9ms
動画配信サイトとか高負荷かつ安定稼働を求められるシステムなら採用する価値はあるかもね
でもなんとなくK8S使ってみたかった程度の気持ちで無意味に使ってる人も多い
2020/11/08(日) 00:40:33.67ID:zneumWca
>>772
開発と言っても「実機と同等の構成で動かしてみる」というのも含まれるけど
一般にソースコードを修正してデバッグしてみたいな開発作業中は
Dockerを使わないよ

今はWindowsでもWSLがあるし、Dockerを使わないで開発やテストができる
いちいちDockerの中に開発ツール(ビルドツールやらlintツールやや)
入れなくていいから一番快適だしね。

その上で開発プロセスの一環として実機に近い環境で
テストしたいときはDockerを使う
2020/11/08(日) 00:40:41.43ID:E0Efq9ms
>>772
テストはイメージ作ってやるから問題ないよ
2020/11/08(日) 00:43:27.55ID:zneumWca
K8Sは金がふんだんに有り余ってるようなところが使うようなイメージ
金を使って広大なK8S用クラスタを組んで、必要になったらコンテナ起動するけど
普段はクラスタの中に空きがあって、その部分にも金がかかってる
それでもOKな所が使ってる

それともK8Sを使ってコストを最小化するような話聞いたことある?
2020/11/08(日) 00:46:13.79ID:mgGpxjW7
>>772
Dockerfileは同一で、開発時はソースコードをADDしてるディレクトリに、バインドマウントしてあげるだけで良いのでは。
2020/11/08(日) 00:50:35.76ID:zneumWca
>>777
そう簡単な話ではない。開発用イメージには、運用用イメージに加えて
開発用のツールやライブラリを含めなければいけない
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況