Closed luvtechno closed 6 years ago
おすすめ記事らしい → https://developers.cyberagent.co.jp/blog/archives/14477/
ノードダウン時
ダウン検知までデフォルト40秒
ハズレpodに当たった -> refused だったり 無応答だったり
kubelet が pod のヘルスチェック
ノードダウンするとヘルスチェックも止まる
**ノードが死んでもロードバランスされ続ける**
serviceIPの障害検知
=> **短いコネクションのタイムアウトと複数回リトライを実装する** or **サービスメッシュを使う**
1, 2 回つながらない程度でservice down になるとリソースがもったいない
circuit breaker の設定に注意
serviceIP の前に load balancer => 503
HAProxyはserviceIP使わない、直接podに
Docker カーネルは共有
ネームスペースを切っているだけ
container != sandbox
DirtyCow コンテナから脱獄
Spectre/Meltdown ホストカーネルメモリ漏洩
rule base access control
- seccomp
- SELinux
- AppArmor
オーバーヘッドは0だが正確なポリシー設定が必要
VM
セキュリティ性能は高い、オーバーヘッドが大きい
gVisor
user land guest kernel
trace, KVM が使える
Docker or Kubernetes, runs
runs -> runsc に置き換える
up overhead 150ms
memory overhead 15MB
seccomp でフィルタリング + Sentry で変換
filesystem: Gofer
- セキュリティ面は向上
- VM相当のプロセス隔離
- エミュレーションによるパフォーマンス劣化
- アプリケーションの互換性が低下
- 頻繁にシステムコールを呼ぶアプリケーションでは使いにくい
trace -> KVM に置き換えようとしている
が、まだパフォーマンスに差はない
未実装のシステムコールも多い
SOCK_RAW (ping) が動かない
SystemV 共有メモリ 使えない
GPU非対応
rootlessコンテナについて
コンテナはほんとに安全?
ランタイムとかオーケストレータのバグの話
- Kubernetes
- Docker
- runc
- コンテナに複数のUID/GIDを割り当てる
- SUIDビット
- ptrace
- ルーティング
- cgroupsの設定
- CoW fs
- overlayfs は ubuntu なら動く
=> https://github.com/rootless-containers
systems-nspawn
SysV -> 物理
rsync 使ってファイルシステムの同期
iptables の LOG は使えない -> nflog
machinectl -> nsenter で無理やりログインする
docker build に make を使う
LABELつかってる?
inspect でメタデータ見れる
log-out でログに出力できる
k8sではサポートされていない
cAdvisor は label に対応しているのでかろうじて使える?
使い方
—build-arg でわたす
makeの実行環境としてDockerを使う
makeはコンテナの中で行う
jenkins
メリット:
- 環境構築が楽
- 環境差分抑えられる(CI、エンジニア)
- 置き換えも楽そう(きっと)
RancherJP
Rancher2.0
k8s ベースになった
ツイートして盛り上がってる感だしたい #microservices_monday
(長い)
(Oracle) scaffold k8s に載せるアプリの開発を省力化してくれるCLIツール near: draft, keel docker push 省略できる fg でログを垂れ流してくれる 中でhelm を使っている devサーバーみたいにサーバーを hot reload してくれる kubectl も使える デプロイする manifests: [“k8s-*”] みたいにファイルを指定できる kaniko 対応 サーバーサイドエンジニアがマニフェスト書かないといけない ドキュメントが見つけづらい、exampleみるしかない?
(さび開発) Argo いろんなワークフローエンジンがある CRDで構築されている project
https://speakerdeck.com/masayaaoyama/introduction-to-kubeflow-0-dot-1-and-future-at-cloud-native-meetup-tokyo-number-2 (CyberAgent) kubeflow ML TensorFlow support 分散処理できる jupiterhub + TensorFlow (+ seldon) jupyterhub: 複数人で使えるように image は自分で用意する必要がある Argoと組み合わせれば幸せになれそう sonnet を使う
kubeflowの文脈で話した
Cherami: Uber Engineering’s Durable and Scalable Task Queue in Go
AWS SQS みたいなものを実装した話。同時書き込みや failover までも自分たちでハンドリングしている。
2018-06-04 19:00~20:00
Microservices Mondayは、マイクロサービスに関連する話を気軽に共有する会です。毎週月曜日に開催されます。
社外からの参加を想定しているため、レポジトリはpublicになっています。
次のようなポリシーを掲げて開催しています。
話したい・聞きたいネタを書いていきます ✏️
ハッシュタグ #microservices_monday