探検


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/
2020/11/08(日) 00:50:35.76ID:zneumWca
>>777
そう簡単な話ではない。開発用イメージには、運用用イメージに加えて
開発用のツールやライブラリを含めなければいけない
2020/11/08(日) 00:54:00.53ID:zneumWca
どちらにしろ、開発用イメージはそのまま運用で使うことはできない
これが大前提。だから別々に作らなければいけないが
それするぐらいなら開発にはDockerを使わないほうがいい

使用する言語のバージョンやライブラリを統一するのは
Dockerを使わずともできる
2020/11/08(日) 00:58:10.83ID:mgGpxjW7
>>778
うん、そういうケースがあるのは分かるけど、ライトなWeb開発とかだとこれで必要十分なことも多いよね。
あとは商用向けはマルチステージビルドで成果物だけ持ってくるとかできるし。
2020/11/08(日) 01:16:24.21ID:E0Efq9ms
開発者の裁量で好きなように開発すればいい
テストさえしっかりしてれば何も問題はない
しかし好きにしろとは言ってもプロジェクトとして推奨構成をas codeで提示したほうが親切だろうな
ならDockerfileとdocker-compose.ymlが最も手軽だろう
782login:Penguin
垢版 |
2020/11/08(日) 03:08:06.81ID:kMpY44Ng
>>772
>本番環境は別にdockerfile(もしくはdocker-compose.yml)を作っていますか?

別です。
開発環境のDockerは本番機よりもっと簡略化されている
サーバー証明書もオレオレ。
あくまでも、うちのケースの話ね。

>本番環境ではソースコードをイメージの中に入れたいのですが
>開発環境ではソースコードはホスト側に置いて、マウントしたいです

それで良いんじゃないの?
開発環境はdocker-compose.override.ymlで開発担当部分のみvolumesで上書きとか。

>とはいえ別ファイルにすると(ソースコードをマウントしている)開発環境では動くけど、(ソースコードをイメージの中に含んでいる)本番では動かない
という可能性も出てきてしまう気がして..

何故、開発機の次が本番機なのさw?
テスティングやステージングは?問題があるなら、そこでわかるでしょう。
783770
垢版 |
2020/11/08(日) 03:09:14.51ID:FpP/Utr7
k8s は、マスターは多数決で決めるから、分散数は奇数にして、3, 5, 7 個

ラックの電源断に備えて、ラックも別々。
データセンターの災害に備えて、データセンターも別々

こんな安全性を考えるのは、大企業
2020/11/08(日) 03:12:19.79ID:Xb0LuSe/
多数決ってなに?
する意味あるの?
785770
垢版 |
2020/11/08(日) 03:38:50.21ID:FpP/Utr7
Ruby on Rails の場合は、Heroku, Cloud9 が最短。
git push するだけで、デプロイ完了!

他には、CircleCI, Capistrano
Chef, CookPad 製のItamae

Terraform
786770
垢版 |
2020/11/08(日) 03:52:42.87ID:FpP/Utr7
ネットワーク分断の場合に、
どれがマスターに格上げされるかを、多数決で決める

多数決には過半数が必要だから、ミニマムで、2:1。
だから分散数は、3, 5, 7 個と奇数にしておく

2個は、1:1 になるから、過半数を取れない。
4個でも、1:3 なら過半数を取れるが、2:2 になったら過半数を取れない

Raft という分散合意システムで、HashiCorp のConsul でも使っている
787login:Penguin
垢版 |
2020/11/08(日) 07:46:27.45ID:kMpY44Ng
そろそろスレチと言う気がしてきたな。
k8sの話したいのなら、航海1日目に行けよ。
788login:Penguin
垢版 |
2020/11/08(日) 09:26:29.05ID:Om5NOQR8
Kubernetes 航海1日目
https://mao.5ch.net/test/read.cgi/linux/1553389453/

超過疎スレなので来てやってください
2020/11/08(日) 10:37:59.27ID:YS1Huprs
>>786
奇数から1台死んだら偶数になって多数決で分断が起こるのでは?
2020/11/08(日) 11:34:21.65
docker pull django:latestってやるとバージョンが1なんですけど
古くないですか?
791login:Penguin
垢版 |
2020/11/08(日) 11:51:41.92ID:kMpY44Ng
>>789
多数決と言っているのはクラスタを構成するノードに対する比率を言っているのでは?
3ノード構成で2ノード生きているなら継続するよ、と。
あと分断耐性で言っているのはネットワークなので必ずしもノードが死んでいるとは限らない様な気がする。
クライアントからノード1、2には到達できるけど、3に到達する為のルーターが障害とかね。
2020/11/08(日) 12:06:00.13ID:3zTOdQJY
>>790
「古い」と答えてほしいのか?
2020/11/08(日) 12:31:20.80
>>792
いえ、どうして2でもなく3でもないのかな、と。
これならdockerhubからよりもベースpythonでpipしないといけないような
794login:Penguin
垢版 |
2020/11/08(日) 12:49:45.96ID:kMpY44Ng
>>793
django2とか3とをpullすりゃ良いんじゃね?
https://hub.docker.com/_/django
DEPRECATED と大書きているだろうが。
2020/11/08(日) 14:49:34.76
はい非推奨は知っていたのですが
オフィシャルイメージかつcopy and paste to pull this imageのプリントがそのままなので
他の方法やバージョン1でも問題がないのかと思っていました
2020/11/08(日) 15:10:37.66ID:2UugK007
非推奨と書いてあるのが読めて最終更新日からどれだけメンテナンスされてないか確認できたら
問題ないかどうか判断できるよね
2020/11/08(日) 15:25:08.18
その判断の仕方だとどちらにも取れるのでは
問題かどうかは主にpythonのバージョンに依存するような・・
要は問答無用で1は非推奨なのか、安定版なのか
みたいな
2020/11/08(日) 16:06:24.64ID:YfDIKFy0
「自分の環境にとって許容範囲かどうか判断できるだろ」って意味じゃないの
だからどちらとも言う必要がない
2020/11/08(日) 16:39:49.54ID:dgqq6PlR
それはdjangoのほぼ全部の仕様把握してないと無理
2020/11/08(日) 22:38:23.93ID:FpP/Utr7
Django のバージョンが分からないのは、おかしい。
自分で使うバージョンを決めるものだから

Ruby on Rails なら、6 の本が有名著者で、6冊以上出ている。
黒田努、掌田津耶乃、パーフェクト・シリーズなど

それに、5・6 の違いをまとめた本も出ている。
だから、4 は相当古いと誰でも分かる
2020/11/09(月) 00:32:28.40ID:UETPDkkc
どうして急にRoRの話しだすの... こわいんだけど
802login:Penguin
垢版 |
2020/11/09(月) 02:02:44.37ID:llgGcWyv
RoRの事しか知らないからだろ。
わかって無いけど会話に参加したい(デキる男感をアピールしたい)
初心者心理。
2020/11/09(月) 20:52:16.68ID:Kmn1m/pX
Dockerを仮想マシンのよう使う人って未だに居るんだな
2020/11/09(月) 22:29:49.19ID:mIHqbD7W
べつにいいでしょ
ツールが使い方を決めるんじゃなくて人が使い方を決めるんやで
2020/11/09(月) 22:41:51.92ID:mwf5KB+q
仮想マシンのように使うって具体的にはどういうことなんだろ
806login:Penguin
垢版 |
2020/11/09(月) 23:23:36.46ID:Zesq5BDu
Docker, Kubernetes は、immutable。
状態を持たない

すべて破棄してから、作るのが基本。
サイボウズのkintone では毎日、破棄してから作っている

AWS などを知らない香具師が、コンテナ内に状態を持とうとする。
クラウド・コンテナの機能の、区別ができない香具師

Cloud Native Computing Foundation(CNCF)の卒業プロジェクト、
Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd

他には、はてなのMackerel, DataDog, Elasticsearch などを、知らない香具師。
コンテナを仮想マシンのように使うなって、延々と言われているw
2020/11/09(月) 23:40:05.64ID:t6dOYJYt
と無職が申しております
2020/11/10(火) 02:11:20.23ID:VE0k1L0+
ググった単語を色々並べて、頑張ってるなw
散文詩みたいで意味がさっぱり通じないw

匿名掲示板でそんなに俺できるぜ感をアピールしたいの?なんで?
その心理がサッパリ分からないw
2020/11/10(火) 02:22:13.72ID:kmSrn2NE
と言ってみた
810736
垢版 |
2020/11/10(火) 14:28:17.26ID:KAsBN9EE
>>739
すいませんポート開くの忘れてただけだった

$ docker run -itd -v /root:/var/www/html [イメージID] bash
を
$ docker run -itd -v /root:/var/www/html -p 8000:8000 [イメージID] bash
とやればできた

が、今度はcgi-bin内にアクセスしようとするとダウンロードになってしまう
・cgi-binとcgi-bin/sample.pyのパーミッションを755
・sample.pyの一行目に#!/usr/bin/env python
・改行コードはLF
とやっても
PermissionError: [Errno 13] Permission denied: '/var/www/html/cgi-bin/sample.py'
が出てしまう

自分のホストPCでローカル環境なら大丈夫だった
あとplay with dockerでnginxを介した場合は大丈夫だった
811login:Penguin
垢版 |
2020/11/10(火) 14:53:06.27ID:zR2u0HT2
香具師ってここ5年くらいで初めて見た気がする
812login:Penguin
垢版 |
2020/11/10(火) 15:01:50.33ID:VE0k1L0+
>>810
pythonのhttpdって誰の権限で動いてるんだろう?
(分からないけど)/root/cgi-bin/ (?)に対する権限を持っているのだろうか?
結局コンテナに入ってプロセスの実行者とディレクトリの権限を確認しないと分からない気がする。
813736
垢版 |
2020/11/10(火) 18:07:34.85ID:KAsBN9EE
>>812
/var/www/html/cgi-bin/sample.py
のvarもwwwもhtmlもcgi-binも
全部 chmod 755したら無事
ウェブからsample.py実行できた・・
権限許可はvar/www/htmlの下のcgi-bin以下だけでいいのかと思ってた
2020/11/10(火) 23:49:00.42ID:CFyr5V3E
>>813
で、誰が動かしているのか理解して、0755にしたの?
2020/11/12(木) 00:00:25.23ID:gGQuG0Gs
Docker compose stopでコンテナ止める時って結構時間掛かるのに
OSに対してシャットダウン掛けると即時停まるんだけど
これは本来保存されるべきデータが消えてる可能性ってある?
サービスかなんかでシャットダウン時に自動で何かデータを書き出すような処理入れるべきなのかな?
2020/11/12(木) 01:55:07.35ID:cmzexViL
そりゃタイミング悪けりゃ消えるよ
当たり前じゃん
817login:Penguin
垢版 |
2020/11/12(木) 02:36:03.34ID:hi40oOUg
>>815
>Docker compose stopでコンテナ止める時って結構時間掛かるのに

docker stopコマンドは10秒程度で止まるように優先度を掛けてくるから。

https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/

When you issue a docker stop command Docker will first ask nicely for the process to stop
and if it doesn't comply within 10 seconds it will forcibly kill it.

docker-compose stop --time=1 とかすれば、結構即時に近い形で止まるように見える。
動いてるコンテナの重要度は自分で把握しているだろうから、永続データ無いのなら
time=1で良いんじゃね?とはいえmysql postgresとかあるなら危ないだろうけど。
VM上で動かしたとしても、そんなに早くは落ちないだろうし。
2020/11/12(木) 04:08:50.18ID:tXLSOFMO
Dockerコンテナ内のcrontab -eで、デーモンのスケジュール再起動を任せたら、
oom Killerでホストが倒れてしまった。ホストにsshログインもできない状態に陥って大変あせった。データもっていかれるかと思ったが、再起動でなんとか復帰できた。

ホストは2GB程度だが、そのコンテナ内でこのデーモンは1G程度も消費する。
デーモンの再起動のタイミングで、メモリ溢れが発生したようだ。

そこで、ホストにおいて、docker restart コンテナとするようにした。
そうすると、メモリ溢れなく、安全にコンテナごとデーモンの再起動ができたので報告しておく。
819login:Penguin
垢版 |
2020/11/12(木) 04:11:53.86ID:tXLSOFMO
>>811
香具師/野師/野士/弥四(やし)とは。
意味や解説、類語。盛り場・縁日・祭礼などに露店を出して商売したり、
見世物などの興行をしたりする人。
また、露天商の場所割りをし、世話をする人。
的屋 (てきや) 。 - goo国語辞書
2020/11/12(木) 05:51:20.27ID:wQ2Ny6Zh
そういうことじゃないから...
アスペムーブやめてほしい
2020/11/12(木) 06:10:39.65ID:/yqD0qKX
>>818
コンテナ内で何のプロセス動かしてんの?
2020/11/12(木) 08:42:14.46ID:tXLSOFMO
>>821
iaxmodemを複数個
2020/11/12(木) 08:44:03.06ID:tXLSOFMO
>>822
iaxmodemだけなら小さい消費だが、
それらをfaxgettyさせてhylafaxに接続すると、
5倍くらいに膨れ上がった。
2020/11/12(木) 09:54:41.95ID:nXT2xhvU
コンテナ内でのサービス再起動時にメモリが溢れるってのもよくわからんが、そのサービスの再起動の動作が特殊なのかね
再起動のための停止時には一時的にメモリ使うとか?

コンテナごと再起動するなら内部のサービスは通常の停止(あるいは強制停止?)+起動だろうから、メモリに問題ないのはまあわかる

どっちにしろdockerというよりサービス固有の事情に見える
2020/11/12(木) 14:22:14.87ID:tXLSOFMO
>>824
参考になります。

iaxmodemが始動されると、プロセスが生成されます。
その後、hylafaxを始動させて、
さらに別途faxgettyによって、両者を連結させるイメージです。(3者登場します。そのうち、iaxmodemと、faxgettyはたくさん。hylafaxとは、多対1の関係になっています。)

>>823のように、iaxmodemだけでは専有容量は僅かなんですが、
faxgettyさせると、膨れ上がります。

faxgettyは、hylafaxの関係者なので、
hylafaxがガーベージコレクトするようです。

以前テストした結果は、hylafaxの再起動時には、直ちにfaxgettyプロセスは消滅しました。

しかし、今回の環境ではそういう風にならなかったようです。
前回の環境はCentOS6でネイティブ、今回はCentOS7でコンテナです。
iaxmodemや、hylafaxのバージョンも上がっています。

いずれにしても、デーモンの再起動が特殊です。

逆に考えて、ネイティブ環境でも他の要因で同じ問題を引き起こすなら、
コンテナ環境であってよかったと思います。
docker restart faxContainerをcrontabでコンテナの外側ホストでスケジュールすれば良いのですから。

コンテナ内部でそういうデーモンの消滅のスケジュールを組むと、イメージ化されていることからタイミングの変更が困難になるので、
せっかくの利便性を損なうと思いました。
docker restart faxContainer は素晴らしいです。
2020/11/12(木) 16:08:47.50ID:nXT2xhvU
俺はどちらかといえば「Dockerコンテナは仮想マシンじゃない」方の思想に近いから
コンテナごと再起動するのは普通というか自然だけど荒れるかな

そもそも個別ソフトの事情でメモリ食いすぎるなら、ホストでOOM起こすくらいならコンテナにリソース制限するのがいいのでは
2020/11/12(木) 16:15:03.39ID:0EFH8yv9
Linux上でchrootを仮想マシンと思うやつは、どうにかしている。
2020/11/12(木) 18:00:39.93ID:hi40oOUg
>>826
荒れるっていうか・・・・
その事に対してコダワリ持ってるのって一人だよね?

殆どの参加者は、そもそもどうでもいい話題で、そいつの書き込みに
反応するのは、そいつがなぜ、VMじゃないからどうのこうのと反発する
必要があるのか分からないから。

イスラム原理主義者に向かって暴力行為やめろよ。そもそも宗教なんて
どうだって良いだろ?と言うのと変わらない。
829login:Penguin
垢版 |
2020/11/12(木) 18:24:47.49ID:tXLSOFMO
0番の親プロセスから連鎖的に、必要な環境(ディストリ標準体系)を組みた立てていくということを、「仮想マシン」とよんでいるだけですよね。
それに対して、例えば、helloworldバイナリを実行するだけなのが、非「仮想マシン」ということですよね。

前者は、systemctlによるコントロールができて楽です。
また、アプリを構成するデーモンに依存関係がる場合はとても楽です。

しかし、後者はそういう構成を組むのに別途考慮が必要になるのでお手軽さがなくなり、せっかのコンテナがとっつきにくくなってしまいます。

こういう認識を持っているのです。
830login:Penguin
垢版 |
2020/11/12(木) 18:51:28.32ID:tXLSOFMO
>>829
必要な環境(ディストリ標準体系)と言いましたが、最初にcentos7をdocker ハブから引っ張ってきているので、標準体系にはならないですよね。

最初に何が入っているのか知らないけど、

docker run --privileged -d --net=mynetwork --name centos7 centos:centos7 /sbin/init

のようにすれば、いわゆる「仮想マシン」風の操作性のコンテナができます。

あとは、yumなどでパッケージを導入すれば、
systemctlで制御ができます。

--net=mynetwork に指定するネットワークは、自分で作成が必要になります。
LAN に対して、ポート開放もいらなくなります。
ipfilterで制御するだけです。

--net=ネットワーク名 を指定しないと、インターネットへの穴を開けてしまって危険。

ネットワークの知識がいるので、
これが唯一難しい点ではないかと思います。
2020/11/12(木) 19:18:56.59ID:p5fdQuX8
個々のコンテナの中でsystemd動かしてrsyslogdでログ出してlogroteteまてやるとか無駄の極み
動かすプロセスは複数でもいいけど必要なものだけ動かすのがdocker的な考え方だよ
systemctlに頼らず起動コマンドくらい自分で調べろ

そんなにsystemd入れてinitしたいならlxcを熱烈推奨
832login:Penguin
垢版 |
2020/11/12(木) 19:35:45.36ID:N2n6jd6N
コンテナ内でsupervisordとか動かすのはアンチパターン
2020/11/12(木) 19:50:21.89ID:DTFxiNCU
gitlabはマルチプロセスを採用してるが?
834login:Penguin
垢版 |
2020/11/12(木) 20:03:22.37ID:N2n6jd6N
>>833
ごった煮版は手軽に試したい人向けだろ

まともに使いたい人はhelmチャート版か
よそのDockerイメージ使えって事だろう
2020/11/12(木) 20:08:40.88ID:DTFxiNCU
>>834
つまりマルチプロセスなら手軽に使えるコンテナが作れるわけだよね
ということはコンテナ分割と利便性はトレードオフの関係なんだよ
このことを無視してごった煮はダメだアンチパターンだとわめき散らすのは典型的な解ってない人
836login:Penguin
垢版 |
2020/11/12(木) 20:11:24.65ID:N2n6jd6N
>>835
helmチャートとかdocker-compose.ymlで配布してくれた方がカスタムしやすい。

ログやCPU使用率も各コンテナで分かれるので見やすい
よって利便性も複数コンテナの方が上
837login:Penguin
垢版 |
2020/11/12(木) 20:13:51.62ID:dtymEtIL
docker-composeで試せるものが
docker runで試せるようになったからって
そんな楽になったとは思えない
むしろ不便になってる件
2020/11/12(木) 20:14:05.40ID:cTCSqjp+
ほれみろ。仮想マシンのような使い方をした結果

いつものように苦しんでるではないかw
2020/11/12(木) 20:26:27.70ID:DTFxiNCU
>>836
カスタムはある程度は環境変数とかでできる
高度なカスタムが必要なら勝手に非公式で頑張れ
ほとんどの人は公式ので十分だ

オーケストレーターごとにマニフェストを用意しなきゃならんのは面倒だ
オーケストレーターを選択するのも負担になる
マルチプロセスならdocker runだけでOK
これ以上にかんたんなものはない
2020/11/12(木) 20:28:05.87ID:DTFxiNCU
>>837
コンポーズだとファイルが必要だし内容の理解も必要
docker runはファイル不要で面倒なことは考えなくていい
これ以上楽なことはない
2020/11/12(木) 20:28:29.96ID:DTFxiNCU
>>838
苦しまない
むしろ楽になってる
2020/11/12(木) 20:37:41.89ID:cTCSqjp+
ここで仮想マシンのような使い方をしようとして
簡単に解決できない質問が出てるのが苦しんでる証拠
2020/11/12(木) 20:39:06.48ID:cTCSqjp+
>>840
Dockerfileでたくさん面倒なことしてるだろ

docker-composeはyamlファイルを持ってくるだけ
Dockerfileと違って中身を理解する必要がない!(笑)
2020/11/12(木) 20:39:52.51ID:Pa1Yyy7i
では分割コンテナでいいから質問者が求める構成を提示してみて
できないならそれはマルチプロセスコンテナが悪いのではなく単純に難しい構成だったというだけだな
1日待ってあげるからどうぞ
2020/11/12(木) 20:41:12.65ID:LqH7vHMd
>>843
gitlabはdockerhubからpullするだけで使えるということも知らんのか
dockerfileなんか書かんよ
2020/11/12(木) 20:46:12.26ID:cTCSqjp+
>>844
論点がずれてる

単一であっても分割であっても
仮想マシンのような使い方をするのが間違ってると言ってる
2020/11/12(木) 20:48:37.23ID:cTCSqjp+
>>845
docker-composeもdockerhubから勝手にpullしてくれるってことも知らんのか?
誰かが作ったdocker-compose.ymlをgitとかからpullするのが増えるだけやろ

docker-composeは、docker runだとたくさん引数を指定するのが
めんどくさいってのを解決してくれるものだ

docker runするだけ(引数がたくさんで辛いよぉ)←これを見なかったことにするな
2020/11/12(木) 20:50:19.50ID:LqH7vHMd
>>846
仮想マシンのようなとは?
2020/11/12(木) 20:50:39.17ID:LqH7vHMd
>>847
docker composeはファイルが必要
2020/11/12(木) 20:51:25.98ID:cTCSqjp+
>>848
質問者が言ってるだろ

> 818 名前:login:Penguin[sage] 投稿日:2020/11/12(木) 04:08:50.18 ID:tXLSOFMO [1/7]
> Dockerコンテナ内のcrontab -eで、デーモンのスケジュール再起動を任せたら、
> oom Killerでホストが倒れてしまった。ホストにsshログインもできない状態に陥って大変あせった。データもっていかれるかと思ったが、再起動でなんとか復帰できた。

↑これが仮想マシンのような使い方
↓これが本来のDockerの使い方

> そこで、ホストにおいて、docker restart コンテナとするようにした。
> そうすると、メモリ溢れなく、安全にコンテナごとデーモンの再起動ができたので報告しておく。
2020/11/12(木) 20:52:43.41ID:cTCSqjp+
>>849
ファイルをコピーするのが難しいって話をしてんの?w

docker runで引数をたくさん指定するのと、その引数がファイルに全部書かれてるから
docker-composeするだけで起動できるのと、どっちが簡単ですかって話なんだが
852login:Penguin
垢版 |
2020/11/12(木) 21:14:01.17ID:N2n6jd6N
docker-composeも使えない男の人って…
2020/11/12(木) 21:25:45.69ID:cXD8oKci
Linuxでdocker使ってるんですけど
volumeマウントするとホスト上のroot権限のディレクトリができるのですが
対策ありますか?
nginxです
2020/11/12(木) 21:33:19.48ID:hi40oOUg
>>818
そのものズバリの「?oom-kill-disable」なんつーオプションがあるらしいね。

https://knowledge.sakura.ad.jp/5118/

--memory=1024mb

コンテナにこの辺掛けたらどうなるか、興味深いところ。
ホストが死ぬなんてことはなくなるのでは。
2020/11/12(木) 22:10:04.02ID:e1or7GM2
また、仮想マシン厨が出てきたw

Docker, Kubernetes は、immutable だから、状態を持ってはいけない。
サイボウズのkintone なんか毎日、破棄して作ってる

Heroku 相当のPaaS、AWS Elastic Beanstalk のRuby, Docker などの基本。
OOM killer も、k8s の基本

そもそも、k8sのetcd は、OS の/etc の事
856login:Penguin
垢版 |
2020/11/12(木) 22:30:36.91ID:v1fNQw7L
>>854
oom killerせず、スワップも貧弱なら、
oom-kill-disableすれば、「盾と鉾」の話になりそうですね。

いろいろと興味深いオプションありますね。
857login:Penguin
垢版 |
2020/11/13(金) 00:20:34.77ID:QYcW1wHt
>>855
OOM killer も、k8s の基本 って
どういうことだろう?
2020/11/13(金) 00:53:23.87ID:hfd1VDyW
OOM killer を無効にしてメモリが足りなくなったら
メモリが足りなくなったプロセスが落ちるだけの話
一般的には今まさに動いてるプロセスになるだろう
859855
垢版 |
2020/11/13(金) 01:07:01.48ID:11LMJbR5
k8s のLimitRange で、各Pod のCPU, メモリの使用量を制限すると、
PodがOOM killed される

それで、Pod数が足りなくなるから、また再作成されて、また終了させられる
860855
垢版 |
2020/11/13(金) 01:13:15.53ID:11LMJbR5
だから、仮想マシン厨がやってる事は、
OS の機能を、コンテナ内でやろうとしているだけの話

Docker, Kubernetes、
Heroku 相当のPaaS、AWS Elastic Beanstalk などに書いてある
2020/11/13(金) 01:14:25.55ID:h9qpOhxr
まーた知ってる単語を並べた君かぁ...
2020/11/13(金) 01:16:40.09ID:tBgNXNfN
OOM killerに殺されて転生したらPodでした
863login:Penguin
垢版 |
2020/11/13(金) 08:42:49.39ID:ZDuvPuUP
全て一つのマシンに配置する事も
データベースだけ別のマシンにする事も自由自在なのがコンテナの良いところ
2020/11/13(金) 19:48:18.74ID:PqmnqAl7
K8S使うまでもないんやけどコンテナで運用したいんやがどこのサービスがええのん?
865login:Penguin
垢版 |
2020/11/13(金) 20:45:48.47ID:D3CVFpPL
>>864
一台しか使わないならdocker-composeでもよくね?

それともマネージドサービスが使いたい?
ならコントローラーが無料のサービスを選ぶとよい

Amazon ECSは無料
Azure Kubernetes Serviceも無料らしい
Google Kubernetes EngineはZonal Clusterなら一つは無料らしい
2020/11/13(金) 20:59:39.66ID:fCUG99+M
dockerコンテナ一つで終わるなら、dockerをデーモンで起動すればいいし
複数のコンテナが必要なら、docker-composeだろうな
867855
垢版 |
2020/11/13(金) 23:26:16.23ID:11LMJbR5
当然、Heroku 相当のPaaS、AWS Elastic Beanstalk

Docker, Ruby もある
2020/11/14(土) 09:17:26.51ID:ft2LGGjD
Fargateがベスト
K8Sなんて大げさなものは超大規模システムでしかメリットがない
アプリをお手軽にパッケージングしてお手軽にデプロイする基盤がほしい
でもDockerホストは管理したくない
大半のユーザーが求めてるモノはそれだけだ
2020/11/14(土) 09:41:10.29ID:UXNOc8pC
監視と通知ができる軽量なダッシュボードがほしい
870login:Penguin
垢版 |
2020/11/14(土) 10:37:20.76ID:wWPmvFxr
自分でオーケストレーターをインストールするのか?

k3sなら単一ノード構成でも使えるしセットアップも比較的楽
より機能の少ない物ならNomad, Docker Swarm等もあるが
使いやすいかは知らん

HerokuもDocker使えるから
自分でオーケストレーターの管理したくないならありかも
2020/11/14(土) 12:04:55.78ID:sDLHDIUi
Herokuはvolume使えないんだろ
クソじゃん
2020/11/14(土) 12:13:25.36ID:r6FG8kYB
古いプログラムソースのファイルアクセスをクラウドストレージアクセスに書き換えるのがめんどくさい
なんかファイルIOをフックしてクラウドに転送する魔法ないの?
2020/11/14(土) 12:26:43.45ID:bVnWs0Ha
>>872
クラウドストレージが何を指してるのか分からないけど
単にホストがストレージをマウントしてDockerのvolumeか
mountで逃がせば良いんじゃね?
2020/11/14(土) 13:02:39.61ID:sDLHDIUi
>>873
ホストに依存したくない
コンテナの中だけで解決できないか
2020/11/14(土) 13:10:46.45ID:UXNOc8pC
コンテナにrcloneでも入れればいい
個人的にはそういうものはホストに入れるけど
2020/11/14(土) 16:08:08.85ID:o4LfVWyx
dockerでボリュームマウントするとroot権限でしか編集できなくなるので面倒なのですが
podmanならこの問題が解決されてますか?
877login:Penguin
垢版 |
2020/11/14(土) 16:09:24.03ID:wWPmvFxr
goofysやs3fsを特権コンテナ内で動かすとか?

https://stackoverflow.com/questions/53631567/share-a-fuse-fs-mounted-inside-a-docker-container-through-volumes


https://hub.docker.com/r/ecardoso/s3fs-nfs
https://github.com/cloudposse/goofys

あるいはnfs clientを特権コンテナ内でとか
https://hub.docker.com/r/d3fk/nfs-client/
■ このスレッドは過去ログ倉庫に格納されています

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