kubernetes

この記事はKubernetesについて解説した記事です。会話形式のやさしい文章で「ネットワークエンジニア」の用語のイメージを紹介した後に、採用に役立つネットワークエンジニアの知識を解説しています。

1分で分かる!kubernetesとは?

たいへん、たいへん!

あ、ことりん君。今日も忙しそうだね!一体どうしたの?

ひまわりミュージックさんって覚えている??

あぁ、確かPerlのアプリケーションをPythonに移行するとか、Qlikを使いたいとか言ってたよね。

そうそう!

それで、ひまわりミュージックさんがどうかしたの?

ひまわりミュージックさんって、音楽のストリーミング配信事業をやってるのね。その配信アプリは、Dockerっていうアプリケーションを使ってコンテナ化しているらしいんだ。ただ、そのコンテナが増えて、管理が大変なんだって!

ふむふむ。なるほど。

と、いいながらちょっと全然理解してないんだよね…。コンテナって何…。Dockerって何…。

コンテナっていうのは、仮想化技術の1つなんだ。で、Dockerっていうのはコンテナを使うためのアプリケーションだね。通常はサーバーにインストールされたOS(ホストOS)上にアプリケーションをデプロイするよね。ただ、それだと色々と無駄が多いし、アプリケーションが増えてきた場合に管理が面倒になってくるんだ。

どういうこと?

たとえば、AとBというアプリケーションがある。で、ある日、Aというアプリケーションで障害が発生してしまったとしよう。そうすると、大抵はBにも影響がでてしまうんだ。

なるほどなるほど。

これをコンテナ化すると、「Aのアプリケーションが動く領域」と「Bのアプリケーションが動く領域」を仮想的に分けることができるんだ。もちろん、1つのOSの上でね。

アプリケーションごとに区画が分けられるイメージ?

そんな感じだね。コンテナを使えば、リソースも有効活用できるし、運用も楽になるから最近ではコンテナを導入しているサービスが増えているんだ。

ふむふむ。

ただし、コンテナっていうのは色々と管理に手間がかかるところもあるんだよ。たぶんひまわりミュージックさんが言ってたのは、このあたりのことだろうね。

あぁ、そうかも。それで、何かいい方法があるの??

Kubernetes(クバネティス / クバネテス / クーべネティス)っていうアプリケーションを使えばいいかもしれないね!

クバネティス??

そう。Kubernetesを使えば、コンテナに対する負荷分散、自動的な性能調整 (オートスケール)、自動的な修復 (オートヒーリング)とかをできるようになるんだ。

なるほど…。

もっと噛み砕いていうと、コンテナの一元管理ができたり、運用の手間が省けたり、デプロイが高速化できたりするんだよ!

とりあえずKubernetesは「コンテナを管理するためのプラットフォーム」ってことだね!ジャバード先生教えてくれてありがとう!急いでひまわりミュージックさんに教えてくるよ!

はーい!喜んでくれるといいね!

kubernetesとは

公式サイトによれば、Kubernetesとは、以下のとおりです。

Kubernetesは、宣言的な構成管理と自動化を促進し、コンテナ化されたワークロードやサービスを管理するための、ポータブルで拡張性のあるオープンソースのプラットフォームです。

引用:https://kubernetes.io/ja/docs/concepts/overview/what-is-kubernetes/

昨今、アプリケーションのデプロイや運用を効率良く行うために、コンテナ化という技術が人気を集めています。類似した技術に仮想化というものがありますが、仮想化の場合はOSごと仮想化するため、リソースに無駄が多くなります。一方、コンテナ化の場合は、通常のOSの中にコンテナという独立した区画にアプリケーションを構築します。そのため、リソースを効率よく使用することができます。

ただし、コンテナ単体では手間がかかることも少なくありません。そこでKubernetesの出番です。Kubernetesは、コンテナを管理するプラットフォームであり、以下のようなメリットを得ることができます。

  • オートスケール(自動的にコンテナの性能を調整する)
  • オートヒーリング (異常が発生した場合は、自動でコンテナを再作成する)
  • 負荷分散 (1つのコンテナに処理が偏らないように分散する)

Kubernetesを使うエンジニア

Kubernetesはアプリケーションのデプロイや環境に関する技術です。そのため、インフラ(サーバー)エンジニアインフラ基盤(データベース)エンジニアンフラ(ネットワーク)エンジニアなどといったインフラ系のエンジニアが主に使います。

Kubernetesを使うエンジニアの特徴と在籍業界

 IT専門調査会社であるIDC Japan株式会社は、2021年の国内コンテナ/Kubernetesに関するユーザー導入調査を行いました。その結果、コンテナを本番で利用しているのは16.9%とのことでした。こちらの結果をみると、Kubernetesに明るいエンジニアはまだまだ少数であるといえそうです。

なお、Kubernetesの知見があるエンジニアは、Web業界やスマートフォンアプリ業界などに多く在籍しています。

採用する時に知っておくとよいこと

Kubernetesエンジニアは不足する?

先ほど紹介したIDC Japan株式会社の調査結果にも記載されていますが、コンテナやKubernetesは確実に普及し始めています。一方で、現在は導入しているプロジェクトも多くないため、Kubernetesに知見があるエンジニアの育成は思うように進んでいない状況だといえるでしょう。

このような背景を考えると、近い将来にKubernetesエンジニアはさらに不足していくと予想できます。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

Kubernetesの豆知識

Kubernetes関連の資格

Kubernetes関連の資格としてはLPI-Japanが主催している以下の資格があります。

Kubernetes関連のイベント 

Kubernetes関連のイベントとしては、Cloud Native Computing Foundation’sが主催しているKubeConが有名です。こちらはKubernetesに関する世界最大級のイベントです。

また、日本ではCloudNative Days Committeeという組織が主催しているCloudNative Daysというイベントがあります。

関連記事

  1. Marketo

  2. ShellScript

  3. SAP

  4. WordPress

  5. Hadoop

  6. MBaaS