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

推薦する

intovps - 5 ドル/1g メモリ/20g SSD/1T トラフィック/OpenStack/5 つのオプション データ センター

intovps についてあまり詳しくない人もいるようですが、実際ブロガーも知りません。intovps...

マイクロビジネス「血に染まった」小紅書

小紅書が厳選したブランドの「白くてお金持ちで美しい」セレブたちは、華やかなアウターを脱ぐと、実は潜在...

マルチクラウドのトップ 10 トレンド: 包括的か、それとも混沌か?

今日のマルチクラウド環境は 1、2 年前とは大きく異なり、明日のマルチクラウド環境も同様に大きく異な...

アンケート: Baidu のハイパーリンク アルゴリズムのアップグレードによる影響を受けていますか?

百度のウェブ検索不正対策チームが10月23日に発表した発表によると、百度の不正対策アルゴリズムは、ハ...

クラウドにブラックボックスデータが存在しないのはなぜですか?飛行機事故が起きたら探すのが面倒じゃないですか?

中国東方航空の墜落事故は全国の人々の心を動かした。飛行機が森の中に墜落したため、ブラックボックスの捜...

JD Cloud を使用して高可用性ビジネス アーキテクチャを構築する方法

著者: Zhang Jiuzhi、JD Cloudこの記事は、2022 年の実際のプロジェクトに基づ...

Hongmeng分散型クロスデバイスファイルサービスレター管理に基づく

[[431770]]詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したH...

Baidu の大量攻撃でホームページがブロックされた場合の対処方法

今日、「Cat's Claw」という友人が、彼のウェブサイトのタイトルが悪意を持って改ざんさ...

ブラックフライデー 外国ドメインホスティング VPS プロモーション概要

毎年恒例のブラックフライデーがやって来ました。Host Cat では、皆さんがあちこち探し回る必要が...

Linkerd と Ingress-Nginx の組み合わせとサービスへのアクセス制限

簡潔にするために、Linkerd 自体は組み込みの Ingress コントローラーを提供していません...

ウェブサイトの内部と外部の問題を解決することで、最適化は無敵になります

私が開設して1年以上経った石家荘証券ネットワークは、すでに運営されています。この1年間で、ウェブサイ...

Baidu K-station事件はすべてのウェブマスターに警鐘を鳴らした

6月28日と7月18日の事件では、ほとんどのウェブマスターが百度によって解放前の時代まで押し戻された...

UGVPS-2g メモリ 4 コア/60g ハードディスク/2T トラフィック/3.3 USD

UGVPS は 2017 年 11 月に米国ペンシルバニア州に設立されました。すべてのサーバーは G...

RootNerds - 3.39 ドル / メモリ 3g / ハードディスク 200g / トラフィック 500g / ドイツ

RootNerds はドイツに登録された会社で、正式名称は deal-Hosting UG です。現...

素晴らしい会話ができました!微博が「ダークホース」を見たとき

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますこれはハイ...