このトピックでは、アプリケーションコンテナーのセキュリティに関するよくある質問 (FAQ) に回答します。
コンテナー間にネットワーク接続がないのはなぜですか?
ACK クラスターでセキュリティグループが原因で発生するネットワーク接続の問題を解決するには、次の手順に従います。
[承認オブジェクト] が [Pod ネットワーク CIDR] に設定され、[プロトコルタイプ] が [すべて] に設定されているインバウンドルールが削除されました。
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、対象のクラスターを見つけてその名前をクリックします。 左側のナビゲーションウィンドウで、クラスター情報 をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックします。 [コントロールプレーンセキュリティグループ] の横にあるリンクをクリックして、ECS コンソールのセキュリティグループページに移動します。
[セキュリティグループ] ページの [インバウンド] タブで、[ルールの追加] をクリックします。 表示されるダイアログボックスで、ルールを設定し、[OK] をクリックします。
[ポリシー]: 許可。
[優先度]: デフォルト。
[プロトコル]: [すべてのトラフィック] を選択します。
[ソース]: Pod CIDR ブロックを入力します。 Pod CIDR ブロック (Pod ネットワーク CIDR) は、Container Service コンソールのクラスター詳細ページの [ネットワーク] セクションから取得できます。
[アクセスソース] が Pod ネットワーク CIDR で、[プロトコル] が [すべてのトラフィック] であるインバウンドルールが追加されました。
新しい ECS インスタンスのセキュリティグループがクラスターのセキュリティグループと異なります。
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、対象のクラスターを見つけてその名前をクリックします。 左側のナビゲーションウィンドウで、クラスター情報 をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックし、[セキュリティグループ] フィールドからセキュリティグループ ID を記録します。
前の手順で記録したクラスターのセキュリティグループにターゲット ECS インスタンスを追加します。 ECS インスタンスをセキュリティグループに追加する方法の詳細については、「インスタンスのセキュリティグループへの追加、インスタンスの削除、またはインスタンスのセキュリティグループの切り替え」をご参照ください。
Kubernetes クラスターのセキュリティグループを指定するにはどうすればよいですか?
クラスター作成時にセキュリティグループを指定する
Kubernetes クラスターを作成すると、ACK はデフォルトのセキュリティグループを自動的に作成します。 必要に応じて、このセキュリティグループのルールを変更できます。 詳細については、「クラスターセキュリティグループの設定」をご参照ください。
既存のクラスターで関連付けられているセキュリティグループを変更する
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、対象のクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[クラスター情報] を選択します。
[クラスター情報] ページで、[基本情報] タブをクリックします。 [ネットワーク] セクションで、[コントロールプレーンセキュリティグループ] の横にある [編集] をクリックします。
表示されるダイアログボックスで、使用するセキュリティグループを選択し、[OK] をクリックします。
クラスターの作成後にクラスター監査機能を無効またはデプロイできますか?
はい。 詳細については、「クラスター API サーバー監査機能の使用」をご参照ください。
ACK 専用クラスターの証明書の有効期間を変更し、コンポーネント証明書を置き換えるにはどうすればよいですか?
クラスター証明書の有効期限が切れる約 2 か月前に、内部メッセージと通知が届きます。 通知を受け取ったら、コンソールの [クラスター] ページに移動し、ボタンをクリックして証明書を更新します。 詳細については、「ACK 専用クラスターの有効期限が切れる証明書を更新する」をご参照ください。
Kubernetes クラスター証明書の有効期限が切れている場合は、「ACK 専用クラスターの有効期限切れの証明書を更新する」をご参照ください。
Pod を作成できず、「no providers available to validate pod request」というエラーが表示されるのはなぜですか?
カスタム Pod セキュリティポリシー (PSP) を設定していない場合、このエラーはデフォルトの PSP を削除したために発生します。 この問題を解決するには、デフォルトの PSP ルールを復元します。 詳細については、「[非推奨] Pod セキュリティポリシーの使用」をご参照ください。
カスタム PSP を設定するには、「セキュリティポリシー管理を有効にする」をご参照ください。
新しい名前空間で Secret を使用できないのはなぜですか?
Secret は名前空間スコープです。 新しい名前空間に Secret を作成する必要があります。
default-token をマウントできないのはなぜですか?
default-token はマウントできません。 エラーメッセージは次のとおりです:
Normal Scheduled 13m default-scheduler Successfully assigned dev/alibaba-demo-67fcdbfb8-zklnp to cn-hangzhou.10.7.3.16 Warning FailedMount 13m (x2 over 13m) kubelet, cn-hangzhou.10.7.3.16 MountVolume.SetUp failed for volume 'default-token-8twx9' : mount failed: exit status 1 Mounting command: systemd-run Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/62d39b35-9a4d-11ea-9870-c24d56a0e904/volumes/kubernetes.io~secret/default-token-8twx9 --scope -- mount -t tmpfs tmpfs /var/lib/kubelet/pods/62d39b35-9a4d-11ea-9870-c24d56a0e904/volumes/kubernetes.io~secret/default-token-8twx9 Output: Failed to start transient scope unit: Argument list too long Warning FailedCreatePodContainer 3m40s (x49 over 13m) kubelet, cn-hangzhou.10.7.3.16 unable to ensure pod container exists: failed to create container for [kubepods burstable pod62d39b35-9a4d-11ea-9870-c24d56a0e904] : Argument list too longこの問題は、systemd のバージョンが古すぎるために発生します。
監査ログをクエリするにはどうすればよいですか?
RBAC 関連の変更の監査ログをクエリする
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、対象のクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[クラスター情報] を選択します。
[クラスター情報] ページで、[基本情報] タブをクリックします。 Log Service プロジェクト の横にあるリンクをクリックして、Simple Log Service (SLS) コンソールに移動します。
ページで、
audit-<cluster_id>Logstore を選択し、右上隅にある [クエリ/分析] をクリックします。ページ上部のドロップダウンリストから、[過去 15 分] などの時間範囲を選択します。
説明時間範囲は、システムが期待どおりに動作していたときから問題が発生したときまでの期間をカバーする必要があります。 たとえば、3 日、7 日、または 15 日を選択できます。
[クエリ/分析] テキストボックスに次の SQL クエリを入力し、右上隅にある [クエリ/分析] をクリックします。
requestURI: "rbac.authorization.k8s.io" not (verb: get or verb: watch)
アイコンをクリックし、[ログのダウンロード] を選択します。 [ログのダウンロード] ダイアログボックスで、ダウンロード設定を行い、[OK] をクリックします。
ConfigMap 関連の変更の監査ログをクエリする
[クエリ/分析] テキストボックスに次の SQL クエリを入力し、[クエリ/分析] をクリックします。 その他の操作の詳細については、「監査ログをクエリするにはどうすればよいですか?」をご参照ください。
requestURI: "configmaps" and <configmap_name> not (verb: get or verb: watch or verb: list) クエリを実行するときは、<configmap_name> を実際の ConfigMap 名に置き換えてください。
Deployment での Pod スケーリングの監査ログをクエリする
[クエリ/分析] テキストボックスに次の SQL クエリを入力し、[クエリ/分析] をクリックします。 その他の操作の詳細については、「監査ログをクエリするにはどうすればよいですか?」をご参照ください。
requestURI: deployments and (verb: update or verb: patch) and replicas and deployments and <deployment_name> not deployment-controllerクエリを実行するときは、<deployment_name> を実際の Deployment 名に置き換えてください。