たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

Mix Leap Study#53 Kubernetesで課題解決(中継開催)

   

参加メモ

kubernetes = k8s
「ヤフーのナビゲーション系のバックエンドサービスの課題をk8sで解決した話」
高木 克彰 @tkgtransit(ヤフー株式会社)
ヤフーのナビゲーション機能
抱えていた課題
手動etc..
kubernetesで自動化
API層とengine層で構成
データ入稿したらk8sのCronを実行 → 作業負荷軽減

Q&A
Q:つかっているのはGKE?
A:ヤフーのプライベードクラウド上でGKEを動かしている
Q:デプロイツールは?
A:ヤフー内製のCI/CDツール
スクリュードライバーをカスタマイズして利用
https://screwdriver.cd/

「プライベートクラウド刷新中に感じているk8sエコシステムの良さみ」
鶴田 貴大(サイボウズ株式会社)
@dulltz
資料: https://speakerdeck.com/dulltz/puraibetokuraudofalsesabisuyun-yong-huan-jing-wok8sdegai-shan-suruhua
インフラ
自社製のプライベートクラウドを利用
→ がたがきている
→ 2018年から刷新プロジェクト発足

刷新プロジェクトの目的
--運用コストの低減
--自作すぎるのは問題

なぜK8sを選んだ?
--周辺環境が整いつつある
--流行っていた

k8sにしてよかったこと
-OSアップグレード
--旧基盤
Ubuntuアップグレード14.04から16.06へ手作業
リリースノートを隅から隅まで読み込んだ(2年くらいかかった)
→ 甚大な作業コスト
--新基盤
3つのコマンドで済む

-サービスデプロイ
--旧基盤
-宣言的オペレーションが書けない
→説明ファイルが長くなる

--新基盤
-K8sのYAML適用
→宣言的オペレーションが書けるようになった
--CI/CD GitOps
--マルチテナンシー周辺
どのチームからでもデプロイできるように
--テナントの権限付与
RBAC、Admission Controller

-開発環境
--旧基盤
本番と同型のクラスタを共同利用

--新基盤
K8s
minikube
micro
GKE

新基盤はKindで

本番環境と同等の環境を用意できるようになった
Kind環境 ローカルで動く
サービス公開+証明書発行を自動化
Contor

多機能踏み台サーバ
Teleport

k8sへのアクセス管理
GitHubを使ったSSOで権限制御
ターミナルへの入出力を記録

運用コストは下がった?

楽になった
OS upgrade
サービスデプロイ
開発環境

既存のサービスを組み合わせることで、所望の環境を作ることができる

Q&A
Q:コンテナサイズは?OSがAlpineでない理由は
A:サイズはまちまち。ホストのOSをContainer Linuxにしたから
Q: DBなどをkind上で提供しているか?
A: まだ。もうすぐ

「PFNにおける二種類のKubernetesクラスタ」
太田 佳敬 @ota42y(Preferred Networks)
資料:https://speakerdeck.com/ota42y/pfnniaru2tufalsekubernetes

PFN社:機械学習がメイン - マシンリソースがたくさんあることが競争力
自社GPUクラスタの制御をk8sでやっている

EKSクラスタを利用(AWSのk8sサービス)

Network Policies
PodやNamespace単位で通信を制御できる標準機能
kubernetesはデフォルトで相互通信可能
→ 相互通信制御したい
どうする?:Calico
ネットワークやセキュリティポリシーを実現するソフトウェア

NACOSもつかえるらしい
https://nacos.io/en-us/docs/what-is-nacos.html

AWSの世界とのつなぎ部分はまだむずかしい
Q&A
Q:クラスタを分けずにマルチテナント運用する理由は?
A:クライアントの要求に合わせて柔軟に対応するため

「k8sで画像プラットフォームを運用したお話」
山田 拓也(ヤフー株式会社)

社内のマネージドk8sを利用した経験談

レガシー環境から移行

Podとコンテナの配置をどうしたらいい?
ひとつのPodに機能を集約させすぎた
YAMLが肥大化

教訓
・各コンテナはシンプルに
・Podはk8sの最小デプロイ単位
・協調して稼働する必要のあるものについては、ひとつのPodにまとめる

監視について

Prometheus
学習コストは高いが、細やかにメトリクスをとれるのでそれなりに見返りも大きい
あとからの追求がかのう

独自ツールでの失敗

yamlを自動生成するシェルスクリプトを書いた
→担当者がいないとデプロイできない
kustomize、helmを利用しよう

まとめ
k8sはオンプレやVMよりも精神的に楽

「k8s初心者がgRPCとenvoyを導入したらいろいろ大変だったおはなし」
信原 有志(ヤフー株式会社)

gRPCを利用
httpで構成したシステムよりも高速:最速20ms

サービスメッシュ:envoy利用

envoy:https://dev.classmethod.jp/server-side/envoy-proxy-getting-started/

envoyのgrpcコネクションは自動更新されない

ヘルスチェックを導入して独自に死活監視

以上

 - カンファレンス