該当する結果がありません

一致する検索結果がありませんでした。

お探しのものを見つけるために、以下の項目を試してみてください。

  • キーワード検索のスペルを確認してください。
  • 入力したキーワードの同義語を使用してください。たとえば、「ソフトウェア」の代わりに「アプリケーション」を試してみてください。
  • 下記に示すよく使用される検索語句のいずれかを試してみてください。
  • 新しい検索を開始してください。
急上昇中の質問

Kubernetesとは

よく「クラウドのオペレーティング・システム」と言われるKubernetesは、コンテナ化されたアプリケーションとサービスのクラスターを管理するためのオープンソース・プラットフォームです。GoogleのエンジニアであるJoe Beda、Brendan Burns、Craig McLuckieによって2014年に開発され、その後すぐにオープンソース化されたKubernetesは、すぐに独立した繁栄するクラウドネイティブ・エコシステムになりました。今日、Kubernetes(古代ギリシャ語で「操舵手」または「パイロット」を意味する)は、Linux Foundationの一部門であるCloud Native Computing Foundation(CNCF)により管理されています。

Kubernetesは、CNCFの最初の卒業プロジェクトであり、歴史上最も急速に成長しているオープンソースプロジェクトの1つになりました。Kubernetesには現在2,300人以上の貢献者がおり、フォーチュン100の半分を含む大小の企業に広く採用されています。

Kubernetes 101—重要な用語

まず、Kubernetesに関連するいくつかの重要な用語を次に示します。Kubernetes Standardized Glossaryページに、より多くの用語を網羅したリストがあります。また、一般的に使用されるkubectlのコマンドとフラグのリストが含まれているKubernetes Cheat Sheetを活用することもできます。

クラスター

マシンの集合。各マシンは、Kubernetesによって管理されるコンテナ化されたアプリケーションを実行するために使用されるノードを指します。

ノード

仮想マシンまたは物理マシンのいずれか。クラスターはマスターノードといくつかのワーカーノードで構成されます。

クラウドコンテナ

ソフトウェアとその依存関係を含むイメージ。

ポッド

Kubernetesクラスターで実行される1つのコンテナ、またはコンテナの集合。

デプロイメント

ポッドで表される複製されたアプリケーションを管理するオブジェクト。ポッドはクラスターのノード全体に導入されます。

レプリカセット

指定された数のポッドレプリカを同時に実行されている状態にします。

サービス

ポッドの集合で表されるアプリケーションにアクセスする方法を定義します。サービスは通常、ポートとロードバランサーを定義し、クラスターへの内部および外部アクセスを制御するために使用できます。

KubeConとは

KubeConは、Kubernetes開発者とユーザーのための年次会議です。2015年に500人が参加した最初のKubeCon以来、KubeConはクラウドネイティブ・コミュニティにとって重要なイベントに成長しました。2019年、カリフォルニア州サンディエゴ版のKubeConには、Kubernetesクラウド・オーケストレーション・プラットフォームを中心に開花したオープンソース・エコシステムを祝う12,000人の開発者とサイト信頼性エンジニアが参加しました。

Kubernetesコンテナとは

開発者がさまざまなクラウド、テスト環境、ノートパソコン、デバイス、オペレーティング・システム、およびプラットフォームを備えたさまざまなコンピューティング環境にソフトウェアを導入することが増えるにつれて、ソフトウェアを確実に実行するという問題が最も重要になります。そこでコンテナが登場します。コンテナは、アプリケーションをそのランタイム環境全体にバンドルします。そういった意味では、コンテナは、適切なライブラリ、依存関係、およびオペレーティングシステムを含めることでアプリケーションを実行できる「バブル」を提供するため、仮想化の一形態です。ただし、コンテナにはアプリケーションに必要なリソースのみが含まれ、それ以上は含まれないため、コンテナは仮想マシンよりも小さくなります。

Kubernetes 対 Docker

Linuxのコンテナは2008年から存在していましたが、それらを有名にするために2013年、Dockerコンテナが登場しました。同様に、コンテナ化されたアプリケーション(実行に必要なすべてのものを含むアプリケーション)導入への関心の高まりにより、最終的に新しい問題が発生しました。何千ものコンテナを管理。Kubernetesは、コンテナのライフサイクルを自動的に調整し、ホストしているインフラストラクチャ全体にコンテナを分散します。Kubernetesは、需要に応じてリソースをスケールアップまたはスケールダウンします。コンテナの状態をプロビジョニング、スケジュール、削除、および監視します。

Kubernetesのコンポーネントとは

Kubernetesの主要なコンポーネントは、クラスター、ノード、およびコントロールプレーンです。クラスターにはノードが含まれます。各ノードは、少なくとも1台のワーカーマシンのセットで構成されます。ノードは、導入されたアプリケーションの要素を含むポッドをホストします。コントロールプレーンは、クラスター内のノードとポッドを管理し、多くの場合、多くのコンピューターにまたがって、高可用性を実現します。

Kubernetesとは

コントロールプレーンには次のものが含まれます。

  • Kubernetes APIサーバー:Kubernetesを制御するためのプログラミングインターフェイス(API)を提供
  • etcd:クラスターデータのKey/Valueストア
  • Kubernetesスケジューラー:新しいポッドを利用可能なノードに一致
  • Kubernetes-controller-manager:多数のプロセスを実行して、ノードの障害を管理し、複製を制御、エンドポイントを介してサービスとポッドに参加し、アカウントとアクセストークンを制御
  • Cloud-controller-manager:特定のインフラストラクチャルートや負荷分散などの側面に関する特定のクラウドプロバイダーからのAPIの管理を支援

ノードコンポーネントには次のものが含まれます。

  • kubelet:コンテナがポッドで実行されていることを確認するエージェント
  • Kubernetesネットワークプロキシ:ネットワークルールを維持
  • Docker、コンテナ、または別のタイプのコンテナランタイム

Kubernetesのメリット

コンテナを使用すると、アプリケーションが実行に必要なすべてのものにバンドルされていることを確信できます。ただし、多くの場合マイクロサービスを含むコンテナを追加すると、Kubernetesを使用してコンテナを自動的に管理および配布できます。

Kubernetesを使用すると、組織は次のことが可能になります。

自動的にスケーリング 需要に応じて、導入をスケールアップまたはスケールダウンします。
サービスの詳細 DNSまたはIPアドレスを介してコンテナ化されたサービスを検索します。
負荷分散 ネットワークトラフィックを分散することにより、導入を安定させます。
ストレージ管理 ローカルストレージまたはクラウドストレージを選択します。
管理バージョン 実行するコンテナの種類と、新しいイメージまたはコンテナリソースを使用して置き換えるコンテナを選択します。
セキュリティの維持 特定のコンテナイメージに関連するパスワード、OAuthトークン、SSHキーを安全に更新します。

Kubernetesの使用における課題

Kubernetesは極めて構成可能であり、あらゆるタイプのアプリケーションをサポートできますが、理解して使用するのは難しい場合があります。多くのCNCFメンバーがコメントしているように、Kubernetesは特定のワークロードに対して常に正しいソリューションであるとは限りません。そのため、Kubernetesエコシステムには、特定のワークロードの問題を解決するために組織が作成した、関連クラウドネイティブツールが多数含まれています。

Kubernetesは、ソースコードではなくコンテナを導入し、アプリケーションを構築しません。ロギング、ミドルウェア、監視、構成、CI/CD、およびその他の多くの実稼働アクティビティには、追加のツールが必要です。とはいえ、Kubernetesは拡張可能であり、JETプレーンから機械学習まで、さまざまなユースケースに適していることが証明されています。実際、オラクル、Google、Amazon Web Servicesなどを含むクラウドベンダーは、Kubernetes独自の拡張性を使用して、複雑さを軽減し、開発者の生産性を向上させるサービスであるマネージドKubernetesを構築しています。

マネージドKubernetesとは

Cloud Infrastructure Container Engine for Kubernetesは、コンテナ化されたアプリケーションをクラウドに導入するために使用できる、開発者にとって使いやすいマネージドサービスです。開発チームがクラウドネイティブアプリケーションを確実に構築、導入、管理したい場合は、Container Engine for Kubernetesを使用してください。アプリケーションに必要なコンピューティング・リソースを指定すると、Container Engine for Kubernetesが既存のクラウド・インフラストラクチャのテナンシー内でそれらをプロビジョニングします。

マネージドKubernetesサービスを使用する必要はありませんが、Cloud Infrastructure Container Engine for Kubernetesは、Oracle Cloud Infrastructureの制御、セキュリティ、および予測可能なパフォーマンスを備えた高可用性クラスターを実行する簡単な方法です。Container Engine for Kubernetesは、ノードとしてベアメタルマシンと仮想マシンの両方をサポートし、CNCFにより適合と認定されます。また、すべてのKubernetesアップデートを取得し、追加の作業を行うことなくCNCFエコシステムとの互換性を維持します。

 

Cloud NativeとKubernetesは、AgroScoutがフレーマーをサポートする方法を変革します。

Kubernetesエコシステムとコミュニティ

オラクルは、成熟度レベルごとに編成された数十のソフトウェア開発プロジェクトをサポートするオープンソース・コミュニティであるCloud Native Computing Foundation(CNCF)のプラチナメンバーです。卒業プロジェクト(Kubernetes、プロメテウスEnvoyCoreDNSコンテナFluentdJaegerVitessTUF、およびHelm)はすべてがクラウドネイティブ開発の側面にとって非常に貴重であることが証明されています。

Kubernetesの導入方法

Kubernetesには、その周りに生まれたプロジェクトをサポートする大規模なエコシステムがあります。ランドスケープが非常に困難になる可能性があり、簡単な質問への答えを探すことは抜け出せない状況に陥ることにつながる可能性があります。しかし、このパスの最初の数ステップは単純で、そこから、ニーズに応じて高度な概念を探索できます。方法を学ぶ:

  • DockerとKubernetesを使用してローカル開発環境をセットアップ
  • Helidonを使用して単純なJavaマイクロサービスを作成
  • Dockerを使用してマイクロサービスをコンテナイメージに構築
  • マイクロサービスをローカルのKubernetesクラスターに導入します
  • クラスター上でマイクロサービスをスケールアップおよびスケールダウン

開発者向けのKubernetes

Kubernetesプロジェクトを始めたい考える開発者は、開発者ポータルを確認して、Kubernetesで最初のArmアプリを構築する方法や、クラウドシェルを使用してKubernetesクラスターを導入する方法を学ぶことができます。

 

OCI上のKubernetesの概要