Slide 1

Slide 1 text

Kubernetesクラスタのアップデート から入門するKubernetes Kubernetes Novice Tokyo #11 2021/6/22

Slide 2

Slide 2 text

前置き Kubernetes未経験(インフラ経験あり)の状態からKubernetesクラスタのアップデートを 通じてKubernetesに入門 実作業は以下の記事にあるので話しませんが、この方法で入門してどうだったかを話し ていきます。 EKSのKubernetesバージョンを1.15>1.19へアップデート https://qiita.com/myu_mx/items/85461d51fa81d8cc23ac eksctlで作成していたEKSリソースをterraformに置き換える https://qiita.com/myu_mx/items/1b37b5302e39ffb80fdb

Slide 3

Slide 3 text

主なターゲット Kubernetes入門者(インフラ経験者)に教える人(経験者採用難しいし) Kubernetes入門者

Slide 4

Slide 4 text

目次 前置き 自己紹介 結論 前提 アップデートまでのロードマップ ふりかえり

Slide 5

Slide 5 text

自己紹介 @myu_mx(みゅーみくす) 趣味:体力維持の筋トレ 色んなPodcastを聴く 団地リノベ? 身内以外へのLTが初めて 略歴  社会人歴7年目の今年27歳 ● 高専の情報系学科を卒業 ● 社内SE(WindowsServer、オンプレ、ネットワーク) ● SES(Linux,AWSのEC2,S3周り) ● Global Mobility Service株式会社 2021/1入社 ○ AWS,Kubernetesなどを利用したサービス基盤 の提供 ○ データ分析基盤の構築・運用、活用推進など

Slide 6

Slide 6 text

滞納した場合に遠隔制御 FinTechサービス提供 
 適正な金利ローン
 支払い 契 約 者 ファイナンス企業 FinTechサービス
 ※特許取得済 MCCS(デバイス)
 ・安全にモビリティを 
  制御可能なデバイス 
 ・世界各国で様々な
  モビリティに搭載可能 
 MSPF
 ・車両状況を リアルタイムで管理 ・Web APIで 外部システムと連携 
 オペレーション ・利用者に寄り添う
  オペレーション ・各国でのローカライズ ×
 ×
 当 社 Global Mobility Service株式会社のビジネスモデルについて

Slide 7

Slide 7 text

▶Kubernetes未経験者がKubernetesアップデートに取り組むと、一通りキャッチアッ プできて良い ( ˘⊖˘) 。o(アップデートは定期的に誰かがやる必要があるし) ■大前提■ ▶既に自社でKubernetes環境を運用している ▶フォローできるメンバーがいる 教える側、入門側の参考になればと思い、段取りや良かった部分などを共有します 結論

Slide 8

Slide 8 text

目次 前置き 自己紹介 結論 前提 アップデートまでのロードマップ ふりかえり

Slide 9

Slide 9 text

環境構成

Slide 10

Slide 10 text

当初の自分のスキル ▶分からない kubernetes、terraform、AWSのモダンな開発環境 (CI/CDパイプラインとかも) ▶分かる Linux、ネットワーク、Docker(少しだけ) 基本的なAWS(sgの設定とか、ドキュメント見ながら進めるとか) (資格:AWS SSA、応用情報技術者、LPIC1)

Slide 11

Slide 11 text

全体感 ● 期間:3ヶ月でじっくり ○ kubernetesアップデート1.15>1.19 ○ eksctlのterraform化 ● 規模感:ベンチャー ● 出社:ほぼフルリモート ○ 緊急事態が無ければコミュニケーションのために大体隔週1日出社

Slide 12

Slide 12 text

使用した書籍 ● Kubernetes完全ガイド 第2版 ● 実践Terraform AWSにおけるシステム設計とベストプラクティス

Slide 13

Slide 13 text

指導者 ● 現職でKubernetesに入門し経験2,3年目 自分がジョインするまで1人運用 ● 技術書典で出していた書籍が商業誌化している ○ AWSとTerraformで学ぶプロダクションレディな Kubernetes ● Kubernetes Meetup Tokyo #32で登壇 ○ 1人運用を支えるAmazon EKSノウハウ / Amazon EKS Know-Ho ▶分報チャンネルでコマンドレベルまで書きながらやり、詰まったらメンション +日次で朝会+週次で1on1 ▶到達点は示してもらいつつ、マンツーマンというよりはある程度自走 比較的恵まれている環境だったと思います

Slide 14

Slide 14 text

勉強会 ● Kubernetes Meetup Novice ● Kubernetes Meetup Tokyo ● Infra Studyシリーズ 通信の部分とか分かったことなどの自分の立ち位置が確認できたのが良かった ( ˘⊖˘) 。o(この発表分かるぞ...!)

Slide 15

Slide 15 text

目次 前置き 自己紹介 結論 前提 アップデートまでのロードマップ ふりかえり

Slide 16

Slide 16 text

ロードマップ その1 独立環境でのキャッチアップ ● まずはkubernetes dashboard+metrics serverを題材 ○ podからアクセスする ○ serviceからアクセスする ● Prometheus/Grafanaを追加 ○ 外からアクセスする ○ ALBとの連携、nodeport、ingress-nginx-controller ○ トラブルシューティング describeとかlogsとか 書籍・業務環境・AWSや公式のドキュメントを行ったり来たり (ここまでの内容は個人でも可能)

Slide 17

Slide 17 text

ロードマップ その2 実ネットワークに構築 ● Staging環境のSubnetにその1の環境を構築 ● 業務コンテナをデプロイし動作確認 ○ 自社のCI/CDパイプラインを活用 ○ DBアクセスの調整 ○ 検証用のサブドメインを用意 ○ E2Eテスト ● 廃止APIを置き換えもしくはアップデート ○ dashboard ○ metrics server ○ cluster autoscaler ※クラスター内のノード数をpodの状況に応じて自動的に調整

Slide 18

Slide 18 text

ロードマップ その3 アップデート対応 ● 切り替え手順の作成 ● 新環境の作成 ● 新環境に切り替える ○ 重複不可のpod(batchとか)の切替 ○ Stagingは一気にALBの向け先を切替 ○ ProductionはALBのルールで徐々に切替 ● 動作確認 ○ E2Eテスト ○ ALBのアクセス数確認 ● 旧環境を削除

Slide 19

Slide 19 text

目次 前置き 自己紹介 結論 前提 アップデートまでのロードマップ ふりかえり

Slide 20

Slide 20 text

躓いたこと ● namespaceが違うことに気づかない(-n オプションを知らない) ○ port-forwardしようとするがdefaultのpodがないnamespaceを参照してしまう ● 動かないときの切り分け方。最初は全くわからなかった。 ○ モブプロでdescribeとかlogsとかの使い方を教わる ● 既存で使っているテンプレートベースでやるとバージョン問題で躓く ○ 最初はdashboardとかは公式のドキュメントに沿ってやったほうが良い ● HTTPSの証明書問題で難航 ○ 既存のドメインにサブドメインを生やして対応 ● いきなり触るE2Eテストに焦る ○ 使えるようになると便利でありがたくなる

Slide 21

Slide 21 text

良かったこと・感想 ● 分報チャンネルの活用 ○ 細かくコマンドを履歴に残すことで上手く行ったケースが残る &質問できて良い ● アップデートに取り組むことで一通りキャッチアップできて自信になる ● 途中までは別リージョンで行い、ドメイン使う辺りから東京リージョン ○ 業務に影響を与える可能性が限りなく低いという精神的安全があって良かった ● スポットインスタンスを活用できてすごい ○ スポットインスタンスの賢い使い方だこれ ● Kubernetesの運用、手間がかからずびっくり

Slide 22

Slide 22 text

分かってないこと ● Kubernetes実践ガイドの内容全て ● 勉強会で聞く内容の4割くらい? →業務においては一旦これくらいで良いとのこと。 今後も勉強会への参加や、新しいKubernetesバージョンのキャッチアップなどやってい ければと思います。

Slide 23

Slide 23 text

終わりに Kubernetesの入門にKubernetesクラスタのアップデートやるのいいぞ クラスタのアップデートの知見を是非postして下さい (弊社では年度末頃に今回と同じ新node切替方式でアップデートしようかなと。。。) (来月辺りからPrometheus/Grafana→DataDogへの切替を検討中)

Slide 24

Slide 24 text

ちょっとだけ採用宣伝 GMSではインフラエンジニア始めITエンジニアを募集しています。 https://gms-recruit.com/ アジア開発銀行の調査レポートにてグローバルモビリティサービスが代表事例として選出 国内ではクラウドローン株式会社と事業提携 PRTIMESより GMSが提供する金融包摂(Financial Inclusion)型FinTechサービスにより、 SDGs(持続可能な開発目標)の17の目標の うち、7つの達成に貢献します。