# # # # # # # # # # # # # # # # #

過去4年間,Kubernetes用の入口NGINX控制器をデプロイしたい人は执掌プロジェクトで管理されている稳定的掌舵图nginx-ingress> > > > > > > > > > >

★★★★★★★★★★★★リポジトリはリバースプロキシやロードバランサーとして使用されている最も人気のある入口コントローラーであるNGINXだけでなく,すべてのオープンソースのk8アプリのためのものです。

掌舵人3(英文)掌舵稳定的“”“”“”“。2019年(11个月)的英文稳定的> > > > > > > > > > > > > >- - - - - -稳定的★★★★★★★★★★★★★★★★★★★★★★

?NGINX通情达理ingress-nginx执掌图表。NGINX入口控制器のデプロイメントをインストールおよび更新する場合はこのリポジトリの图表を使用してください。

★★★★★★★★★★★★★★★★★★★★★★★★★★★稳定的★★★★★★★★英文:中文:中文:中文:英文:中文:英文:中文:英文:中文:英文:中文:英文:中文:

ここではどのような機能があるのか,またJFrog ChartCenterが移行に際してどのようにして役立つのかを見てみましょう。

Helm(头盔)

稳定的な执掌图表は人気のある多数のKubernetesアプリの公式图表を常にセントラル・リポジトリで見つけることができることを意味していました。Helm(掌舵人稳定的【中文译文】

美元Helm repo添加稳定https://kubernetes-charts.storage.googleapis.com/

この単一の稳定的掌舵图nginx-ingress

稳定的リポジトリはほぼ陳腐化しているため,既知の执掌图表唯一のソースとしては利用できなくなっています。NGINX, Helm,ingress-nginxを追加するように指示するようになっています:

美元添加ingress-nginx https://kubernetes.github.io/ingress-nginx

セントラル・リポジトリがなければ別のk8アプリを維持する度に別の舵手回购

? ? ? ?

图表中心,入口NGINX

JFrog ChartCenterは执掌コミュニティによって変更不可であり,安全で信頼性の高い图表を見つけ,1つの場所からすべての图表をプロキシするための信頼できる唯一の情報源を持つために構築された無料の掌舵图啊哈!执掌クライアントから1つの执掌セントラル・リポジトリとして使用できるので,多数公開されている执掌リポジトリを追加する必要がなく,代わりに1つだけを利用することができます。

30000年ChartCenterを通してバージョン以上の执掌图表が利用可能であり,NGINX入口コントローラーを含む多数の人気のあるアプリ图表がホームページに掲載されているため,容易に検索できます。

图表中心稳定的执掌图表からnginx-ingress【中文】:

图表中心当前的图表ingress-nginx> > > > > > > > > >

图表中心

一度,ChartCenterを执掌クライアントに追加すると我々のデモで使用するNGINXリポジトリの両方を含む全てを执掌图表セントラル・リポジトリとして使用することができます。

图表中心(ChartCenter

执掌クライアントを設定し,ChartCenterリポジトリを単一のセントラルロケーションとして图表が使用できるように設定します:

美元Helm repo添加中心https://repo.chartcenter.io

美元Helm repo添加中心https://repo.chartcenter.io美元Helm回购更新

(图表中心

掌舵nginx-ingressingress-nginx> > > > > > > >

美元Helm search repo center/stable/nginx-ingress名称图表版本应用版本说明center/stable/nginx- Ingress 1.41.2 v0.34.1 nginx Ingress控制器使用ConfigMap…美元Helm search repo center/kubernetes-ingress-nginx/ingress-nginx名称图表版本应用版本说明center/ Kubernetes - Ingress - NGINX / Ingress - NGINX 2.11.2 0.34.1 Kubernetes使用NGINX的入口控制器…

图表中心UI。

そして,ここでは異なる执掌リポジトリからの图表を1つの执掌セントラル・リポジトリで利用することがいかに簡単なのかが分かります。

掌舵图,

アップグレードをテストするためにnginx-ingress图表。小さなシェルスクリプトnginx-ingress.sh> > > > > > > > > > > >nginx-ingress

nginx-ingress.sh:

#!/bin/bash CHART_NAME="center/stable/nginx-ingress" CHART_VERSION="1.41.2" RELEASE=nginx-ingress NAMESPACE=nginx-ingress VALUES_FILE=nginx-ingress. shyaml LB_STATIC_IP=35.197.192.35 generatevalvalues () {cat << EOF > "${VALUES_FILE}" #覆盖nginx-ingress控制器的值:##使用主机端口80和443 daemonset: useHostPort: true kind: daemonset服务:##为LoadBalancer设置静态IP loadBalancerIP: ${LB_STATIC_IP} externalTrafficPolicy: Local stats: enabled: true metrics: enabled:true EOF} generatevalvalues kubectl create ns nginx-ingress || true echo helm upgrade——install ${RELEASE} -n ${NAMESPACE} ${CHART_NAME}——version ${CHART_VERSION} -f ${VALUES_FILE} echo kubectl -n ${NAMESPACE} get all

nginx-ingress.sh【中文】nginx-ingressをインストールしてみましょう:

美元。/ nginx-ingress.shnamespace/nginx-ingress created Release不存在。现在正在安装。NAME: nginx-ingress最后部署:Mon Aug 10 17:27:13 2020 NAMESPACE: nginx-ingress STATUS:已部署REVISION: 1 TEST SUITE:无备注:nginx-ingress控制器已安装。LoadBalancer IP可用可能需要几分钟的时间。您可以通过执行'kubectl——namespace nginx- Ingress get services -o wide -w nginx- Ingress -controller'查看状态一个使用控制器的Ingress示例:apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ Ingress .class: nginx name: example namespace: foo spec: rules: - host: www.example.com http: paths: - backend: serviceName: exampleService servicePort: 80 path: / #只有当Ingress TLS启用TLS时才需要本节:—hosts:—www.example.com secretName: example-tls如果入口启用了TLS,还需要提供包含证书和密钥的Secret: apiVersion: v1 kind: Secret metadata: name: example-tls namespace: foo data: TLS。crt: tls。关键字:类型:kubernetes。io/tls NAME READY STATUS重启AGE pod/nginx-ingress-controller-rrsl9 0/1 ContainerCreating 0 1s pod/nginx-ingress-default-backend-5b967cf596-wrrfl 0/1 ContainerCreating 0 1s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/nginx-ingress-controller LoadBalancer 10.242.2.213 80:30643/TCP,443:31622/TCP 2s service/nginx-ingress-controller-metrics ClusterIP 10.242.10.112 9913/TCP 2s service/nginx-ingress-default-backend ClusterIP 10.242.11.172 80/TCP 2s NAME DESIRED CURRENT READY - latest可用节点选择器年龄守护进程。apps/nginx-ingress-controller 1 10 10 10 s NAME READY - updated AVAILABLE AGE部署。apps/nginx-ingress-default-backend 0/1 0 0 s NAME期望当前就绪年龄的复制集。Apps /nginx-ingress-default-backend-5b967cf596

★★★★★★★★★★★★★★★★

美元Kubectl -n nginx-ingress get pods名称READY STATUS重启AGE nginx-ingress-controller-rrsl9 1/1运行0 78s nginx-ingress-default-backend-5b967cf596-wrrfl 1/1运行0 78s $Kubectl -n nginx-ingress获取SVC名称类型CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ingress-controller LoadBalancer 10.242.2.213 35.197.192.35 80:30643/TCP,443:31622/TCP 89s nginx-ingress-controller-metrics ClusterIP 10.242.10.112 9913/TCP 89s nginx-ingress-default-backend ClusterIP 10.242.11.172 80/TCP 89s

NGINX入口コントローラーPodが起動し,ロードバランサーで外部IPが割当てられました。

nginx-ingress图表:。

掌舵图,

NGINX入口控制器のアップグレードを最新の图表を利用して実施しましょう。

ingress-nginx.sh

ingress-nginx.shは图表名とバージョンは異なりますが执掌のリリース名とロードバランサーの静的IPは同じです。

#!/bin/bash CHART_NAME="center/kubernetes-ingress-nginx/ingress-nginx" CHART_VERSION="2.11.1" RELEASE=nginx-ingress NAMESPACE=nginx-ingress VALUES_FILE=ingress-nginx. confyaml LB_STATIC_IP=35.197.192.35 generatevalvalues () {cat << EOF > "${VALUES_FILE}" #覆盖ingress-nginx控制器的值:##使用主机端口80和443 hostPort: enabled: true kind: DaemonSet服务:##为LoadBalancer设置静态IP loadBalancerIP: ${LB_STATIC_IP} externalTrafficPolicy: Local stats: enabled: true metrics: enabled: true admissionWebhooks: enabled: false defaultBackend: enabled:true EOF} generatevalvalues echo helm upgrade——install ${RELEASE} -n ${NAMESPACE} ${CHART_NAME}——version ${CHART_VERSION} -f ${VALUES_FILE} echo kubectl -n ${NAMESPACE} get all

ingress-nginx.shnginx-ingress.sh> > > > > > > > > > >

控制器:##使用主机端口80和443 daemonset: useHostPort: true

★★★★★★★★★

controller: ##使用主机端口80和443 hostPort: enabled: true kind: DaemonSet

★★★★★★★★★

admissionWebhooks: enabled: false defaultBackend: enabled: true

★★★★★★★★★★★admissionWebhooks★★★★★★★★nginx-ingressの图表ではデフォルトで有効になっていますがdefaultBackend? ? ? ? ?もちろん,必要に応じて値を微調整することができます。

ingress-nginx.sh【中文】nginx-ingressをアップグレードしてみましょう:

版本“nginx-ingress”已升级。稳住快乐!NAME: nginx-ingress最后部署:星期一8月10日18:00:31 2020 NAMESPACE: nginx-ingress STATUS:已部署REVISION: 2 TEST SUITE:无备注:已经安装了ingress-nginx控制器。LoadBalancer IP可用可能需要几分钟的时间。你可以通过命令kubectl——namespace nginx-ingress get services -o wide -w nginx-ingress- Ingress -nginx-controller来查看状态。io / v1beta1:导入元数据注释:kubernetes.io / ingress.class: nginx的名字:示例名称空间:foo规范:规则:主持人:www.example.com http:道路:-后端:名:exampleService servicePort: 80路径:/ #如果TLS是本节只需要启用入口TLS:主机:www.example.com secretName: example-tls如果启用了TLS的入口,一个秘密提供的证书和密钥也必须包含:apiVersion: v1:秘密的元数据:名称:示例-tls namespace: foo data: tls。crt: tls。关键字:类型:kubernetes。io/tls名称准备状态重启AGE pod/nginx-ingress-controller-rrsl9 1/1终止0 33m pod/nginx-ingress-default-backend-5b967cf596-wrrfl 0/1终止0 33m pod/nginx-ingress-ingress-nginx-controller-f9ztr 0/1等待0 5s pod/nginx-ingress-ingress-nginx-defaultbackend-845f7cfd46-56grw 1/1运行0 5s名称类型CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/nginx-ingress-controller LoadBalancer 10.242.2.213 35.197.192.35 80:30643/TCP,443:31622/TCP 33mservice/nginx-ingress-ingress-nginx-controller LoadBalancer 10.242.13.184 80:30601/TCP,443:30644/TCP 6s service/nginx-ingress-ingress-nginx-controller-metrics ClusterIP 10.242.12.190 9913/TCP 6s service/nginx-ingress-ingress-nginx-defaultbackend ClusterIP 10.242.11.112 80/TCP 5s NAME DESIRED CURRENT READY - up - AVAILABLE NODE SELECTOR AGE daemonset。apps/nginx-ingress-ingress-nginx-controller 1 1 0 0 0 6s NAME READY - updated AVAILABLE AGE部署。apps/nginx-ingress-ingress-nginx-defaultbackend 1/1 1 1 1 s NAME期望当前就绪年龄的复制集。Apps /nginx-ingress-ingress-nginx-defaultbackend-845f7cfd46 1 1 1 1 6s

豆荚服务:

美元Kubectl -n nginx-ingress get pods名称READY STATUS重启AGE nginx-ingress-ingress-nginx-controller-f9ztr 0/1运行0 34s nginx-ingress-ingress-nginx-defaultbackend-845f7cfd46- 56grow 1/1运行0 34s $Kubectl -n nginx-ingress获取SVC名称类型CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ingress-controller LoadBalancer 10.242.2.213 35.197.192.35 80:30643/TCP,443:31622/TCP 34m nginx-ingress-ingress-nginx-controller LoadBalancer 10.242.13.184 80:30601/TCP,443:30644/TCP 40s nginx-ingress-ingress-nginx-controller-metrics ClusterIP 10.242.12.190 9913/TCP 40s nginx-ingress-ingress-nginx-defaultbackend ClusterIP 10.242.11.112 80/TCP 39s

★★★★★★★★★★★★★★★★★★★★★★★★★★★★

Kubectl -n nginx-ingress获取SVC【中文翻译】:

美元Kubectl -n nginx-ingress获取SVC名称类型CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-ingress-ingress-nginx-controller LoadBalancer 10.242.13.184 35.197.192.35 80:30601/TCP,443:30644/TCP 3m26s nginx-ingress-ingress-nginx-controller-metrics ClusterIP 10.242.12.190 9913/TCP 3m26s nginx-ingress-ingress-nginx-defaultbackend ClusterIP 10.242.11.112 80/TCP 3m25s

すると,古い服务は削除され,kubectlを使った他のコマンドを利用せすに执掌升级★★★★★★★★★★★★★★★★★★★★★★★もちろん、服务を置換する場合は新しい服务のために新しいロードバランサーを作成する必要があるため,ダウンタイムが発生します。

★★★★★★★★

2つの異なる图表間のシームレスなアップグレードを実現してくれたNGINX入口コントローラーの图表メンテナーに感謝します。

。掌舵图ChartCenter


安格尔快乐