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

推薦する

「エッジコンピューティング」が5Gの核となるキーワードに

5Gの速度はどれくらいですか? 4G から 5G にアップグレードする感覚は、1G から 4G への...

#元旦# メガレイヤー: 香港/アメリカ/フィリピン/シンガポール、CN2/CUII回線、199元VPS-16Gメモリ/8コア/240gSSD/3IP、399元e3専用サーバー

クリスマスと元旦を祝うため、Megalayer は新しいプロモーションを開始しました。このプロモーシ...

SEO業界に参入する初心者への質問

初心者として、SEO 業界に参入する前に、まず SEO を理解する必要があります。 1. SEO と...

素晴らしいウェブサイトを作るには?ユーザーのニーズを満たすことが最優先

周知のとおり、Baiduの「6.22」と「6.28」事件の後、多くのウェブサイトがダウングレードまた...

アリババクラウドが東方明珠塔を「ライトアップ」し、IoT都市の洗練された管理モデルを共同で構築

アリババクラウドは6月7日、2018年雲啓会議上海サミットにおいて、東方明珠新メディア有限公司(以下...

企業におけるクラウドの拡大を管理するための 7 つのヒント

企業がクラウド リソースの可視性と制御を欠くと、さまざまな問題が発生します。クラウドの無秩序な拡大は...

Kafka データバックログとデータ重複処理のケース

データのバックログとデータの重複は、Kafka をメッセージング システムとして使用する場合によく発...

百度ニュースはニュースサイト上の広告スタイルのニュースを拒否するために剣を抜く

現在、6月中旬に始まった「百度地震」は、依然として大多数のウェブマスターとSEO担当者の注目を集めて...

5 分間の技術講演 |クラウドコンピュータ端末のマウスとキーボードの適応原理

パート01クラウドコンピュータとキーボードとマウスの適応とは何ですか?クラウドコンピューティングは現...

alpharacks - $15/年/512MB RAM/1024Swap/50GB HDD/2TB トラフィック/ロサンゼルス/QR データセンター

Alpharacks のロサンゼルス データ センターでは、openvz の Black 5 プレヒ...

2021 年のクラウド アプリケーションにおけるサイバーセキュリティ

最近のサイバーセキュリティの進歩により、最新のクラウド アプリケーションに影響を与える新しいルールが...

VPS 初心者向けチュートリアル: Xshell クライアントの理解と使用

HostCat VPS の初心者向けチュートリアル: Xshell の理解と初期使用。まず、公式ウェ...

ブログでブランドSEOを構築する

インターネットの急速な発展により、インターネットが第 4 位のメディアになったことは疑いの余地のない...

サンドボックスに入った Web サイトを保存するためにエネルギーを投資する価値はあるでしょうか?

月収10万元の起業の夢を実現するミニプログラム起業支援プラン理由がわからない。最近、多くの友人が S...