Running Bitbucket Data Center on a Kubernetes cluster
Kubernetes とは?
Kubernetes (K8s) は、可用性の高い、迅速なデプロイとコンテナー オーケストレーションのフレームワークです。これを使用すると、デプロイを 1 か所で簡単に管理および自動化できます。コンテナーを多用するため、アプリはダウンタイムなしで最新の状態に保たれ、必要な依存関係への安全で信頼性の高いアクセスが常に確保されます。詳細は、Kubernetes の公式 Web サイトをご確認ください。
機能の仕組み
Kubernetes はコンテナー化されたアプリの管理を自動化します。コンテナーおよび基盤となるインフラストラクチャを管理し、スケーリング、ロールアウト、ロールバックなどを自動化する、一元的なコントロール プレーンを提供します。このプラットフォームは基盤となるインフラストラクチャを抽象化し、コンテナーとアプリを管理する統合的な方法を提供するため、開発者にとってはアプリの大規模な構築、デプロイ、実行が容易になります。
Kubernetes を使用する理由
Kubernetes は、次のような多くのメリットをもたらす強力なプラットフォームです。
アジリティの向上
簡素化された管理
デプロイの自動化
コンテナーの自動運用
セキュリティ強化
アップグレードとロールバックの加速
スケーラビリティと回復力の向上
さらに、シンプルな YAML ファイルを使用してインフラストラクチャをコードとして管理できるため、不必要なリソースの消費を減らすことができます。
アトラシアンが Kubernetes と連携する仕組み
ヘルム チャートで Kubernetes を管理する
製品のデプロイに役立つように、Data Center Helm チャートが作成されています。これは、お客様のビジネス固有のニーズに合わせて設定できるカスタマイズ可能なテンプレートです。独自のハードウェアで実行するか、クラウド プロバイダーのインフラストラクチャで実行するかを選択することもできます。これにより、最新のインフラストラクチャを使用しながら、データを管理し、コンプライアンス ニーズを満たすことができます。Helm チャートには独自のライフサイクルがあるため、アップデートには特定の機能が含まれて、自動的にアップグレードされます。
Helm チャートは、Atlassian Data Center 製品 (Jira、Confluence、Bitbucket、Bamboo、Crowd) を Kubernetes クラスターにデプロイするために必要な基本の構成要素を提供し、運用ツールや自動化ツールと統合する機能を利用できるようになります。Helm チャートの詳細をご確認ください。
Docker イメージを使用して俊敏性を向上させる
開発をスピードアップするために、Data Center の強化された Docker コンテナー イメージを利用することができます。Docker コンテナー イメージを Data Center デプロイの一部として使用すると、ワークフローを合理化および自動化して時間を大幅に短縮できます。
必要な構成を定義したら、デプロイ ライフサイクルの各段階でコマンド ラインから環境の正確なレプリカを即座にデプロイできます。これにより、重要性の高い作業を継続的に前進させるために必要な俊敏性と、時間の経過とともに進化する組織の開発戦略に柔軟に対応できます。
Kubernetes のデプロイ アーキテクチャを学習する
Kubernetes クラスタは、Amazon EKS、Azure Kubernetes Service、Google Kubernetes Engine、またはカスタム オンプレミス システムなどの管理対象環境です。独自のハードウェアで Data Center インストールを行う場合と同じように、ユーザー管理、中央ログ ストレージ、バックアップ戦略、監視をセットアップすることを強くお勧めします。
Helm チャートを使用して Data Center アプリを Kubernetes クラスターにデプロイする場合のアーキテクチャ概要を下記に示します。
製品のデプロイには、次の Kubernetes エンティティが必要です。
Ingress と Ingress コントローラー (ing) — Ingress はトラフィック ルーティングのルールを定義して、リクエストが送信される Kubernetes クラスター内の場所を示します。Ingress コントローラーは、これらのルールの履行を担当するコンポーネントです。
Service (svc) — Pod 一式に単一のアドレスを提供して、アプリ ノード間のロード バランシングを有効にします。
Pod — 1 つ以上のコンテナーのグループです。共有ストレージとネットワーク リソースに加えて、コンテナーの実行方法の仕様を備えています。Pod は、Kubernetes で作成して管理できる、デプロイ可能な最小のコンピューティング単位です。
StatefulSets (sts) — 永続状態を必要とする Pod 一式のデプロイと拡張を管理します。
PersistentVolume (pv) — 永続データを格納するホスト マシン上の「物理」ボリュームです。
PersistentVolumeClaim (pvc)—1 つの pod (場合によっては複数の pod) で使用される永続ボリューム (PV) を保有します。
StorageClass (sc) — 管理者が提供するストレージの「クラス」を記述する方法を提供します。
Kubernetes クラスターに Data Center アプリをインストールする
Helm チャートを使用して Data Center アプリケーションを Kubernetes クラスターにインストールして操作するには、次の手順に従います。
前提条件のガイドを参考に、要件に従って環境を設定します。
インストール ガイドに記載されているインストール ステップを実行します。
操作ガイドを使用して、アプリケーションのアップグレード、クラスターの拡張、リソースの更新方法を学びます。