Kubernetes クラスタのセキュリティメカニズムの詳細な説明

Kubernetes クラスタのセキュリティメカニズムの詳細な説明

[[320833]]

この記事では、Kubernetes のセキュリティ メカニズムを中心に、一連の概念、技術的なポイント、メカニズムを使用してクラスター アクセスのセキュリティを確保する方法について説明します。関連するキーワードは、api-server、認証、承認、アドミッション コントロール、RBAC、サービス アカウント、クライアント証明書認証、Kubernetes ユーザー、トークン認証などです。関連する技術的なポイントは些細で数多くありますが、メカニズム全体を理解した後はそれらを簡単につなげることができるため、Kubernetes クラスターのセキュリティ メカニズムを十分に理解できます。

Kubernetes API サーバーの安全なアクセス メカニズム

kube-apiserver は、Kubernetes クラスター全体と REST API サービスへの入り口です。提供される API は、さまざまな Kubernetes リソース オブジェクト (Pod、RC、Service など) の追加、削除、変更、クエリを実装します。 API サーバーは、クラスター内のさまざまな機能モジュール間の相互作用と通信のハブでもあり、クラスター全体のバスとデータ センターでもあります。

これは API サーバーの重要性を示しています。クラスターと対話するには、kubectl、さまざまな言語で提供されるクライアント ライブラリを使用するか、REST リクエストを送信します。実際、基盤となるレイヤーは、HTTP REST リクエストの形式で API サーバーと対話します。では、アクセスのセキュリティ メカニズムはどのように保証されるのでしょうか?いかなるリクエストも受け入れて対応することは不可能です。 API サーバーは、独自の柔軟なセキュリティ メカニズムを提供します。各リクエストが API サーバーに到達すると、認証 -> 承認 -> アドミッション コントロールの 3 つのセキュリティ レベルを通過します。以下の 3 つのセキュリティ レベルを通過したリクエストにのみ応答します。

認証

認証段階の作業は、ユーザーの ID を識別することです。 HTTP ベース、HTTP トークン、TLS、サービス アカウント、OpenID Connect など、サポートされている認証方法は多数あります。API サーバーの起動時に、複数の認証方法を同時に指定することができ、これらの方法はクライアント要求を認証するために 1 つずつ使用されます。いずれかの認証方法が渡される限り、API サーバーは認証が成功したとみなします。 Kubernetes の上位バージョンのデフォルトの認証方法は TLS です。 TLS 認証スキームでは、各ユーザーは独自の X.509 クライアント証明書を持ち、API サーバーは構成された証明機関 (CA) を通じてクライアント証明書を検証します。

承認

承認段階では、リクエストに対応する権限があるかどうかが判断されます。認証方法には、AlwaysDeny、AlwaysAllow、ABAC、RBAC、Node など、多数あります。API サーバーの起動時に複数の認証モードが同時に有効になっている場合、Kubernetes はすべてのモジュールをチェックします。いずれかが承認された場合、リクエストは承認されます。すべてのモジュールが拒否された場合、要求は拒否されます (HTTP ステータス コード 403)。 Kubernetes の上位バージョンで有効になっているデフォルトの認証方法は、RBAC と Node です。

入場管理

アドミッション コントロールは、操作がクラスターの要件を満たしているかどうかを判断します。アドミッション コントロールには、「アドミッション コントローラー」のリストが装備されています。 API サーバーに送信される各リクエストは、各アドミッション コントローラーのチェックに合格する必要があります。チェックが失敗した場合、API サーバーは呼び出し要求を拒否します。これは、Web プログラミングのインターセプターに少し似ています。具体的な詳細はここでは説明しません。詳細については、「Admission Controllers の使用」を参照してください。

Kubernetes 認証方法: クライアント証明書 (TLS)

前のセクションで見たように、Kubernetes を認証する方法は多数あります。ここでは、HTTPS 双方向認証とも呼ばれるクライアント証明書 (TLS) 認証方法について簡単に説明します。通常、https ウェブサイトにアクセスする場合、認証は一方向で行われます。サーバーの ID を検証するのはクライアントのみであり、サーバーはクライアントの ID を気にしません。 HTTPS ハンドシェイク プロセス (一方向認証) を見てみましょう。

  1. クライアントはサーバーに Client Hello メッセージを送信します。
  2. サーバーは Server Hello メッセージと独自の証明書をクライアントに返信します。
  3. クライアントはサーバーの証明書の正当性をチェックします。証明書のチェックに合格すると、両者から送信されたメッセージに基づいてプレマスター キーが生成され、サーバーの証明書内の公開キーを使用してプレマスター キーが暗号化され、サーバーに送信されます。
  4. サーバーは独自の秘密鍵を使用してプレマスター キーを復号化し、両者がネゴシエートしたアルゴリズムと交換されたメッセージを通じてセッション キーを生成し (この対称鍵は両者間の後続のデータ暗号化に使用され、クライアントも同じ方法で同じ鍵を生成できます)、ハンドシェイクの終了を示すメッセージをクライアントに返信します。後続のメッセージはネゴシエートされた対称キーで暗号化されます。

HTTPS 双方向認証のプロセスは、上記のステップ 3 で同時に独自の証明書を使用してサーバーに応答し、次にサーバーがステップ 4 で受信したクライアント証明書の正当性を検証することで、クライアントの検証の目的を達成します。これは、関連する CA 証明書が自己署名されていることを除いて、Kubernetes で使用されるメカニズムです。

Kubernetes の認可方式 RBAC の紹介

ロールベースのアクセス制御 (RBAC) は Kubernetes によって提供される認証戦略であり、新しいクラスターでもデフォルトで有効になっています。 RBAC はロールをロール バインディングから分離します。ロールとは、クラスター リソースを操作するための定義済みの権限のセットを指します。一方、ロール バインディングは、ロールをユーザー、グループ、またはサービス アカウント エンティティにバインドし、それによってこれらのエンティティに権限を付与します。 RBAC 認証方法は非常に柔軟であることがわかります。エンティティに権限を付与するには、対応するロールをバインドするだけです。 RBAC メカニズムの場合、Kubernetes は Role、ClusterRole、RoleBinding、ClusterRoleBinding の 4 つの API リソースを提供します。

ロール: 単一の名前空間内のリソースへのアクセスを許可するためにのみ使用できるため、定義時に名前空間を指定する必要があります。次の例は、Pod への読み取りアクセスを許可するために使用される、デフォルトの名前空間内の Role オブジェクトの定義を示しています。

  1. 種類: 役割
  2.  
  3. apiバージョン: rbac。認証.k8s.io/v1beta1
  4.  
  5. メタデータ:
  6.  
  7. 名前空間:デフォルト 
  8.  
  9. 名前: ポッドリーダー
  10.  
  11. ルール:
  12.  
  13. - apiGroups: [ "" ] # 空の文字列""コアAPIグループの使用を示します 
  14.  
  15. リソース: [ "ポッド" ]
  16.  
  17. 動詞: [ 「取得する」 「見る」 「一覧表示する」 ]

ClusterRole: クラスター全体のリソースにアクセスできるクラスター全体のロール。次の ClusterRole 定義の例は、特定の名前空間またはすべての名前空間 (バインド方法によって異なります) のシークレットへの読み取りアクセス権をユーザーに付与するために使用できます。

  1. 種類: ClusterRole
  2.  
  3. apiバージョン: rbac。認証.k8s.io/v1beta1
  4.  
  5. メタデータ:
  6.  
  7. # ClusterRoleはクラスタ全体のオブジェクトなので、ここで「namespace」フィールドを定義する必要はありません。
  8.  
  9. 名前: シークレットリーダー
  10.  
  11. ルール:
  12.  
  13. -apiグループ: [ "" ]
  14.  
  15. リソース: [ "秘密" ]
  16.  
  17. 動詞: [ 「取得する」 「見る」 「一覧表示する」 ]

RoleBinding: ロールをユーザー エンティティにバインドし、名前空間内でユーザー エンティティにアクセス許可を付与します。また、ClusterRole をユーザー エンティティにバインドすることもサポートします。次の例で定義されている RoleBinding オブジェクトは、デフォルトの名前空間でユーザー jane に pod-reader ロールを付与します。この承認により、ユーザー jane はデフォルトの名前空間から Pod を読み取ることができます。

  1. # 次のロールバインディング定義により、ユーザー「jane」「default」名前空間からPod を読み取ることができます
  2.  
  3. 種類: RoleBinding
  4.  
  5. apiバージョン: rbac。認証.k8s.io/v1beta1
  6.  
  7. メタデータ:
  8.  
  9. 名前:読み取りポッド
  10.  
  11. 名前空間:デフォルト 
  12.  
  13. 科目:
  14.  
  15. - 種類:ユーザー 
  16.  
  17. 名前: ジェーン
  18.  
  19. apiGroup : rbac.authorization.k8s.io
  20.  
  21. ロールリファレンス:
  22.  
  23. 種類: 役割
  24.  
  25. 名前: ポッドリーダー
  26.  
  27. apiGroup : rbac.authorization.k8s.io

ClusterRoleBinding: ClusterRole をユーザー エンティティにバインドし、ユーザー エンティティにクラスター全体の権限を付与します。次の例で定義されている ClusterRoleBinding により、ユーザー グループ マネージャー内のすべてのユーザーがクラスター内の任意の名前空間のシークレットを読み取ることができるようになります。

  1. # 次の `ClusterRoleBinding` オブジェクトは、ユーザー グループ"manager"内のすべてのユーザーがクラスター内の任意の名前空間のシークレットを読み取ることを許可します。
  2.  
  3. 種類: ClusterRoleBinding
  4.  
  5. apiバージョン: rbac。認証.k8s.io/v1beta1
  6.  
  7. メタデータ:
  8.  
  9. 名前:読み取り-secrets-グローバル 
  10.  
  11. 科目:
  12.  
  13. - 種類:グループ 
  14.  
  15. 名前: マネージャー
  16.  
  17. apiGroup : rbac.authorization.k8s.io
  18.  
  19. ロールリファレンス:
  20.  
  21. 種類: ClusterRole
  22.  
  23. 名前: シークレットリーダー
  24.  
  25. apiGroup : rbac.authorization.k8s.io

RBAC の詳細な説明については、こちらをご覧ください: https://jimmysong.io/kubernete ... .html

Kubernetes の 2 つのアカウント タイプの概要

Kubernetes には、サービス アカウントと通常のユーザーの 2 種類のユーザーが存在します。 ServiceAccount は Kubernetes によって管理されますが、ユーザー アカウントは外部で管理されます。 Kubernetes はユーザー リストを保存しません。つまり、ユーザーの追加、削除、追加、およびクエリはすべてクラスターの外部で実行されます。 Kubernetes 自体は一般ユーザー向けの管理機能を提供しません。

2 つのアカウントの違い:

  • ServiceAccount は Kubernetes の内部リソースですが、通常のユーザーは Kubernetes の外部に存在します。
  • ServiceAccount はグローバルではなく特定の名前空間に属しますが、通常のユーザーはグローバルであり、特定の名前空間に固有ではありません。
  • ServiceAccount は通常、クラスター内の Pod プロセスが api-server と対話するために使用されますが、通常のユーザーは通常、kubectl または REST リクエストに使用されます。

ServiceAccount の動作

ServiceAccount は Pod が api-server にアクセスするために使用でき、対応する Token は kubectl がクラスターにアクセスしたり kubernetes ダッシュボードにログインしたりするために使用できます。

一般ユーザー向けの実用的なアプリケーション

  • X509 クライアント証明書。 API サーバーに --client-ca-file=xxx オプションを指定すると、クライアント証明書の検証が有効になります。 API サーバーはこの ca ファイルを使用して、API リクエストに含まれるクライアント証明書の有効性を検証します。検証が成功すると、API サーバーはクライアント証明書のサブジェクトの CN 属性をこのリクエストのユーザー名として使用します。後ほど、クライアント証明書方式のユーザー向けに特別な実践的な紹介があります。
  • 静的トークン ファイル。--token-auth-file=SOMEFILE オプションを指定して、ベアラー トークン認証を有効にします。参照されるファイルは、トークン、ユーザー名、およびユーザー ID を含む csv ファイルです。リクエスト時に、Authorization: Bearer xxx ヘッダー情報を指定して、ベアラー トークンの認証に合格します。
  • 静的パスワード ファイル。 --basic-auth-file=SOMEFILE オプションを指定してパスワード認証を有効にします。参照されるファイルは、パスワード、ユーザー名、およびユーザー ID を含む csv ファイルです。リクエスト時に、Authorization ヘッダーを Basic BASE64ENCODED(USER:PASSWORD) に設定する必要があります。

練習: クライアント証明書認証に基づいてクラスターにアクセスするための新しい Kubeconfig を作成する

Kubeconfig ファイルの詳細な説明

Kubernetes クラスターをインストールすると、$HOME/.kube/config ファイルが生成されることがわかります。このファイルは、kubectl コマンドライン ツールがクラスターにアクセスするために使用する認証ファイルであり、Kubeconfig ファイルとも呼ばれます。この Kubeconfig ファイルには多くの重要な情報が含まれています。ファイル構造は以下のとおりです。各フィールドの意味は次のとおりです。

  1. APIバージョン: v1
  2.  
  3. クラスター:
  4.  
  5. - クラスター:
  6.  
  7. 証明書機関データ: ...
  8.  
  9. サーバー: https://192.168.26.10:6443
  10.  
  11. 名前: Kubernetes
  12.  
  13. コンテキスト:
  14.  
  15. - コンテクスト:
  16.  
  17. クラスター: Kubernetes
  18.  
  19. ユーザー: kubernetes-admin
  20.  
  21. 名前: kubernetes-admin@kubernetes
  22.  
  23. 現在のコンテキスト: kubernetes-admin@kubernetes
  24.  
  25. 種類: 設定
  26.  
  27. 設定: {}
  28.  
  29. ユーザー:
  30.  
  31. -名前: kubernetes-admin
  32.  
  33. ユーザー:
  34.  
  35. クライアント証明書データ: ...
  36.  
  37. クライアント-キー -データ: ...

ファイルはクラスター、コンテキスト、ユーザーの 3 つの部分に分かれていることがわかります。

クラスターセクション

api-server アドレス、certificate-authority-data: サーバー側証明書認証用の自己署名 CA ルート証明書 (マスター ノードの /etc/kubernetes/pki/ca.crt ファイルの内容) などのクラスター情報を定義します。

コンテキストセクション

クラスター情報とユーザーのバインド。 kubectl はコンテキストによって提供される情報を通じてクラスターに接続します。

ユーザーセクション

ユーザータイプは複数あります。デフォルトは、クライアント証明書 (x.509 標準証明書) と証明書の秘密キーです。 ServiceAccount トークンにすることもできます。ここでは前者に焦点を当てます。

  • client-certificate-data: base64 で暗号化されたクライアント証明書。
  • client-key-data: base64 で暗号化された証明書の秘密キー。

リクエストが api-server の認証レベルを通過すると、api-server は受信したクライアント証明書からユーザー情報を取得し、それを後続の承認レベルで使用します。ここでのユーザーはサービス アカウントではなく、クライアント証明書のサブジェクト情報です。O はユーザー グループを表し、CN はユーザー名を表します。これを証明するには、openssl を使用して証明書からこの情報を手動で取得します。

まず、Kubeconfig 証明書のユーザー部分の client-certificate-data フィールドを base64 で復号化し、ファイルを client.crt として保存します。次に、openssl を使用して証明書情報を解析し、S​​ubject 情報を確認します。

  1. openssl x509- in client.crt-text

クラスターのデフォルトの Kubeconfig クライアント証明書を解析して取得されるサブジェクト情報は次のとおりです。

  1. 件名: O=system:masters、CN=kubernetes-admin

証明書にバインドされているユーザー グループは system:masters であり、ユーザー名は kubernetes-admin であることがわかります。デフォルトでは、クラスター内に cluster-admin という ClusterRoleBinding があり、cluster-admin という名前の ClusterRole をユーザー グループ system:masters にバインドします。 cluster-admin という名前の ClusterRole には、クラスター全体のスーパー管理者権限があります。これにより、デフォルトの Kubeconfig が Kubernetes クラスターを操作するための非常に高い権限を持つことができる理由が説明されます。

読み取り専用権限を持つ新しい Kubeconfig ファイルを作成する

デフォルトの Kubeconfig ファイルに、Linux システムのルート権限に似た高レベルの権限であるスーパー管理者権限が付与されている理由については、上記で説明しました。場合によっては、R&D 担当者がポッドのステータス、ログ、その他の情報を表示できるようにするなど、クラスターのアクセス権限を他の人に公開することがあります。現時点では、システムのデフォルトの Kubeconfig を直接使用することは合理的ではありません。権限が大きすぎるため、クラスターのセキュリティが保証されません。より合理的なアプローチは、クラスターでの誤った操作による誤動作を回避するために、R&D 担当者に読み取り専用権限を持つアカウントを付与することです。

クライアント証明書認証を使用して Kubeconfig ファイルを作成するため、クラスターの自己署名 CA (マスター ノード) から証明書を申請し、RBAC 認証を通じて証明書ユーザーにクラスターへの読み取り専用権限を付与する必要があります。具体的な方法は以下の通りです。

証明書の申請時に、証明書のユーザー名を -subj オプションの developer – CN パラメータに設定すると仮定します。

1. 証明書の秘密鍵を作成します。

  1. openssl genrsa -アウト開発者。キー2048

2. 上記の秘密キーを使用して csr (証明書署名要求) ファイルを作成します。このファイルでは、件名にユーザー情報を入力する必要があります (CN はユーザー名、O はユーザー グループです)。

  1. openssl req -new -キー開発者。キー- out developer.csr -subj "/CN=developer"  

/O パラメータは複数回出現できます。つまり、複数のユーザー グループが存在する可能性があります。

3. Kubernetes クラスター (API サーバー) の CA ルート証明書ファイルを見つけます。その場所は、クラスターのインストール方法によって異なります。通常、マスターノードの /etc/kubernetes/pki/ パスにあります。ファイルは 2 つあり、1 つは CA ルート証明書 (ca.crt)、もう 1 つは CA 秘密キー (ca.key) です。

4. クラスターの CA ルート証明書と手順 2 で作成した csr ファイルを使用して、ユーザーに証明書を発行します。

  1. openssl x509 -req - developer.csr-CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca。キー-CAcreateserial -出力developer.crt - 日数 365

この時点で、クライアント証明書が発行されます。後で使用するファイルは、developer.keyとdeveloper.crtです。

RBAC認証に基づいてユーザーに読み取り専用権限を付与する

Kubernetes クラスターには、view という名前のデフォルトの読み取り専用の ClusterRole が既に存在します。 ClusterRole を開発者ユーザーにバインドするだけです。

  1. kubectlクラスターロールバインディング kubernetes-viewer --clusterrole=view --user=developer を作成します 

クライアント証明書に基づいて Kubeconfig ファイルを生成する

クライアント証明書は以前に生成されており、証明書内のユーザーにはクラスターの読み取り専用権限が付与されています。次に、クライアント証明書に基づいて Kubeconfig ファイルを生成します。

$HOME/.kube.config をコピーし (developer-config という名前であると仮定)、それに基づいて変更を加えます。

1. contexts セクションで、user フィールドが developer に変更され、name フィールドが developer@kubernetes に変更されます。 (一貫性がある限り、これらの変更には任意の名前を付けることができます);

2. ユーザー セクションの name フィールドが developer に変更され、client-certificate-data フィールドが developer.crt の base64 で暗号化されたコンテンツに変更され、client-key-data が developer.key の base64 で暗号化されたコンテンツに変更されます。

注: 証明書をbase64で暗号化する場合は、--wrap=0パラメータを指定します。

  • 猫開発者.crt | base64 –ラップ=0
  • cat 開発者キー | base64 –ラップ=0

次に、新しく作成した Kubeconfig ファイルの使用をテストします。

  1. [root@master ~]# kubectl –kubeconfig developer-config –context=developer@kubernetes ポッドを取得します
  2.  
  3. 名前準備完了 ステータス 再起動 年齢
  4.  
  5. nginx-deployment-5754944d6c-dqsdj 1/1 実行中 0 5d9h
  6.  
  7. nginx-deployment-5754944d6c-q675s 1/1 実行中 0 5d9h
  8.  
  9. [root@master ~]# kubectl –kubeconfig developer-config –context=developer@kubernetesポッド nginx-deployment-5754944d6c-dqsdjを削除します
  10.  
  11. サーバーからのエラー (禁止): ポッド「nginx-deployment-5754944d6c-dqsdj」は禁止されています:ユーザー「developer」、名前空間「 default APIグループ「」内のリソース「pods」を削除できません

新しく作成された Kubeconfig ファイルが使用可能であり、書き込み権限が禁止されていることが分かります。これは、先ほど設定した RBAC 権限メカニズムが有効になっていることを意味します。

練習: Kubeconfig またはトークンを使用して Kubernetes ダッシュボードにログインする

Kubernetes ダッシュボードのアクセス アドレスを開くと、最初にログイン認証ページが表示されます。選択できるログイン認証方法は、Kubeconfig とトークンの 2 つです。

実際、どちらの方法でもサービス アカウントのトークンが必要です。 Kubeconfig 方式の場合、ファイルに Token フィールドがないため、クラスターのデフォルトの Kubeconfig: $HOME/.kube/config ファイルを直接使用してログインすることはできません。そのため、ローカルの Kubeconfig ファイルを直接選択してログインすると、エラーが報告されます。正しい使用方法は、サービス アカウントのトークンを取得し、そのトークンを $HOME/.kube/config ファイルに追加することです。ダッシュボードにログインする具体的な方法は次の 2 つです。

準備

まず、どちらの方法もサービス アカウントが必要なので、最初にサービス アカウントを作成し、次にテスト用にこのサービス アカウントに表示権限 (RBAC 承認) を付与します。ダッシュボードにログインすると、クラスター内のリソースを表示することはできますが、変更することはできません。

1. サービス アカウントを作成します (デフォルトの名前空間内)。

  1. kubectlサービスアカウントを作成します。kube-dashboard-reader

2. システムに組み込まれている ClusterRole:view ロールを、前の手順で作成したサービス アカウントにバインドし、クラスター全体のリソースに対する読み取り専用権限を付与します。

  1. kubectlクラスターロールバインディング kube-dashboard-readerを作成します--clusterrole=view --serviceaccount=default:kube-dashboard-reader  

3. サービス アカウント トークンを取得します。

  1. kubectl シークレットを取得します `kubectl シークレットを取得します -nデフォルト| grep kube-dashboard-reader | awk '{print $1}' ` -o jsonpath={.data.token} -nデフォルト|ベース64 -d

Kubeconfigを使用してダッシュボードにログインする

$HOME/.kube/config をコピーし、内容を変更して、準備作業で取得したトークンをファイルに追加します。これを Kubeconfig の Users の下の User 部分に追加し、次のように入力します。

  1. ...
  2.  
  3. ユーザー:
  4.  
  5. -名前: kubernetes-admin
  6.  
  7. ユーザー:
  8.  
  9. クライアント証明書データ: ...
  10.  
  11. クライアント-キー -データ: ...
  12.  
  13. token: <これは上記で取得したトークンです...>

次に、ログイン インターフェイスで Kubeconfig ラジオ ボタンを選択し、ファイルを選択してダッシュボードに正常にログインします。

トークンを使用してダッシュボードにログインする

ログイン インターフェイスで [トークン] ラジオ ボタンを選択し、準備中に取得したトークンを貼り付けて正常にログインします。

<<:  中国企業は世界のクラウド市場シェアを失った

>>:  クラウドコンピューティング半月刊第76号 - マイクロソフトが5Gおよびエッジコンピューティング企業Affirmed Networksを買収

推薦する

Xiong Zhanghao 最適化: エラーが発生しました。どうすればいいですか?

月収10万元の起業の夢を実現するミニプログラム起業支援プラン熊張豪の発売以来、百度は検索最適化に基づ...

Tujia.com が 400 日間で 4 億人民元を調達した謎: バケーションレンタルの転換点

「今回の投資は途家にとって画期的な出来事ではなく、バケーションレンタル業界全体にとって画期的な出来事...

SEO最適化を行うウェブマスターは、Sosoの開発動向に注目する必要があります。

現在、国内のウェブサイトはすべてトラフィックを百度に依存しており、他の検索エンジンを研究したことがあ...

Amazon SageMaker が中国の AWS 寧夏および北京リージョンで利用可能になりました

[ 2020年5月12日北京] Amazon のクラウドサービスである Amazon Web Se...

OpenStack Newton がリリース、EasyStack コアコード貢献が中国で第 1 位に

今週、OpenStack は 14 番目のバージョンである Newton を正式にリリースしました。...

アリババクラウドのビッグデータプラットフォームODPSが2022年の世界有数のインターネット科学技術成果の一つに選ばれました

11月9日、世界インターネット会議烏鎮サミットにて、2022年世界インターネット先端科学技術成果発表...

百度におけるウェブサイトランキング低下の主な理由の分析

検索エンジンのアルゴリズムが変更または強化されると、一部のウェブサイトの特定のキーワードのランキング...

AMD の新しい 6 コア Opteron はワット当たり 34% のパフォーマンス向上を達成

カリフォルニア州サニーベール、2009 年 6 月 1 日 – AMD は本日、2 ウェイ、4 ウェ...

中国の電子商取引B2C市場には、新たな春を生み出すチャンスがまだあるのでしょうか?

中国電子商取引の現在のB2C市場構造について、福清ウェブサイト建設は、全体的な状況は基本的に決定され...

【クラウドネイティブ】K8s PodスケジュールドエラスティックスケーリングCronhpaの導入と実践運用

1. 概要実際、ネイティブ HPA は時間ポイントに基づくスケーリングをサポートしていません。リソー...

プライベートクラウドは今やパブリッククラウドの周辺機器となっている

マイクロソフト社の Azure Stack、アマゾン ウェブ サービス社の Outpost、グーグル...

オープンソースの Apache Cassandra、Kafka、Spark、ES はいつ使用すべきで、いつ使用すべきではないのでしょうか?

[51CTO.com クイック翻訳] ほぼすべてのテクノロジーに関する決定は、企業がビジネス目標を達...

ジャイアントネットワークがshenghuo.comというドメイン名を58万元で購入したと報じられている。

eName.cnは4月15日、昨年ドメイン名投資家のAbu氏が海外から買い戻した「life」ドメイン...

#おすすめ# BandwagonHost VPS: 割引コード、スピードテストIP、コンピュータルーム紹介、評価、IP変更

BandwagonHost VPS はいかがでしょうか?どうやって選ぶ? Bricklayer の割...

anynode: cn2 gt (zenlayer) + KVM シリーズ VPS、年間 15 ドルから、Alipay が利用可能

anynodeは、同社のVPSがロサンゼルスのZenlayerデータセンターネットワークに接続されて...