kubernetes V1.16イングレス - nginxの展開

イングレス

KubernetesにIPアドレス、サービスポッドのみクラスタネットワーク内で使用することができ、中に、クラスタ外のためのアプリケーションが表示されていません。NodePortによってKubernetes缶ロードバランサでは、クラスタ内のアクセスサービスへの外部アプリケーションを作るためには、サービスの両方のタイプ、または入力を使用します。イングレスは、外部リバースプロキシサーバーのhttp HTTPリクエストを介してクラスタのバックエンドサービスの内部性質のために転送されます。

プロジェクトアドレス

https://github.com/kubernetes/ingress-nginx

配布ファイルの説明:

namespace.yaml

別の名前空間の進入-nginxのを作成します。

https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/namespace.yaml

apiVersion:V1の
種類:名前空間の
メタデータ:
  名前:侵入-nginxの
  ラベル:
    app.kubernetes.io/name:侵入-nginxの
    app.kubernetes.io/part-of:イングレス、nginxの

---

configmap.yaml

  ConfigMap一般的な構成は、異なるモジュールのユーザ分散システム環境変数は、管理オブジェクトに統合することができるように、プロファイルと同様に、変数に格納され、それはクラスタの存在であること、それとのプロファイルの差は "。環境「とサポートしているすべての一般的なオペレーティング呼び出しK8Sクラスタ。データの観点から、ちょうどConfigMapキー群タイプは、情報を記憶または他のリソースのためにポッド(例えば、RC)アクセスオブジェクト。これは、デザインコンセプトエコーの秘密の主な違いは、ConfigMapは通常、機密情報を格納するために使用されていないということです、そして店舗のみの単純なテキストメッセージです。ConfigMapは、あなたはまた、設定ファイルを保存することができ、プロパティの環境変数を保存することができます。あなたはポッドを作成すると、ポッド内のバインドアプリケーションにconfigmapに直接ConfigMap設定を参照することができます。Configmapは同等/動作環境パッケージを適用するように構成しました。

https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/configmap.yaml

種類:ConfigMap 
apiVersion:v1の
メタデータ:
  名前:nginxの-設定
  名前空間:進入-nginxの
  ラベル:
    app.kubernetes.io/name:侵入-nginxの
    app.kubernetes.io/part-of:侵入-nginxの

--- 
種類:ConfigMap 
apiVersion:v1の
メタデータ:
  名前:TCP-サービスの
  名前空間:進入-nginxの
  ラベル:
    app.kubernetes.io/name:侵入-nginxの
    app.kubernetes.io/part-of:侵入-nginxの

--- 
種類:ConfigMap 
apiVersion:V1 
メタデータ:
  名前:UDP-サービスの
  名前空間:進入-nginxの
  ラベル: 
    app.kubernetes.io/name:イングレス、nginxの
    app.kubernetes.io/part-of:イングレス、nginxの

---

rbac.yaml

  制御RBACの承認イングレスはServiceAccount、ClusterRole、役割、RoleBinding、ClusterRoleBindingを使用し作成した進入に関与しています

https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/rbac.yaml

apiVersion:v1の
種類:ServiceAccount 
メタデータ:
  名前:nginxの入serviceaccountの
  名前空間:進入-nginxの
  ラベル:
    app.kubernetes.io/name:侵入-nginxの
    app.kubernetes.io/part-of:侵入-nginxの

--- 
apiVersion :rbac.authorization.k8s.io/v1beta1の
種類:clusterRoleの
メタデータ:
  名前:nginxの入clusterrole 
  ラベル:
    app.kubernetes.io/name:侵入-nginxの
    app.kubernetes.io/part-of:侵入-nginxの
ルール:
  - apiGroups:
      - "" 
    リソース:
      - configmaps 
      -エンドポイント
      -ノード
      -ポッド
      -秘密
    動詞:
      -リスト
      -腕時計
  - apiGroups:
      - "" 
    リソース:
      -ノード
    動詞:
      -取得
  - apiGroups:
      - "" 
    リソース:
      -サービス
    動詞:
      -取得
      -リスト
      -腕時計
  - apiGroups:
      - "" 
    リソース:
      -イベント
    動詞:
      -作成
      -パッチ
  - apiGroups:
      - "機能拡張" 
      - "networking.k8s.io" 
    リソース:
      - ingressesの
    動詞:
      -取得 
    動詞: 
      -リスト
      -腕時計
  - apiGroups:
      - "機能拡張" 
      - "networking.k8s.io" 
    リソース:
      - ingresses /ステータス
    動詞:
      -更新

--- 
apiVersion:rbac.authorization.k8s.io/v1beta1 
種類:役割
メタデータ:
  名前:nginx-イングレス・役割の
  名前空間:進入-nginxの
  ラベル:
    app.kubernetes.io/name:侵入-nginxの
    app.kubernetes.io/part-of:侵入-nginxの
ルール:
  - apiGroups:
      - "" 
    リソース:
      - configmaps 
      -ポッド
      -秘密
      -ネームスペース
      -取得
  - apiGroups: 
      - "" 
    リソース:
      - configmaps 
    resourceNameの:
      へ#Defaults "を- <進入クラス>" <選挙-ID> 
      :<進入-コントローラリーダー> - <nginxの> "ここで#" 
      #これがあれば適応する必要がありますあなたは、いずれかのパラメータの変更
      nginxの入コントローラを起動するときに#を。
      - "イングレス・コントローラ・リーダー-nginxの" 
    動詞:
      -取得
      -アップデート
  - apiGroups:
      - "" 
    リソース:
      - configmapsの
    動詞:
      -作成
  - apiGroupsを:
      - "" 
    リソース:
      - GET 
  名前:nginxの入clusterrole-原子力安全・保安院結合

apiVersion:rbac.authorization.k8s.io/v1beta1の
種類:RoleBinding 
メタデータ:
  名前:nginxの入役割原子力安全・保安院結合
  の名前空間:侵入-nginxの
  ラベル:
    app.kubernetes.io/name:イングレス、nginxの
    app.kubernetes.io /パートの:侵入-nginxの
roleRef:
  apiGroup:rbac.authorization.k8s.io 
  種類:役割
  名:nginxの入役割
科目:
  -種類:ServiceAccountの
    名前:nginxの入serviceaccountの
    名前空間:侵入、nginxの

--- 
apiVersion:rbac.authorization.k8s.io/v1beta1の
種類:ClusterRoleBinding 
メタデータ:
  ラベル:
    app.kubernetes.io/name:イングレス、nginxの
    app.kubernetes.io/part-of:進入-nginxの
roleRef:
  apiGroup:rbac.authorization.k8s.io 
  種類:ClusterRoleの
  名前:nginxの入clusterrole 
科目:
  -種類:ServiceAccountの
    名前:nginxの入serviceaccountの
    名前空間:侵入-nginx 

---

rbac.yaml

  入口は入力コントローラを作成するためのコアです。エフェクト入力コントローラ新しく進入構成nginxのに追加します

https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/with-rbac.yaml

apiVersion:アプリケーション/ v1の
種類:展開
メタデータ:
  名前:nginxの入コントローラーの
  名前空間:進入-nginxの
  ラベル:
    app.kubernetes.io/name:侵入-nginxの
    app.kubernetes.io/part-of:侵入-nginxの
スペック:
  複製:1つの
  セレクタ:
    matchLabels:
      app.kubernetes.io/name:入nginxの
      app.kubernetes.io/part-of:入nginxの
  テンプレート:
    メタデータ:
      ラベル:
        app.kubernetes.io/name:入nginxの
        アプリ。 kubernetes.io/part-of:進入-nginxの
      注釈:
        prometheus.io/port: "10254" 
        prometheus.io/scrape: "真" 
    スペック: 
      #接続のドレインのために5分ほど待って
      terminationGracePeriodSeconds:300 
      serviceAccountName:nginxの入serviceaccount 
      nodeSelector:
        kubernetes.io/os:Linuxの
      コンテナ:
        -名前:nginxの入コントローラの
          画像:quay.io/kubernetes-イングレス・コントローラ/ nginxの入コントローラ:0.26.1 
          引数:
            - / nginxの入コントローラ
            - --configmap = $(POD_NAMESPACE)/ nginxの-設定
            - --tcp-サービス-configmap = $(POD_NAMESPACE)/ TCP -services 
            - --udp-サービス-configmap = $(POD_NAMESPACE)/ UDP-サービス
            - --publishサービス= $(POD_NAMESPACE)/進入-nginxの 
            - --annotationsプレフィックス= nginx.ingress.kubernetes.io
          SecurityContextが:
            allowPrivilegeEscalation:真
            の能力:
              ドロップ:
                - ALL 
              を追加:
                - NET_BIND_SERVICE 
            #WWW-データ- > 33 
            runAsUser:33 
          ENV:
            -名前:POD_NAME 
              valueFromおよび:
                するFieldRef:
                  fieldPath:metadata.name 
            -名前:POD_NAMESPACE 
              valueFromおよび:
                するFieldRef:
                  fieldPath:metadata.namespaceの
          ポート:
            -名前:HTTP 
            periodSeconds:10 
              containerPort:80
            -名前:HTTPS 
              containerPort:443 
          livenessProbe:
            failureThreshold:3 
            HTTPGET:
              パス:/ healthzの
              ポート:10254 
              スキーム:HTTP 
            initialDelaySeconds:10 
            periodSeconds:10 
            successThreshold:1 
            timeoutSecondsの:10 
          readinessProbe:
            failureThreshold:3 
            HTTPGET:
              パス:/ healthzの
              ポート:10254 
              スキーム:HTTP 
            timeoutSecondsの:10
            successThreshold:1点の
          ライフサイクル:
            PRESTOP:
              EXEC:
                コマンド:
                  - /待機シャットダウン

---

mandatory.yaml

リスト以上のコレクション

イングレス - nginxの展開

kubectl apply -f mandatory.yaml


参照文献:

https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/baremetal.md

https://blog.csdn.net/bbwangj/article/details/82940419

おすすめ

転載: www.cnblogs.com/hyl8218/p/12024335.html