NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

注目のタグ

    Kubernetes食わず嫌いしてませんか?

    本記事は  【Advent Calendar 2025】  4日目の記事です。
    🌟🎄  3日目  ▶▶ 本記事 ▶▶  5日目  🎅🎁

    はじめに

    こんにちは。加藤です。

    今年も残るところ1ヶ月となりました。2025年も色々ありましたね。

    さて、今回はKubernetesに対する意識について個人的に思っていることとそれらに対するアプローチについて書きたいと思います。Kubernetesの基礎には触れますが、技術深度は深くありませんので、読み物として気軽に読んでいただければと思います。

    対象読者

    対象読者は「参画した案件でKubernetesを使っているが取っ掛かりが分からず理解に苦しんでいる」という方を想定しています。「Kubernetesのことを深く知りたい」という方は別の記事や公式ドキュメントを見ていただければ、です。

    Kubernetes食わず嫌いしてませんか?

    してませんか?

    Kubernetesは決して簡単な技術ではありませんが、コンテナオーケストレーションツールとしてはデファクトスタンダードと呼ばれるほど普及率は高いようです。コンテナ技術を用いたシステムを運用されている方は、苦手意識は持たずちゃんと向き合いたいものです。

    ただ、Kubernetesと聞くだけで身構えてしまう方は多い印象です。

    なぜ、Kubernetesは苦手意識を持たれがちなのでしょうか?

    個人的にKubernetesを食わず嫌いしてしまう要因について考えていきたいと思います。

    まず、読めない

    読めないツールやサービスは親しみにくいですよね。

    Kubernetesは「クバネティス」または「クーバネイティス」と読むことが一般的なようです。また、略してk8s(読み方:「ケーエイツ」など)と表記されることもあります。これはKubernetesの"K"と"s"の間の文字数が8つあることからこのように表記するようです。(このような表記法を「ヌメロニム」というらしいです)

    周りの方も読み方は色々あって、私自身何が正解なのかよく分かってません。ただ、正確さは大事ではなく、自分がこうだと思う読み方をすることが大事だと思っています。口に出すことがKubernetes入門の第一歩です。

    以下、Kubernetesのことをk8sと表記します。

    抽象的な単語

    k8sのことをちゃんと理解しようと思い、Microsoft Copilotさんに教えてもらいます。

    ・・・よく分かりませんね。ある程度知見がある方であれば情報を補完しつつ読み解けるかもしれないですが、初学者にはハードルが高いような気がします。

    特に基本概念と表現されている単語群は意味が抽象的でなかなか想像しづらいように思います。物理的に存在していて触ったり目視で確認できるなどであれば良いですが、クラウドやコンテナ技術などの大半は仮想的に存在しているものであり、触れることも見ることもできず、どこにどのように在るのか、何故必要なのか、どこと繋がっているのか、想像するしかありません。

    さらに、表記揺れや文脈によって単語の意味も変わりがちです。AさんとBさんとで指している事象は同じなのに表現が違う、ということはざらにあります。自分の中で腹落ちしていないと、多方面からの情報によって何が何だかわからなくなってしまいます。

    この辺りの複雑性が「なんか難しそう、イヤ😩」と食わず嫌いされてしまう要因の一つなのではないかと考えています。

    k8s理解への道

    k8sの食わず嫌いを解消するために、何ができるでしょうか?

    様々な考え方があるかとは思いますが、ここでは筆者が考える一つのアプローチについて説明します。

    「多分、分かった」を積み重ねる

    k8sの具体的な話に入る前に何かを習得しようとする際の考え方として「多分、分かった」と思い込むことは意外と大事だと考えています。特にk8sのような複雑な技術知識だと一度に完璧に理解することは不可能だと思いますので、まずは部分的に「多分こういうことだろう」と自分で自信をもって言えるようになることが大事だと考えています。

    複雑な技術知見を「多分、分かった」と思うことで、現場では以下のような効果が期待できます。

    • ある程度の自信が付く
      • つよつよエンジニアと会話ができる
      • 関連事項についての理解が深まる
      • 自分事として捉えることができる
    • 勘所が何となくわかる
      • トラブルシューティングの初動や調査スピードが上がる
      • レビュー観点が養われる

    また、経験豊富なエンジニアであれば、初めて触れる技術領域であっても自分の引き出しにある類似の知識体系から「おそらくこんな感じかな?」と仮説を立てることができると思います。この力も過去の「多分理解した」という経験を積み重ねた結果、身につくものなのではないかと思います。

    もちろん、「多分」ではマズイ場合もありますので、有識者への認識合わせや公式ドキュメントの確認などは適宜実施するようにしましょう。

    各リソースの役割と繋がりをざっくり理解する

    k8sについても各リソースをざっくり理解しつつ徐々に広げていくイメージで見ていければと思います。

    先程のCopilotさんの解答も含めてk8sの構成要素を恐れずに確認していきましょう。取っ掛かりやすいように情報はかなり削ぎ落としています。大事なのは「多分こういうことかな?」と思うことです。

    主要な構成要素

    名前 役割 繋がり リンク
    Pod コンテナの実行単位 Deploymentによって管理され、Service経由でアクセスされる Pods
    Deployment Podの管理とスケーリング Podを管理する Deployments
    Service Podへのネットワークアクセスを提供 Podを選択し、外部や内部からの通信をロードバランシング Service
    ConfigMap 設定情報の管理 PodやDeploymentに環境変数や設定ファイルとして注入 ConfigMap

    クラスター構成

    名前 役割 リンク
    Kubernetes Cluster Kubernetes全体の集合体 Cluster Architecture
    Node コンテナを実行する物理/仮想マシン
    Podが配置される
    Nodes
    Control Plane Clusterの管理中枢
    Nodeを管理する
    Kubernetes Components
    kubectl KubernetesのCLIツール
    開発者がClusterを操作するために必要
    Command line tool (kubectl)

    何となくイメージは掴めそうでしょうか?

    構成図内の各リソースがどのような役割を持っていて、どこと繋がっているか、自分の頭の中でイメージができれば、ここではヨシとしましょう。

    マニフェストが読めれば一人前

    k8sでは各構成要素をマニフェストという定義ファイルで管理します。マニフェストを読めるようになれば、各構成要素の振る舞いについて詳細を確認することができます。

    以下、公式ドキュメントから引用したDeploymentのサンプルファイルを示します。nginxのバージョンが古いのはご愛嬌です

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80

    引用: Deployments | Kubernetes

    YAMLで書かれているため可視性も良いですね。詳細な読み方は割愛しますが、各パラメータ値がどういった意味を持つのか公式ドキュメントなどを参考にしつつ読み解くことができれば、k8sの解像度は格段に上がると思います。

    ここまでを自力でたどり着くことができれば、一人前と言っても良いように思います🙆

    実際に触るのが一番

    色々書きましたが、知識の定着させるためにはやはり自分の手で実際に触ることが最も効果的だと思います。

    私は↓の本を購入し手を動かして学習しました。

    Kubernetes on AWS ~アプリケーションエンジニア 本番環境へ備える

    その際にk9sを用いて、k8sの状態を可視化することも効果的だと思います。ハンズオンは手順に沿って作業するだけで裏で何がどうなっているのか気にしないと自力は身に付きにくいと思いますので。

    k9scli.io

    さいごに

    今回は、k8sに対する意識について個人的に感じている点とそれらに対するアプローチについて書きました。第一歩が踏み出せない、取っ掛かりが分からない、という方の参考になれば幸いです。

    皆様がk8sと少しでも仲良くなれることを願っています🙏

    参考

    Kubernetesの世界的普及状況(2022年以降)調査レポート #kubernetes - Qiita

    僕らは何故Kubernetesを使うのか

    Kubernetesはなぜ難しい?理由と挫折しないための学習ロードマップ

    執筆者: 加藤 俊稀

    🧑‍💻クラウドエンジニア / インフラエンジニア
    🎖️ 2025 Japan All AWS Certifications Engineers
    📝https://tech.nri-net.com/archive/author/t3-kato