OSS紹介

Kubernetes

Kubernetes

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

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

Kubernetesバージョンアップ情報

■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)
■2020-10-12
[VerUP]Kubernetes 1.17.0(リリース日:2019/12/09)
■2020-10-12
[VerUP]Kubernetes 1.16.0(リリース日:2019/12/06)
■2020-10-12
[VerUP]Kubernetes 1.15.0(リリース日:2019/06/24)

すべてを見る

更新日:2020-10-12

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がリリースされました。現在の最新バージョンは Kubernetes 1.19です。(2020年8月現在)

TOPに戻る

Kubernetesの特徴

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

Kubernetesの機能

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

Kubernetesの構成要素

pod 少なくとも一つのコンテナを有するKubernetesの構成単位です。コンテナ間でIPアドレス等を共有します。
APIサーバー ユーザーにREST操作・kubectlコマンドを介してのクラスター操作を提供します。
スケジューラー ユーザーが発行したpod作成命令に対し、スケジューラーは、リソース要件に基づいてノードにpodを割り当てます。
コントローラーマネージャー APIサーバーを介してクラスター状態を監視し、指定された状態への変更を行います。 コントローラーには、レプリケーションコントローラー、エンドポイントコントローラー、ネームスペースコントローラー、サービスアカウントコントローラーがあります。
etcd クラスター状態に関するすべての設定情報は、キーと値のペアの形式でetcdに格納されます。
アドオン アドオンによって、Kubernetesクラスターまたはノードに関連する機能を拡張することができます。ロギングのためのfluentdや、ロールベースアクセスのためのrbacなどがあります。
kubelet kubeletは、各ノードで動作する「ノードエージェント」です。podを定義したPodSpecに従い、コンテナが正常に動作しているかを監視します。
kube-proxy kube-proxyは、各ノードでpod間の負荷分散を実行し、外部ホストがサービスを利用できるようにします。

TOPに戻る

Kubernetesの動作環境

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

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

それぞれのマシンはkubeadmの前提である以下の要件を満たす必要があります。 (バージョン1.18の場合)

OS Ubuntu 16.04+
Debian 9+
CentOS 7
RHEL 7
Fedora 25+
HypriotOS v1.0.1+
Container Linux (tested with 1800.6.0)
Memory 2 GB以上
CPU 2 CPU以上
Network クラスター内のすべてのマシン間の完全なネットワーク接続
ユニークなホスト名、MACアドレス、プロダクトUUID
Disk Swapの無効化

TOPに戻る

Kubernetesのユースケース

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

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

TOPに戻る

Kubernetesのライセンス

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

TOPに戻る

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

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

TOPに戻る

Kubernetesの参考情報

Kubernetesの公式ページ

TOPに戻る

Kubernetesサポートサービス

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細はこちら
お気軽にOpenStandiaまでお問い合わせください。

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