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 の機能の重要な部分であるオープンソースとして正式にリリースされました。

推薦する

Baidu のキーワードマッチングモードは壊れていますか?

「本気を出せば負ける」ということわざがあります。これは、Baidu のキーワードマッチングを説明する...

WeChatパブリックアカウントの運用とプロモーションスキル!

公開アカウントでツイートする方法は誰もが知っていると思いますが、とても簡単です。公式アカウントの運用...

権限を失わずに改訂するための手順2と3

多くの企業にとって、改訂は必須です。なぜ私がこう言うのか?それは、ほとんどの企業が自社の企業ウェブサ...

技術力を活かして異なるJD Cloudセキュリティを構築

[51CTO.comより引用] 2018年に入り、クラウドコンピューティング分野でセキュリティインシ...

テンセントクラウドは4つの主要分野で総合的な取り組みを行い、フルリンク開発者サービスシステムを構築

テンセントクラウドは4つの主要分野で総合的な取り組みを行い、フルリンク開発者サービスシステムを構築1...

ホストユンはどうですか?韓国データセンターの高帯域幅韓国VPSの簡単な評価

ホストユンはどうですか? hostyun 韓国 VPS はどうですか? Hostyun は、月額 1...

クラウドネイティブを構築し、変革を加速する

[51CTO.com オリジナル記事] 数年前、CIO/CTO が集まったとき、彼らは「あなたの会社...

ウェブマスターネットワークからの毎日のレポート:百度がPPSを買収、テンセントが電子商取引を統合

1. 百度はPPS買収の意向に署名し、近々デューデリジェンスを実施する予定3月22日に突然、百度がP...

ウェブサイトのタイトルを正しく書く方法

ユーザーがキーワードを検索するときに最初に比較するのは、Web サイトのタイトルです。ユーザーはタイ...

グローバルクラウドコンピューティングの父、IBM: クラウドコンピューティングが現実に

近年、テクノロジー企業は「クラウド コンピューティング」のビジネス チャンスをつかもうと競い合い、ク...

Name.com - .xyz ドメインを年間わずか 0.99 ドルで登録 (複数年)

今から、.xyz ドメイン名を特別価格で登録できるようになります。特別価格はどのように機能しますか?...

Alibabaのクラウドネイティブハイブリッド展開システムKoordinatorが正式にオープンソース化

著者 |朱陵ハイブリッド展開とは何ですか?業界の多くのインターネット企業は、異なる特性タイプのワーク...

インターネット大手企業間の「内紛」戦争

新年に入ってわずか半月で、インターネット大手は頻繁に「戦い」始めた。まず、テンセントのゲームがファー...

Android マーケット - OPPO アプリケーション マーケット ASO 詳細説明

本日お話ししたいのは、OPPO App Market が店頭に並ぶ前から店頭に並んだ後までの運用プロ...

SharkTech: シカゴデータセンターの10Gbps帯域幅無制限トラフィックサーバーの簡単なレビュー

シャークルームがどんなところか知りたいですか? Shark Server はどうですか? Shark...