K8s Nginx Lngress の 9 つの一般的な構成 (アノテーション)、いくつ知っていますか?

K8s Nginx Lngress の 9 つの一般的な構成 (アノテーション)、いくつ知っていますか?

前回の記事では、ingress vhost アノテーションの使用について紹介しました。鉄は熱いうちに、よく使われる注釈を9つ一気に紹介します。

1. イングレスクラス

k8s クラスターに複数の Ingress コントローラーがデプロイされている場合、特定の Ingress コントローラーを指定するように Ingress を構成すると、Ingress CLAAS が大きな役割を果たします。

一方、コントローラを起動すると、パラメータを通じてイングレスクラスを指定する必要があります。

  1. --ingress-class=ngx-ds  

一方、イングレスを作成する場合は、以下のようにアノテーションでイングレスクラスを指定します。

  1. apiバージョン: extensions/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: other-ngx-k8s
  5. 名前空間: other-ngx
  6. 注釈:
  7. kubernetes.io/ingress.class: "ngx-ds"  
  8. 仕様:
  9. ルール:
  10. - ホスト: other-ngx-k8s.demo.com.cn
  11. http:
  12. パス:
  13. - パス:​​ /
  14. バックエンド:
  15. サービス名: other-ngx-k8s-ngx-svc
  16. サービスポート: 9001

2. httpsを強制する

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: テストイングレス
  5. 注釈:
  6. nginx.ingress.kubernetes.io/rewrite-target: /
  7. nginx.ingress.kubernetes.io/強制-ssl-redirect: "true"  
  8. nginx.ingress.kubernetes.io/ssl-redirect: "true"  
  9. nginx.ingress.kubernetes.io/末尾のスラッシュを保持: "true"  
  10. 仕様:
  11. ルール:
  12. - http:
  13. パス:
  14. - パス: /testpath
  15. バックエンド:
  16. サービス名: テスト
  17. サービスポート: 80

3. リクエストタイムアウト

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: cafe-ingress-注釈付き
  5. 注釈:
  6. nginx.org/proxy-connect-timeout : "30 秒"  
  7. nginx.org/proxy-読み取り- タイムアウト: "20 秒"  
  8. 仕様:
  9. ルール:
  10. - ホスト: cafe.example.com
  11. http:
  12. パス:
  13. - パス: /tea
  14. バックエンド:
  15. サービス名: tea-svc
  16. サービスポート: 80
  17. - パス: /coffee
  18. バックエンド:
  19. サービス名: coffee-svc
  20. サービスポート: 80

4. クロスドメインアクセス

API のゲートウェイとして nginx を使用することが多いため、クロスドメインのサポートが不可欠です。合格

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: テストイングレス
  5. 注釈:
  6. nginx.ingress.kubernetes.io/enable-cors: "true"  
  7. nginx.ingress.kubernetes.io/cors-allow-methods: 「PUT、GET、POST、オプション」  
  8. nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For、X-app123-XPTO"  
  9. nginx.ingress.kubernetes.io/cors-expose-headers: "*, X-CustomResponseHeader"  
  10. nginx.ingress.kubernetes.io/cors-最大-age: 600
  11. nginx.ingress.kubernetes.io/cors-allow-credentials: "false"  
  12. 仕様:
  13. ルール:
  14. - http:
  15. パス:
  16. - パス: /testpath
  17. バックエンド:
  18. サービス名: テスト
  19. サービスポート: 80

5. 電流制限

電流制限もよく使用され、rps を使用して 1 秒あたりのリクエスト数を制限したり、rpm を使用して 1 分あたりのリクエスト数を制限したり、connections を使用して接続数を制限したりします。

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: テストイングレス
  5. 注釈:
  6. nginx.ingress.kubernetes.io/limit-rps: "5"  
  7. nginx.ingress.kubernetes.io/limit-rpm: "300"  
  8. nginx.ingress.kubernetes.io/limit-connections: "10"  
  9. 仕様:
  10. ルール:
  11. - http:
  12. パス:
  13. - パス: /testpath
  14. バックエンド:
  15. サービス名: テスト
  16. サービスポート: 80

6. 最大ボディ

これは主に、トラフィックがいっぱいになるのを防ぐための外部リクエスト用です。 Proxy-body-size は、リクエスト本文の最大サイズを設定します。制限を超えると、413 リクエスト エラーが返されます。

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: テストイングレス
  5. 注釈:
  6. nginx.ingress.kubernetes.io/proxy-body-サイズ: 8m
  7. 仕様:
  8. ルール:
  9. - http:
  10. パス:
  11. - パス: /testpath
  12. バックエンド:
  13. サービス名: テスト

7. クライアントのホワイトリスト

このパラメータは主にセキュリティ制限に使用され、特定のクライアント要求のみを許可します。ただし、現在のネットワークでは NAT が広く使用されているため、このパラメータが使用されるシナリオは比較的限られています。

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: テストイングレス
  5. 注釈:
  6. ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/24,172.10.0.1"  
  7. 仕様:
  8. ルール:
  9. - http:
  10. パス:
  11. - パス: /testpath
  12. バックエンド:
  13. サービス名: テスト

8. デフォルトサービス

これはよく使われます。クライアントが存在しないパスを要求した場合、404 を返してデフォルトのサービスにジャンプすることは望ましくありません。

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: テストイングレス
  5. 注釈:
  6. nginx.ingress.kubernetes.io/ default -backend: <SVC>
  7. 仕様:
  8. ルール:
  9. - http:
  10. パス:
  11. - パス: /testpath
  12. バックエンド:
  13. サービス名: テスト

9. アクセスログスイッチ

Nginx Ingress では、アクセス ログがデフォルトで有効になっています。無効にしたい場合は、

  1. APIバージョン: networking.k8s.io/v1beta1
  2. 種類: イングレス
  3. メタデータ:
  4. 名前: テストイングレス
  5. 注釈:
  6. nginx.ingress.kubernetes.io/enable-access-log: "false"  
  7. 仕様:
  8. ルール:
  9. - http:
  10. パス:
  11. - パス: /testpath
  12. バックエンド:
  13. サービス名: テスト

<<:  KubernetesはITスキルの価値を高める

>>:  TDesign は、Tencent Design Cloud の機能の重要な部分であるオープンソースとして正式にリリースされました。

推薦する

ウェブサイトのランキング最適化と競合他社の簡単な分析

ウェブサイトのランキング最適化を行うSEO担当者にとって、競合他社を分析できなければなりません。競合...

業界アプリケーションの革新とアップグレードのコアビジネスクラウド実装

時が経つのは早いもので、第 8 回データ テクノロジー カーニバルでの素晴らしいスピーチは今でも私た...

reliablehostingservices-50USD/E3-1225v2/16GB RAM/2x2TB ディスク/5IP/バージニア

すべてのサーバーには、デフォルトで 5 つの独立した IPv4、100M ポート、5T トラフィック...

アンチャンがKCSP資格を取得し、クラウドネイティブの強みが再び国際的に認められる

上海安昌ネットワークテクノロジー株式会社(以下、「安昌」)は、KCSP(Kubernetes Cer...

t667: 三網cn2 giaネットワーク、安昌コンピュータルームKVMシリーズVPSの20%割引、毎月3回のIP変更無料

t667 (olvps) は、米国ロサンゼルスの安昌コンピュータルームで 200Mbps の帯域幅を...

華夏銀行とアント・ファイナンシャルは、銀行のモバイルデジタル変革における新たなトレンドを創出するための戦略的提携に達した。

デジタル変革を加速するためにテクノロジー企業と提携する銀行が増えています。 5月11日、中国華夏銀行...

スタート地点で勝つ: 「古い」ドメイン名の方が成功する可能性が高い理由

ドメイン名取引市場は活況を呈しており、数万から数十万ドルの価値があるドメイン名が無数にあります。その...

個々のウェブマスター:協力してこそ発展への道が開ける

現在のインターネットの状況では、ウェブマスター業界は、ある程度の技術的スキルさえあれば、経験のない若...

hostodo: 年間 25 ドル、米国 VPS (データセンター 3 か所)、2G メモリ/2 コア/20GNVMe/5T トラフィック

Hostodo (~) は現在、ラスベガス、スポケーン、マイアミのデータセンターで、少なくとも 5T...

ウェブマスターのユーザーエクスペリエンスに対する理解は時代に合わせていく必要がある

ウェブサイトが Baidu で良いランキングを獲得するにはどうすればよいでしょうか? この質問に対す...

記事からインターネットマーケティングを学ぶ

最近最もホットなセレブが誰なのか、皆さんご存知だと思います。それは「アーティクル」です。すべての主要...

百度の調整に直面してトレンドに逆らう方法

9月21日、ある人物が「百度物流ウェブサイトランキング調整の簡潔な分析」というタイトルの記事を書き、...

Java仮想マシンの重要なコンポーネントを理解するための記事

JVM は、JAVA プラットフォームの重要なコンポーネントの 1 つです。非常に多くの知識ポイント...

こうやって生まれて、こうやって熟練して、新しいウェブサイトの各段階でSEOを共有する

インターネット上では、SEO のハードルは比較的低いと言う人が多くいますが、確かにそれは事実です。し...

企業サイトのページデザインの分析はユーザーエクスペリエンスに重点を置くべきである

企業サイトは、細部から始めてサイトのユーザーエクスペリエンスを向上させるにはどうすればよいのでしょう...