Kubernetes とは?

Kubernetes

Kubernetes

NRIのOpenStandiaが提供するKubernetes最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Kubernetesバージョンアップ情報

■2023-04-18
[VerUP]Kubernetes 1.27.0(リリース日:2023/04/12)
■2022-12-21
[VerUP]Kubernetes 1.26.0(リリース日:2022/12/13)
■2022-09-14
[VerUP]Kubernetes 1.25.0(リリース日:2022/08/31)
■2022-05-17
[VerUP]Kubernetes 1.24.0(リリース日:2022/05/05)
■2021-12-21
[VerUP]Kubernetes 1.23.0(リリース日:2021/12/07)
■2021-08-17
[VerUP]Kubernetes 1.22.0(リリース日:2021/08/04)
■2021-05-06
[VerUP]Kubernetes 1.21.0(リリース日:2021/04/23)
■2021-02-09
[VerUP]Kubernetes 1.20.0(リリース日:2020/12/08)
■2020-10-12
[VerUP]Kubernetes 1.19.0(リリース日:2020/08/26)
■2020-10-12
[VerUP]Kubernetes 1.18.0(リリース日:2020/03/25)

すべてを見る

更新日:2023-03-20

Kubernetesの概要

Kubernetes(クーバネティス)とは、Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

コンテナによる仮想化は、それまでの仮想マシンによる仮想化と比べ、作成が容易で軽量です。しかし、コンテナの数が増えるにつれて、新しいコンテナがどのノードで実行されているかを管理し、ホスト間・コンテナ間の通信を容易にする必要が生じました。
Googleは、コンテナクラスターを一つのシステムとして管理する目的でKubernetesを開発しました。Kubernetesは、オープンソース化され、2015年にGoogleやIBM、Twitter、Red Hatなどが創設メンバーとして参加したCloud Native Computing Foundation(CNCF)のプロジェクトとして寄贈されました。

Kubernetesは、船の操縦士または操舵者という意味のギリシャ語が由来です。Kubernetesのロゴは、船の操舵輪となっています。また、Kubernetesは、記述する上で「k8s」と略されることが多々あります。これは「K」+8文字+「s」という意味です。

2015年7月にKubernetes 1.0がリリースされました。

TOPに戻る

Kubernetesの主な特徴

Kubernetesには次のような特徴があります。

Kubernetesの機能

サービスディスカバリーおよびロードバランシング podに内部IPアドレスと単一のDNS名を与え、負荷分散を行うことができます。サービス検出のためにアプリケーションを変更する必要はありません。
オートマチックbinパッキング 可用性を損なうことなく、リソース要件などの設定に基づき、自動的にpod(後述)を適切なノードへデプロイします。
ストレージオーケストレーション ローカルストレージ、GCPやAWSなどのパブリッククラウドプロバイダのストレージサービス、NFS、iSCSI、Gluster、Ceph、Cinder、Flockerなどのネットワークストレージなど任意のストレージシステムを自動的にマウントすることができます。
セルフヒーリング レプリケーションコントローラーは、設定された稼動チェックを行い、いつでも設定された数のpodが稼動している状態を保ちます。
オートスケーリング コマンドやUIからの指定、またはCPU使用率から自動的に、アプリケーションのスケールアップ・スケールダウンを行うことができます。
ローリングアップデートおよびロールバック すべてのインスタンスが同時に停止しないよう、アプリケーションや設定の変更を段階的に行います。問題が生じた場合、変更をロールバックします。
シークレットおよびコンフィグレーションマネージメント イメージの再ビルドを行わずにアプリケーション構成やシークレットオブジェクトのデプロイや変更ができます。
バッチ実行 バッチおよびCIワークロードを管理します。
ホリゾンタルスケーリング CPU使用率を基にアプリケーションの増強、縮小ができます。

Kubernetesの構成要素

コントロールプレーンコンポーネント
kube-apiserver ユーザーにREST操作・kubectlコマンドを介してのクラスター操作を提供します。
kube-scheduler ユーザーが発行したpod作成命令に対し、スケジューラーは、リソース要件に基づいてノードにpodを割り当てます。
kube-controller-manager APIサーバーを介してクラスター状態を監視し、指定された状態への変更を行います。 コントローラーには、レプリケーションコントローラー、エンドポイントコントローラー、ネームスペースコントローラー、サービスアカウントコントローラーがあります。
cloud-controller-manager Kubernetesにクラウド特有の制御ロジックを組み込み、クラウドプロバイダーAPIとリンクさせます。クラウドプロバイダーと依存関係をもつコントローラーとしては、ノードコントローラー、ルートコントローラー、サービスコントローラーなどがあります。
オンプレミスで動作させるKubernetesにはcloud-controller-managerはありません。
etcd クラスター状態に関するすべての設定情報は、キーと値のペアの形式でetcdに格納されます。
ノードコンポーネント
kubelet kubeletは、各ノードで動作する「ノードエージェント」です。podを定義したPodSpecに従い、コンテナが正常に動作しているかを監視します。
kube-proxy kube-proxyは、各ノードでpod間の負荷分散を実行し、外部ホストがサービスを利用できるようにします。
コンテナランタイム コンテナの実行を担当します。
Kubernetesでは、Docker、containerd、CRI-Oなど複数のコンテナランタイムをサポートします。
アドオン
DNS / Web UI /モニタリング / ロギング等 アドオンによって、Kubernetesクラスターまたはノードに関連する機能を拡張することができます。ネットワーク・ネットワークポリシー、サービスディスカバリー、可視化と制御、インフラストラクチャなど様々な機能拡張が可能です。

利用可能なアドオンの一部は以下に記載があります。
参考: https://kubernetes.io/ja/docs/concepts/cluster-administration/addons/

参考: https://kubernetes.io/ja/docs/concepts/overview/components/

TOPに戻る

Kubernetesのユースケース

次のようなお客様に、Kubernetesの導入をオススメします。

  • マイクロサービスプラットフォームを構築したい
  • イミュータブル・インフラストラクチャーによる開発環境・本番環境を構築したい
  • DevOpsを導入・改善したい

TOPに戻る

Kubernetesの動作環境

kubeadmを利用して高可用性クラスター環境を構築する前提となる動作環境は、以下のとおりです。

  • マスター用マシン3台
  • ワーカー用マシン3台
  • クラスター内のすべてのマシン間の完全なネットワーク接続
  • 1つのデバイスからシステム内のすべてのノードへのSSHアクセス
  • すべてのマシンのsudo権限
  • すべてのマシンに kubeadm と kubelet がインストール済みであること

それぞれのマシンはkubeadmの前提である以下の要件を満たす必要があります。

OS Linux互換のホストが対象です。手順としては、
  • DebianとRed Hatに基づくLinuxディストリビューション
  • パッケージマネージャーのないディストリビューション
  • のものを提供します。
Memory 2 GB以上(これ以下ではアプリで使用できる空きがほとんどありません)
CPU 2 CPU以上
Network
  • クラスター内のすべてのマシン間の完全なネットワーク接続があること
  • ユニークなホスト名、MACアドレス、プロダクトUUIDを持っていること
  • 特定のポートをオープンしていること
参考: https://kubernetes.io/docs/reference/networking/ports-and-protocols/
Disk Swapの無効化

参考: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

TOPに戻る

Kubernetesのライセンス

Kubernetesのライセンスは、Apache2.0ライセンスです。 Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

TOPに戻る

Kubernetesと同様の機能を提供する製品

Nomad、Mesos(+Marathon)、DockerのSwarmモードなどがKubernetesと同様の機能を提供しています。 いずれもオープンソースのオーケストレーションプラットフォームです。

TOPに戻る

参考情報

Kubernetesの公式ページ

TOPに戻る

Kubernetesのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO