ヤマムギ

growing hard days.

*

Developers Summit 2024「Kubernetesは怖くない!開発者のためのインフラトラブルシューティング入門」を見ました

      2024/02/19

高橋 あおいさん

つくって、壊して、直して学ぶ Kubernetes入門という本を出版されるそうです。
面白そうです。

Kubernetesの特徴を知る

  • 障害発生時にコンテナの設定、復旧を簡単にする
    自動で必要な数のコンテナを起動してくれる。

  • 仕様の管理を簡単にする
    マニフェストファイルで管理できる。

  • 複数台サーバー上で起動先の決定を簡単にする
    サーバー固有の設定を意識することなく、Kubernetes APIにより抽象化されている。

これらの特徴によりアプリケーションのデプロイを簡単に楽にできるのが、Kubernetes。

Kubernetesのアーキテクチャを知る

やわらかいタッチなのでとっつきやすい図ですね。

Contril Plane

コンテナの起動をコントロールするためのサーバー
* etcd データベース、設定など必要な情報が格納されている
* kube-apiserver kubectlのコマンドによる指示を受け取って処理してくれるAPIサーバー、etcdとやり取りをする

Worker Node

コンテナを起動するサーバー

Kubernetesで何が起きているか知る方法を知る

Kubernetesのコンテナログはkubectlで見れる。
永久保存できるものではないのでログ転送する仕組みもある。

基本のトラブルシューティングで使うコマンド
kubectl get <リソース名>
kubectldescribe <リソース名>
kubectl logs <Pod名>

Pod: コンテナを起動するための最小単位
ReplicaSet: Podの複数管理
Deployment: ReplicaSetを複数管理
Service: Deploymentで作成した複数Podへのアクセスを適切にルーティングする

  • トラブルシューティングのコツ1 狭い範囲から調査していく
    どのPodで起こっているかを切り分けていく。

  • トラブルシューティングのコツ2 仮説検証を繰り返していく
    仮説に対して確かめる、これを繰り返す

デモ

デモの再現環境

https://github.com/aoi1/developers-summit-2024

シナリオ

「hello-serverが通信できなくなったみたい」
現物から調査する必要がある

kubectl get pod –all-namespaces
kubectl describe pod <Pod名>
などを使用して
「hello-server:1.3 not found」にたどり着いた。

DockerHub見たら、本当に1.3が抜けてるんですね。
https://hub.docker.com/r/blux2/hello-server/tags

Deploymentをhello-server:1.2に修正してデプロイし直して確認。
まだつながらない。
さらなる調査を進めたらselectorが「hello-serve」となっていて、最後のrが抜けていることがわかったので、修正して再デプロイ。

これでやっとつながりました。
という実演でした。

Amazon EKSでクラスター作って試してみます!

感想

トラブルシューティングから理解が深まることって、どんな技術でもよくありますよね。
ハンズオンはうまくいくより、ひっかかったほうがトラブルシューティングで理解が深くなったり。
手順がちゃんとなってないからこそ、周辺のプロパティについても知れたりします。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - event, study

  関連記事

「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました

「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました。 略 …

No-Code JP 第0回で様々な熱い言葉を聞いて思ったこと

以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …

第5回 八子クラウド座談会in関西 「関西まるっとIoTでやったらんかい♬」に行ってきました

SIMの契約変更のはざまで通信がほぼ使えず。 そんな状態なので、Twitterで …

再会の日 ~re:Union 2018 Osaka by JAWS-UG~

8/5は大阪でre:Unionでした。 「再会」と名うったこのイベントは、6月に …

「神戸Pythonの会 #2 meetup」に行ってきました

「神戸Pythonの会 #2 meetup」に行ってきました。 所感など Ato …

「機械学習名古屋・JAWS-UG名古屋共催 Amazon SageMaker オンラインハンズオン〜ハイパーパラメータ最適化とMNIST学習〜」に参加しました

17:40に自宅から徒歩30分の会社の配信スタジオ的なところを出て、歩きながらC …

Developers Summit 2024「GitHub Copilotは開発者の生産性をどれだけ上げるのか? ZOZOでの全社導入とその効果」を見ました

株式会社ZOZO 技術本部 技術戦略部 CTOブロック テックリード 堀江 亮介 …

交通情報系スキルを事例に見る日常生活に溶け込むスキルのテクニック(Alexa Day 2019でのブログ)

以下は、気になったことのメモとか感想を書いています。 登壇者、発表者、主催企業な …

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Microservices × Serverless On AWS」で運営と懇親会LTをしてきました

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …

DevLOVE関西 「サイボウズ開発の現場」に行ってきました

DevLOVE関西 「サイボウズ開発の現場」に行ってきました 所感 「KAIZE …