探検


Docker Part3

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
2019/03/08(金) 14:40:20.55ID:VDOvuQ0J
LXCを使った軽量仮想環境。
これからの動向が気になるところ。
情報共有しましょう。

http://www.docker.io/

前スレ
Docker Part2
https://mao.5ch.net/test/read.cgi/linux/1506574845/
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回すとか割と泥臭いことやれば解決できると思うんですが、
なんかもっとスマートな方法ないかな…と。
2020/01/08(水) 17:21:17.56ID:ITBdUvUl
好みとは思うが
「コンテナの機能にホストが依存する構成」
は上下ひっくり返った感じで落ち着かないので避ける
2020/01/08(水) 18:55:54.72ID:i7Ggys1A
>>447
> コンテナでOpenVPN動かしてて、
使い方が間違ってる可能性が高いな。
Dockerはそのような目的で作られていない。
目的外のことをするから難しくなる
450login:Penguin
垢版 |
2020/01/08(水) 20:29:54.16ID:m+D5UTvu
Kubernetesのhelmチャートには
ホスト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ってアピールしてる程度だしな
454login:Penguin
垢版 |
2020/01/08(水) 23:57:27.85ID:ghrrHBBS
よく分かんないけどホストOSのネットワークで動かしたり
ポートマッピングでホストOSのポートでアクセスできるよう設定してから
iptablesでルート設定して流すだけじゃないの?
2020/01/09(木) 00:45:09.92ID:M2xrYdZL
>>454
あのさあ、せっかくコンテナの外から
仮想化して可搬性持たせてるのに
それをぶち壊すような使い方したら
Docker使う意味ないでしょ
2020/01/09(木) 04:57:13.50ID:6QLBQsrn
>>453
間違った使い方ってのは貴方の主観でしょ。

メモリ1G程度の違いが何の問題になるのか、全く分からないのだがw
自宅で運用してるが、消費電力で2W程度の違いでしかない。
2020/01/09(木) 05:08:33.92ID:6QLBQsrn
VPNのIPの話はk8sのサービス→ロードバランサ使えば瞬時に解決する話。

k8sは外部公開用の話が多いのでその手の技術や情報が充実している。dockerはローカル環境想定なので、外部公開系はできなくはないが機能的に微妙。

そもそもとしてvpnはクラウド経由させれば細かいIPの設定は不要なわけだが、その辺りの知識も無さそうw
2020/01/09(木) 08:20:56.55ID:M2xrYdZL
>>456
> メモリ1G程度の違いが何の問題になるのか、全く分からないのだがw
金かかるだろ?何を言ってるんだろうか
2020/01/09(木) 08:21:38.97ID:M2xrYdZL
あと電気代じゃねーぞ。まあ電気代の話にすり替えてごまかそうとしてるんだろうけどなw
2020/01/09(木) 08:23:29.67ID:M2xrYdZL
>>457
なにクラウド使う前提にしてんの?w
VPNがクラウド経由させれば不要とか
何をどう使えばそうなるのか言ってみ

つまりいくら金がかかるのかって話だ
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ユニットでやる方法がある
462login:Penguin
垢版 |
2020/01/09(木) 09:04:53.08ID:CnTio2h+
DockerでOpenVPNってこれ?
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の設定だって変えられる
変えて何が悪い?
実際やってる人なんていくらでも居るじゃん
2020/01/09(木) 11:13:36.32ID:1eanVRuK
https://github.com/hwdsl2/docker-ipsec-vpn-server
自分はこれつかってIPsec/L2TPサーバーやらせてるな
466445
垢版 |
2020/01/09(木) 13:14:25.22ID:cTaOp8rO
皆さんありがとうございます。

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するけど
そうじゃなくてイメージをアップしたくなくて、
ローカルでビルドしたい。それを自動的にしたい。
2020/01/15(水) 16:13:25.17ID:+oUgohk9
>>468
ローカルに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:M8GRLPix
>>474
何も増えてないよ。
「dockerイメージリポジトリにイメージをアップしたくない」と言ってるのに
それを無視するから、無視できないように補足しただけ
2020/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両方用意してるプロジェクトもあるね
480login:Penguin
垢版 |
2020/01/16(木) 15:06:12.13ID:HmEXTTgD
>>468
そのDOCKERイメージをtgz形式にsaveしたものを、
dockerリストアコマンドでイメージリストに展開してから、処理を行えば?

あ、シェルスクリプト禁止か。
2020/01/16(木) 19:00:48.25ID:zyhk0GYW
>>480
禁止っていうか、シェルスクリプト作るなら誰だってできるって話
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を中途半端に持ってくるのやめてくれないかな
リンクあるだけでいいだろ、あれ誰が嬉しいんだ?
2020/01/20(月) 17:21:05.08ID:NtEsdlOO
>>483
一理ある
2020/01/20(月) 18:26:17.46ID:hh3AXqYf
>>483
一理あるから、Docker Hubに文句言ってきてください。
2020/01/20(月) 23:01:44.50ID:j4KqcwiZ
>>483
デメリットあるの?
概要把握したい向きもあるだろう
487login:Penguin
垢版 |
2020/01/21(火) 00:08:02.28ID:3DzPFxLf
>>486
> 概要把握したい向きもあるだろう
一行の見出しでは情報を伝えられないだろ?

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つくらいは
タダにしてくれよ
489login:Penguin
垢版 |
2020/01/22(水) 23:01:11.05ID:Fr3HVC6X
クラスター使ったことある?
高いの?

いくらすたー?
2020/01/22(水) 23:48:26.84ID:OxBzKT9R
googleも無料枠だと無理だからねえ。
それ以前に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ドル
492login:Penguin
垢版 |
2020/01/24(金) 20:40:22.15ID:Pc7e1TLp
HAとか気にしなければさらに安く出来るが
大事な環境でやるのはおすすめしない

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?
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に組もうと思っているのですが
どちらを使えば良いのか教えていただけると幸いです
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を使う
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が推奨
2020/01/25(土) 19:42:29.77ID:F7NqsOON
別にDockerを開発環境にしてもいいのに
このスレではそれやると発狂する人がいるよね
2020/01/26(日) 00:27:49.86ID:m8Av32+M
開発環境としてDocker(というかコンテナ)使うのは環境汚さないで済むから寧ろ推奨する
VSCodeのRemote Developmentなんかのおかげで開発環境としてのコンテナがものすごく扱いやすくなったのも大きい
2020/01/26(日) 11:56:04.11ID:BR48jIcb
今まで仮想マシンや物理マシンに対して、ansibleみたいなツールを使って設定の自動化をしていた
これがdockerになると、コンテナに対する設定はdockerfileに書くから、ansibleみたいなツールは必要なくなるという認識でええのかね
2020/01/26(日) 12:26:39.51ID:OzJ+Z2xw
>>500
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使えよ
2020/01/26(日) 12:41:34.96ID:UB3s9UX0
>>496-499
ありがとうございます
まずはforWindowsでDocker自体に慣れてみます
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は、元の構成管理だけをするように戻りつつある
いろいろ手を広げすぎたんだよ、やつは。
2020/01/26(日) 17:46:42.25ID:oh//L3LW
>>502
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年になっても放置
忘れられているっぽい
2020/01/26(日) 21:12:50.84ID:Sxuz1Gfw
まあ本家のツールが使いにくいっていうのならTerraformとかの意味があると思うけど
あとAWSとGCPを行ったり来たりしたり、同じものを別々の場所に構築するとか
コード共通でできるんでしょ?しらんけどw
510login:Penguin
垢版 |
2020/01/26(日) 21:37:08.16ID:7x8NuhpY
マルチクラウドは出来るらしいがやったことない
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までの対応
2020/01/26(日) 23:59:58.56ID:o6VABBUy
なにか便利な機能を提供してくれるならいいけど、
「使い方を変えるだけ」の道具はいらないなぁ

公式で同じことできるんでしょ?
それが簡単になったわけじゃなくて
使い方を変えるだけでしょ?

そしてそのプラバイダーが、ある機能に
対応してない困ったぞーっていうのを
永遠と繰り返してるでしょ?
513login:Penguin
垢版 |
2020/01/27(月) 07:40:21.21ID:xCTAmbZl
新しいものにどんどんチャレンジして報告するべきじゃないのかな。
それがコミュニティへの貢献ってものでしょ。
キミたちは人柱なんだから。
2020/01/27(月) 10:45:17.66ID:oWpDpuvr
WindowsのDocker Desktopを2.2にアップグレードしてから、マウントしたボリュームが時々書き込めなくなってエラーになる状態になって
2.1に戻したら直った
調べたら2.1から2.2で内部構造がだいぶ変わってるんやね
2020/01/27(月) 20:04:40.96ID:VdNPUB7+
>>504
その状態でansibleにやらせる構成管理ってなんなんや
dockerを動かす物理マシンの構成管理だけやるという意味なんか
516login:Penguin
垢版 |
2020/01/28(火) 03:27:51.51ID:alr/KPAT
この前、Docker HubのREAME.mdがGitHubのREADME.mdを中途半端に
持っていくって話をした件だけどGitHub Actionsで同期取るっぽいのがあった
これで指定したやつを持っていってくれるかも
https://github.com/marketplace/actions/docker-hub-readme-description-sync
517login:Penguin
垢版 |
2020/01/29(水) 14:22:12.33ID:nynZIk47
k3s使ったらメモリー1GBのインスタンス3つでもHA出来る?
2020/01/29(水) 14:26:25.10ID:givpjA6N
k3sはメモリ512MBしか(笑)食わないんだろ?
ならアプリが512MBまでなら動くんじゃね?

k3sでこれだけだと、k8sはどんだけ食うんだよw
カーネルの使用メモリが少なくても台無し
519login:Penguin
垢版 |
2020/01/29(水) 14:29:38.68ID:6Q7T2cbs
workerは別途用意するだろJK
520login:Penguin
垢版 |
2020/01/29(水) 19:59:16.23ID:5uyhmzFh
本家k8sは1GB RAMでは足りない気がする
kiamのサーバーと
helm v2のtiller
kube-iam-authenticator

controllerにこの3つを置いているが
2GBから1GBに減らしたらAPIサーバーが使えなくなった
だから本家は最低でも2GBのメモリーが必要
521login:Penguin
垢版 |
2020/01/29(水) 19:59:44.39ID:5uyhmzFh
etcdも同居してるからさらに厳しい
2020/01/29(水) 20:00:56.28ID:3wP3LyoD
なんでk8sってそんなにメモリ食うんだろう?
ただコンテナを管理するだけの仕組みじゃんか
2020/01/29(水) 20:02:25.17ID:3wP3LyoD
高いVMインスタンスを売りつけるための
戦略としか思えないな
ウェブサーバーとか数十MB程度で動くのに
k8s化した途端1GBとか必要になる。アホかと
524login:Penguin
垢版 |
2020/01/29(水) 20:05:31.56ID:5uyhmzFh
他のクラウドはコントローラーがタダで使えるらしいが
AWSだけまだ72ドル掛かる
高杉

大企業にとってははした金だから
それでも使う奴は居るのだろうが

>>523
GKEは安いの知ってる?
525login:Penguin
垢版 |
2020/01/29(水) 20:07:53.93ID:5uyhmzFh
ワーカーノードは1GBでも良い
コントローラーノードの金が気になるならGCP行ってGKE使え
うちもGKE使いたい所だが
AWSを使わねばならない
のっぴきならない事情がある
2020/01/29(水) 20:16:03.69ID:3wP3LyoD
kubernetsとかさ、クラウドの上にクラウドを作ってるみたいで
気持ち悪いんだよね。せっかく便利に使えるようになったクラウドを
なぜコンテナベースで再発明するのか?
2020/01/29(水) 20:57:23.22ID:zxPSLJvv
>>526
インフラエンジニアの雇用を維持するためだよ。マジで。
自社サービス系のインフラエンジニアって基本的にトラブルがなければ仕事ないから、
自然と問題なく動いているもののオーバーエンジニアリングに向かうものだ。
2020/01/29(水) 21:15:29.61ID:3wP3LyoD
オーバーエンジニアリング程度なら良いけどさ
メモリ食い過ぎで前より不便にしてるだけなんだよな
インフラ系って、変わってるだけで、何も良くなってない
529login:Penguin
垢版 |
2020/01/29(水) 21:33:22.35ID:9OcLAXSy
>>528
いや、だからGKE使えよ?
コントローラー無料だろ?
2020/01/29(水) 22:10:05.14ID:OCMkZsaj
>>526
元々クラウドのための仕様なんだが……。

ノードの数を負荷に応じて変更できるから、処理が多い時間はノード増やして処理し、少ない時間はノードを減らす事でコストを最適化できるのがk8sの売り。

規模が小さいとこの利点(オートスケーリング)が意味をなさなくなる。
531login:Penguin
垢版 |
2020/01/29(水) 22:23:27.34ID:BTLuyg2X
1台しかないならdocker-composeでよくね?
1台しかないなら
2020/01/29(水) 22:35:55.91ID:OCMkZsaj
従来は高価なオンプレを1台買ってスペック余らせるのが普通だったが、今はクラスタにする事で、オートスケーリングによりスペック(≒コスト)を最適化できるようになった。

ハイスペック1台ならdockerで十分だが、コスト面で最適化されてるかな?という話。
2020/01/29(水) 23:26:28.52ID:K0p5wp9W
>>532
それだけならECSとかで十分でしょ
k8sは決まったサイズのクラスタを効率的に使うにはいいけど、クラスタそのもののスケーリングにはあまり適してないよ
2020/01/29(水) 23:50:39.74ID:OCMkZsaj
>>533
k8sはECSより高機能で汎用的だが学習コスト高めという印象。ECSはベンダー製なので、クラスタに関してはその通りだろうが、ベンダーロックインの問題がある。

ベンダーロックインの問題を気にせず、ECSで案件が済むならECSだろう。
2020/01/30(木) 00:20:34.76ID:KTDe4H4D
たかがコンテナ立ち上げるだけのことにベンダーロックインねえ
事業視点で言えば、k8sに習熟した少数のエンジニアにインフラをロックインされることの方がよほどリスクが大きいと思うけどね
2020/01/30(木) 00:26:20.89ID:OBlH/P8v
>>528
単に使い所を間違ってるだけとしか思えんが
そもそも別にk8s使わなくてもdockerはある程度規模に応じたオーケストレーションを標準に
近い形で用意しているはずで、それでは管理できないほど巨大な規模のサービスを運用するから
k8sですよ、って事で、当然メモリが食いすぎとか文句言う人が使う物じゃない気はする。
そういう人にはもっと小規模な物あるでしょ?
昔Googleの論文元にHadoop作って訳も分からずに食いついて先進的だカッコいいぜ俺スゲーとか
いって後からやっぱ遅ーえわこれwとかいってた連中思い出すね。
自分たちが間違った場所に適用してるとは最後まで考えないw
2020/01/30(木) 01:26:01.87ID:pAQXSf/G
>>535
Amazonがk8sのサービス始めたのはこの理由らしいから、そういう意見も多いということなのだろう。

個人的にはk8sよりマルチビルドのdocker file の方が難解だな
2020/01/30(木) 02:46:59.35ID:N78kTYg5
>>533
> k8sは決まったサイズのクラスタを効率的に使うにはいいけど、クラスタそのもののスケーリングにはあまり適してないよ

そうだよね?

広大なCPU空間を確保しておいて、自由に使いましょうというのならいいけど
コストの観点から空間自体を減らしたり増やしたりってのは適してないと思う
スケーリングならすでにGCEとかのクラウドの仕組みで実現できたじゃんって思う

そこにGKEを持ってきて使いづらくしたと思ったら、
どうせコンテナベースで課金とかするでしょ?
なんでクラウドの中にさらにクラウド作ってるんだろうって思う
2020/01/30(木) 02:49:16.80ID:N78kTYg5
>>537
> 個人的にはk8sよりマルチビルドのdocker file の方が難解だな

マルチステージビルドの事? どんだけ複雑なんだよw

あんなの、中間ファイルは不要だから
前のイメージでビルドしてできた生成物のみ
コピーして使いましょうってだけじゃんか
2020/01/30(木) 03:04:05.04ID:N78kTYg5
k8sの嫌なところは短いタイミングで強制アップデートな所だな
これがあるからストレージとしては使えない
データベースは別のサービスを使えってことなんだろうけど、
これがあるからHAの代わりにはならないんだよね
541login:Penguin
垢版 |
2020/01/30(木) 08:22:30.46ID:x2o8za8v
自前k8sなら誰も面倒見てくれないので
アップデートもされない
証明書の期限短くすると
期限切れした時にAPIサーバーと通信できなくなるけど
542login:Penguin
垢版 |
2020/01/30(木) 08:57:49.48ID:JRKnodoF
APIサーバーの証明書は自動更新機能があった気がする

>>538
ワーカーノードは今まで通り課金される

k8sでのサーバーレス関数の実行は
EKSやGKEで最近できるようになったが
一部機能制限がある上に
確保するリソースが多いと通常通り
ワーカーノードを用意した方が安くなる事がある

サーバーレスはコールドスタートによる遅延の問題なども多分まだある
543login:Penguin
垢版 |
2020/01/30(木) 09:18:13.47ID:JRKnodoF
サーバーレスが利用出来ない場合の次善の策は
Cluster Autoscaler
ポッドの数に応じてノード数を増減出来る
負荷ベースでポッド数を増減する
水平ポッドオートスケーラーと組み合わせる事で、ノード数を負荷に応じて自動で増減出来る

とは言ってもノードの起動は時間がかかるので
すぐには無理だが
544login:Penguin
垢版 |
2020/01/30(木) 09:18:14.85ID:JRKnodoF
サーバーレスが利用出来ない場合の次善の策は
Cluster Autoscaler
ポッドの数に応じてノード数を増減出来る
負荷ベースでポッド数を増減する
水平ポッドオートスケーラーと組み合わせる事で、ノード数を負荷に応じて自動で増減出来る

とは言ってもノードの起動は時間がかかるので
すぐには無理だが
2020/01/30(木) 11:27:06.60ID:pAQXSf/G
>>539
他人が書いたのを検証するのが難しいってことね。他人に依存するかどうかという視点の話。
■ このスレッドは過去ログ倉庫に格納されています

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