イングレス
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
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