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

推薦する

ウェブサイトの顧客コンバージョン率を向上させる方法に関する簡単な分析

ウェブサイトを構築する目的は、ウェブサイトを通じて、特定の顧客からの相談、顧客の協力、顧客の購入をも...

同じサーバー、同じ業界の検索エンジンにおける不正行為の問題を排除する方法

お金を節約し、検索エンジンのランキングを独占するために、一部のウェブマスターは、1つの業界向けに複数...

SEO担当者は検索エンジンのアップデートについて常に冷静でいるべきである

昨日、6 月 26 日、Baidu は別の大きなアップデートを行いました。このアップデートにより、当...

インテリジェントな変革を進めている企業は、将来に向けて新たなハイブリッド クラウド IT の勢いをどのように構築できるでしょうか?

デジタル経済の台頭、インターネットビジネスモデルの変革、そして現在の経済環境の複雑化により、伝統的な...

雲清未来智能信頼世界2023モバイルクラウドカンファレンスが盛大に開幕

4月25日から26日にかけて、2023モバイルクラウドカンファレンスが蘇州で盛大に開幕しました。 「...

彼は年間何億ドルも稼いでいます。電子書籍を販売している彼は私が今まで見た中で最も素晴らしい人です!

注: この記事はインターネット マーケティングに関する調査とコミュニケーションのみを目的としており、...

モバイルブラウザ: BAT のローカル戦争

月収10万元の起業の夢を実現するミニプログラム起業支援プランテキスト/techsuoma普段ブラウザ...

SEO ウェブサイトがキーワードのホームページに掲載されるまでにどれくらいの時間がかかりますか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスSEO ランキングの最適...

WeChat Momentsでの広告を効果的にするにはどうすればいいですか?

WeChat Momentsでマーケティングに取り組む人はますます増えています。そのうちの少数は確か...

検索エンジンが好む外部リンクの種類について簡単に説明します

外部リンクは、ウェブマスターが常に追求してきたものです。一般に、外部リンクが多ければ多いほど良いと考...

Yuan Fangさん、SEO会社を選ぶことについてどう思いますか?

ネットワーク技術に精通していない、または不慣れな企業にとって、強力な SEO 会社を選択することは非...

分散型 - Nginx 負荷分散サーバー

この記事はWeChatの公開アカウントLing Haoyuから転載したものです。著者が許可しました。...

エッジコンピューティング: GenAI 導入の可能性を解き放つ

急速に進化する人工知能の分野において、GenAI の導入はさまざまな業界の企業にとって大きな可能性を...

推奨: HostUs-5.4 USD/6 GB RAM/150 GB HDD/5 TB トラフィック/8 データセンター

HostUS Solutions LLC は、私たちがすでによく知っている VPS ベンダーです。登...

クラウド コンピューティング市場はどれくらいの資金を消費しているのでしょうか? 19のクラウドベンダーが2017年に638億ドルを費やした

ウォールストリート・ジャーナルのウェブサイトによると、2017年に米国の3大クラウドサービスプロバイ...