継続的統合デプロイメント - k8s - サービス検出 - サービス

@[TOC](Continuous Integration Deployment-k8s-Service Discovery-Service: 構成の説明と基本コマンド)
# 1. サービスの概要
K8s では、「サービス」は 1 つ以上の「ポッド」を公開できる安定したネットワーク エンドポイントであり、それによって論理アプリケーション サービス ユニットを形成し、サービス検出、ロード バランシング、フォールト トレランスなどのインフラストラクチャ サポートを提供します。

「サービス」の主な機能には次の側面が含まれます。

- **1. 内部サービス ディスカバリの実装**: K8 では、多くの場合、同じアプリケーション サービスを実行する複数の `Pod` が存在します。`Service` は、これらの `Pod` を論理的なサービス ユニットに結合し、このサービス ユニットに一意のサービス ユニットを割り当てることができます。他のアプリケーションによる呼び出し用の「クラスター IP」アドレス。

- **2. 負荷分散機能を提供します**: 「サービス」は、負荷分散を実現するために、複数のバックエンド「ポッド」のいずれか 1 つにリクエストを送信できます。

- **3. 動的拡張のサポート**: `Pod` を追加する必要がある場合、K8s クラスターに追加するだけで、サービスはそれをサービス ユニットに自動的に組み込み、Pod へのリクエストの転送を開始します。

- **4. 複数のスケジューリング戦略をサポート**: 「サービス」は、ポーリング、最小接続数、IP ハッシュ、ラベル セレクターに基づくランダムなどを含む複数のスケジューリング戦略をサポートします。

つまり、「サービス」は K8s プラットフォームの非常に重要なコンポーネントであり、サービスの検出とコンテナ化されたアプリケーションの負荷分散をサポートするための、シンプルかつ柔軟で信頼性の高い方法を提供します。
# 2. 基本コマンド
サービスの作成: `nginx-svc.yaml`、内容は次のとおりです:
` ``yaml
apiVersion: v1
kind: Service # リソース タイプは Service
メタデータ:
  name : nginx-svc # サービス名
  label:
    app: nginx # サービス独自のラベル
spec:< /a >     app: nginx-deploy # これらのラベルに一致するすべてのポッドはサービスを通じてアクセスできます
  selector: # 一致するポッドはサービスによってプロキシされます   - port: 80 # イントラネット IP 経由でアクセスするときに使用されるサービス独自のポート     targetPort: 80 # のポートtarget pod     nodePort: 32000 # すべてのノードの 32000 ポートへのバインディングを修正     name: web # ポートに名前を付けます< a i=18 > type: NodePort # ランダムにポート (30000~32767) を開始し、ports 内のポートにマップします。このポートはノードに直接バインドされており、クラスター内のすべてのノードはこのポートをバインドします。                  # サービスを外部アクセスに公開するために使用することもできますが、この方法は実際の運用環境では推奨されず、効率が低く、サービスは 4 層のロードです `` `` 次に、サービスを作成します: `kubectl create -f nginx-svc.yaml`









查看サービス列表:
```sh
[root@docker-54 ~]# kubectl get svc
名前 タイプ クラスタ IP 外部 IP ポート 年齢
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 160d
nginx ClusterIP なし <なし> 80/TCP 5d19h
nginx-svc NodePort 10.96.169.50
[root@docker-54 ~]# 
```
查看サービス情報,通过サービスのクラスター IP の実行:
```sh
[root@docker-54 services]# kubectl get svc
名前 タイプ クラスター IP 外部 IP ポート 年齢
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 160d
nginx ClusterIP なし <なし> 80/TCP 5d19h
nginx-svc NodePort 10.96.169.50
[root@docker-54 サービス]# 
[root@docker-54 サービス]#curl 10.96.169.50
<!DOCTYPE html>
<html>
<head>
<title> nginx へようこそ!</title>
<style>
    body {         width: 35em;         margin: 0 auto;         font-family: Tahoma、Verdana、Arial、sans-serif;     } </style> </head> <body> ; <h1>gt;nginx へようこそ!</h1> <p>このページが表示された場合、nginx Web サーバーは正常にインストールされており、 動作しています。さらに設定が必要です。









<p>オンラインのドキュメントとサポートについては、
<a href="http://nginx.org/">nginx.org</ を参照してください。 a>.<br/>
商用サポートは
<a href="http://nginx.com/">で利用できます。 ;nginx.com</a>.</p>

<p><em>nginx をご利用いただきありがとうございます。</em></p>
</body>
</html>

おすすめ

転載: blog.csdn.net/linmengmeng_1314/article/details/134102704