IBM Cloud Private with IBM Cloud Kubernetes Service のインストール

テクニカル・プレビューとして、IBM® Cloud Private with IBM Cloud Kubernetes Service をインストールできます。

Important: This content is a technical preview, and should not be relied on in a production environment.

概要

IBM Cloud Kubernetes Service は、管理対象の Kubernetes サービスです。 IBM Multicloud Manager を使用して、IBM Certified Containers を IBM Cloud Kubernetes Service クラスターにリモートでデプロイできます。 一部の IBM Certified Containers は、特定の IBM Cloud Private サービス (IAM やロギング) に依存しているため、IBM Cloud Private を IBM Cloud Kubernetes Service にデプロイして、これらのサービス依存関係を提供できます。

IBM Cloud Kubernetes Service は、IBM Watson や IBM Blockchain などの拡張サービスにバインドできるアプリケーションを迅速にデリバリーするための管理対象コンテナー・サービスです。

認定 Kubernetes プロバイダーとして、IBM Cloud Kubernetes Service は以下の利点をもたらします。

また、Kubernetes サービスにも、容易なクラスター管理、コンテナーのセキュリティー・ポリシーと分離ポリシー、独自のクラスターを設計できる機能、およびデプロイメントにおける整合性を確保するための統合された運用ツールを中心とした拡張機能があります。

インストール

インストール

  1. ブート・ノードに対して Docker をインストールします。 ブート・ノードは、クラスターのインストールに使用されるノードです。 詳しくは、ブート・ノードを参照してください。

    IBM Cloud Private でサポートされるバージョンの Docker がブート・ノードにインストールされる必要があります。 サポートされる Docker バージョンを参照してください。 Docker をインストールするには、Docker の手動インストールを参照してください。

  2. 最低でも 3 つのワーカー・ノードを持つ標準の IBM Cloud Kubernetes Service クラスターを作成します。 実稼働環境の場合は、5 つのワーカー・ノードが推奨されます。 すべてのワーカー・ノードで、マシン・タイプの値として少なくとも b2c.8x32、および IBM Cloud Private に必要な Kubernetes のバージョンに一致する Kubernetes バージョンが必要です。 詳しくは、コンポーネントおよび クラスターとワーカー・ノードのセットアップに関する IBM Cloud Kubernetes Service の資料を参照してください。

  3. IBM Cloud Private インストーラーの iks.config.yaml の値を設定します。

    1. クラスターの詳細およびクラスターのワーカーを取得します。 クラスター名、Ingress サブドメイン値、およびワーカーのパブリック IP アドレスとプライベート IP アドレスをメモしておいてください。
    2. IBM Cloud Kubernetes Service クラスターの値を IBM Cloud Private iks.config.yaml ファイル内に設定します。

      :

      • cluster_name は、IBM Cloud Kubernetes Service クラスター名に設定します。
      • cluster_nodesmastermanagement、および proxy の値は、3 つある IBM Cloud Kubernetes Service クラスター・ワーカーのプライベート IP アドレス値に設定します。
      • storage_classibmc-file-gold に設定します。
      • enable_impersonationtrue に設定します。
      • iks console host 値は、マスター・ノードのパブリック IP アドレスに設定します。
      • iks.router.cluster_host 値は、IBM Cloud Kubernetes Service クラスター Ingress サブドメイン値に設定します。
      • iks.router.proxy_host 値は、プロキシー・ワーカー・ノードのパブリック IP アドレスに設定します。

      以下のコードは、サンプルの iks.config.yaml ファイルです。

      cluster_name: iks-cluster-name
      cluster_nodes:
      master:
        - 10.167.6.160
      management:
        - 10.167.6.166
      proxy:
        - 10.167.6.179
      
      storage_class: "ibmc-file-gold"
      enable_impersonation: true
      
      # IKS host and port assignments:
      #   console host is the master node's public IP address
      #   console port is used to access the ICP console
      #   router cluster_host is the IKS cluster Ingress Subdomain
      #   router proxy_host is the proxy node's public IP address
      #   router kubernetes_ingress_port is the port to used to communicate with Kubernetes
      iks:
      console:
        host: x.x.x.x
        port: 8443
      router:
        cluster_host: iks.cluster.ingress.subdomain
        proxy_host: y.y.y.y
        kubernetes_ingress_port: 8001
      
      default_admin_password: admin
      password_rules:
      - '.*'
      
      kubernetes_cluster_type: iks
      
  4. 必要な IBM Cloud Kubernetes Service クラスター構成を IBM Cloud Private インストーラーにコピーします。

    1. クラスター構成を IBM Cloud Kubernetes Service クラスターから取得し、KUBECONFIG 環境変数を設定します。 詳しくは、(IBM Cloud Kubernetes Service 資料) ステップ 6. 作成したクラスターを、このセッションのコンテキストとして設定を参照してください。
    2. KUBECONFIG 環境変数が設定されていることを確認してから、IBM Cloud Private インストーラー・フォルダーの端末ウィンドウで以下のコマンドを実行して、必要なクラスター構成値をインストーラーのクラスター・ディレクトリーにコピーします。
      cp  ${KUBECONFIG%/*}/*.yml cluster/kubeconfig
      cp  ${KUBECONFIG%/*}/*.pem cluster/
      
  5. IBM Cloud Private インストーラーを実行して、IBM Cloud Private を IBM Cloud Kubernetes Service にインストールします。

    1. iks.config.yaml 内の値を IBM Cloud Private インストーラーの config.yaml ファイルの終わりに追加します。

    2. 端末ウィンドウで、install-with-iks Playbook を使用するように指定して、IBM Cloud Private インストーラーを実行します。

      以下に例を示します。

      docker run -t --net=host -e LICENSE=accept -v $(pwd):/installer/cluster ibmcom/icp-inception:3.2.0 install-with-iks -v | tee install.log
      

      : IBM Cloud Private inception Docker イメージは異なります。

アンインストール

IBM Cloud Private with IBM Cloud Kubernetes Service をアンインストールするには、以下のコマンドを実行します。

docker run --net=host -t -e LICENSE=accept \
-v /path/to/cluster:/installer/cluster ibmcom/icp-inception:3.2.0 uninstall-with-iks –v

セキュリティー

IBM Cloud Kubernetes Service の標準装備のセキュリティー・フィーチャーをリスク分析とセキュリティー保護に使用できます。 これらのフィーチャーは、Kubernetes クラスター・インフラストラクチャーとネットワーク通信の保護、コンピュート・リソースの分離、およびインフラストラクチャー・コンポーネントとコンテナー・デプロイメントにおけるセキュリティー・コンプライアンスの確保に役立ちます。 詳しくは、IBM Cloud Kubernetes Service のセキュリティー新しいタブで開くおよび クラスターでの機密情報の保護新しいタブで開くを参照してください。

認証と許可

認証は、標準の IBM Cloud Private インストール済み環境と同じです。 management consoleおよび CLI (cloudctl) でのログイン・エクスペリエンスは同じです。 LDAP は同じであり、ユーザーとユーザー・グループは IBM Cloud Private チームにインポートされます。 ユーザーには、インポート時に役割が割り当てられ、ユーザーが、management consoleおよび cloudctl にログインすると、accesstokenid_token が生成されます。

許可は、追加したチームおよびリソースに基づいています。 構成時に、名前空間リソースをチームに追加できます。 許可は、名前空間で操作を行うユーザーの役割に基づいて行われます。

デフォルトのサービス・アカウント・トークンの置き換え

IBM Cloud Kubernetes Service を使用した IBM Cloud Private のインストール時に icp-system 名前空間が作成されると、デフォルトのサービス・アカウントとトークン秘密が作成されます。

サービス・アカウント・トークンの有効期限が切れることはありませんが、他のユーザーの名前を使用することができます。 オペレーターとして、デフォルトのアカウント・サービス・トークン秘密を削除することで、秘密を再利用できるのです。

新しい名前空間を作成する必要があります。 新しい名前空間を作成すると、Kubernetes により自動的に別の秘密が作成されます。

デフォルトのサービス・アカウントを置き換えるには、以下のステップを実行します。

  1. 以下のコマンドを実行して、icp-system のデフォルトのサービス・アカウントを削除します。

    kubectl delete sa default -n icp-system
    
  2. 以下のコマンドを実行して、新しいデフォルト・サービス・アカウントが作成されたことを確認します。

    kubectl get sa -n icp-system
    
  3. 以下のコマンドを実行して、icp-management-ingress コントローラーを再始動し、名前空間内のポッドを表示します。

    kubectl get pods -n kube-system | grep
    

    出力は、以下の出力のようになります。

    icp-management-ingress-lgqft                          1/1     Running     1          15d
    
  4. 以下のコマンドを実行して、 kube-system 名前空間のポッドを削除します。

    kubectl delete pods  icp-management-ingress-lgqft  -n kube-system`
    

デフォルトのサービス・アカウントとトークン秘密は置き換えられます。

統合の制限と相違点

IBM Cloud Private with IBM Cloud Kubernetes Service には、以下のような制限と相違点があります。

Docker

IBM Cloud Kubernetes Service は、コンテナー・ランタイムとして containerd を使用します。 IBM Cloud Private は Docker を使用しますが、テクノロジー・プレビューとして containerd をサポートしています。

サービス

IBM Cloud Private with Kubernetes Service (IKS) でサポートされる IBM Cloud Private 管理サービスおよびそれぞれの依存関係の表を以下に示します。

管理サービス 依存関係
image-manager
cert-manager
mongodb
monitoring-crd
auth-idp mongodb
auth-apikeys mongodb
auth-pap mongodb
auth-pdp mongodbauth-idpauth-papauth-apikeys
catalog-ui auth-idpplatform-apihelm-apihelm-repomulticluster-hub
custom-metrics-adapter モニタリング
helm-api mongodbplatform-apiicp-management-ingresshelm-repomgmt-repo
helm-repo mongodb
icp-management-ingress
ロギング IAM
metering mongodb、IAM
metrics-server
nginx-ingress
mgmt-repo mongodb
モニタリング IAM
platform-api IAM
platform-ui auth-idpplatform-apicatalog-uiimage-manager
secret-watcher
security-onboarding IAM
web-terminal platform-api、IAM

注: ID およびアクセス管理 (IAM) には、auth-idpauth-papauth-pdpauth-apikeys、および secret-watcher サービスが含まれています。

次のサービスは、IBM Cloud Private with IKS ではサポートされません: 脆弱性アドバイザー、ミューテーション・アドバイザー、およびローカル・イメージ・レジストリー。 管理サービスの依存関係について詳しくは、IBM Cloud Private 管理サービスの有効化と無効化を参照してください。

: 必要な場合、IBM Cloud Container Registry を使用できます。 詳しくは、IBM CloudContainer Registry 入門チュートリアル新しいタブで開くを参照してください。

IBM Cloud Private ワーカー・ノードの拡大と縮小

ワーカー・ノードおよびゾーンの追加および削除については、IBM Public Cloud Kubernetes Service の説明に従ってください。 management consoleまたは CLI を使用して、ワーカー・ノードを手動で追加または削除できます。 ワーカー・ノードは、単一または複数の既存のゾーンに追加したり、そこから削除したりできます。 既存のワーカー・プールをサイズ変更することも、新しいワーカー・プールを作成することもできます。

: 必要な IBM Cloud Kubernetes Service の権限を保持している必要があります。

詳しくは、手動でワーカー・ノードを追加する方法に関する IBM Cloud Kubernetes Service の資料新しいタブで開くを参照してください。

ストレージ

IBM Public Cloud Kubernetes Service ストレージ・オプションがサポートされています。ファイル・ストレージは、常に IBM Cloud Private クラスターで使用可能です。 Helm チャートを使用して、オプションでブロック・ストレージとオブジェクト・ストレージ、またはその両方をデプロイできます。

詳細については、以下の IBM Cloud Kubernetes Service トピックを参照してください。

Ingress

デフォルトで、IBM Cloud Private クラスターは、IBM Public Cloud Kubernetes Service Ingress コントローラー (拡張ロード・バランサー) を取得します。 ワークロードの拡張ロード・バランサーを IBM Cloud Private NGINX Ingress コントローラーに置き換える場合は、自分の Ingress コントローラーを持ち込む方法に関する IBM Cloud Kubernetes Service 資料新しいタブで開くの手順に従ってください。

クラスター・ノード

IBM Cloud Private ノードは、IBM Public Cloud インフラストラクチャー内で IBM Cloud Kubernetes Service クラスター・ワーカー・ノードとしてセットアップされます。 追加のセキュリティーのために、いくつかの相違点がある可能性があります。 例えば、ssh はすべてのノードで使用不可になります。 詳しくは、ワーカー・ノードに関する IBM Cloud Kubernetes Service 資料新しいタブで開くを参照してください。