echo "${APT_PKG}Verify-Peer "true";"
>> /etc/apt/apt.conf.d/90nginx
&& echo
"${APT_PKG}Verify-Host "true";">>
/etc/apt/apt.conf.d/90nginx
&& echo "${APT_PKG}SslCert
"/etc/ssl/nginx/nginx-repo.crt";" >>
/etc/apt/apt.conf.d/90nginx
&& echo "${APT_PKG}SslKey
"/etc/ssl/nginx/nginx-repo.key";" >>
/etc/apt/apt.conf.d/90nginx
&& printf
"deb ${REPO_URL} stretch nginx-plus"
> /etc/apt/sources.list.d/nginx-plus.list
&& apt-get update && apt-get install -y nginx-plus
&& apt-get remove --purge --auto-remove -y gnupg1
&& rm -rf /var/lib/apt/lists/*
# Forward request logs to Docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log
&& ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 80
STOPSIGNAL SIGTERM
CMD ["nginx", "-g", "daemon off;"]
このDockerfileDockerイメ DockerfileNGINX Plusジト
の証書とキーが含まいるレクで次のコマドを実行し
$ docker build --no-cache -t nginxplus .
This docker build ンド--no-cacheフラ使用して、するたびNGINX
PlusパッNGINX Plusポジリから新し得されるように
す。NGINX Plusで以前のビルと同ージンを使用すとが容される場
は、--no-cacheフ ラ き ま 。こ の Dockerイメ nginxplus
いうタグいています
解説
NGINX Plusに独自のDockerイメ NGINX Plusンテナを適
、任 Docker ロ ッ き ま 。こ よ り NGINX Plus
てのパーと高コンますこのDockerfile
は、DockerfileティADD使て構成んの構成を手動で追加
ります。
項目
NGINXブロ - Dockerイメ
11.5 NGINX Plus Dockerイメ | 125
11.6 NGINX数の使
問題
イメ 使 用 NGINX内で数を使
す。
解決
ngx_http_perl_module 使 用して 環 境 NGINX す。
daemon off;
env APP_DNS;
include /usr/share/nginx/modules/*.conf;
# ...
http {
perl_set $upstream_app 'sub { return $ENV{"APP_DNS"}; }';
server {
# ...
location / {
proxy_pass https://$upstream_app;
}
}
}
perl_set使 るたngx_http_perl_module スト
ありますソーするジュール的ま
こと ります。NGINX環境変数を環境か消去
ま す。削 除 し な い envディティするありperl_set
ディティする名とをレするPerl文字列の2のパラ
す。
以下はngx_http_perl_module ードしパッ ユーティリテ
このジュールインスールするDockerfileす。CentOSパッケジユーティリティ
ジュールインールするジュール/usr/lib64/nginx/ modules/ ィレ
リに配置されこれらのモジを動にロドすァイ/usr/share/
nginx/modules/ レクに配置されまれが前述の構成スニ
パスにべて成フを含める理由です
FROM centos:7
# Install epel repo to get nginx and install nginx
RUN yum -y install epel-release &&
yum -y install nginx nginx-mod-http-perl
# add local configuration files into the image
ADD /nginx-conf /etc/nginx
126 | 11:コ ン テ /イク
EXPOSE 80 443
CMD ["nginx"]
解説
Docker使用場合の一般的方法は、環境変数利用ンテナの動作方法
す。NGINX 変 数 使 用してNGINX Dockerfileを複
使用できるよにすとができます
11.7 Kubernetes Ingressント
問題
プリケーションをKubernetes してIngressント
す。
解決
Ingressコントメーアクこと くだNGINX
は、Docker Hubからのnginx/nginx-ingress イメ 使 用 NGINX Plus
は、独自のイージをプラDockerストリストす
ま す 。独 自 NGINX Plus Kubernetes IngressントNGINX Inc.GitHub
築しシュするするのリン照しくだ
GitHubkubernetes-ingressジトリのKubernetes Ingress Controller Deployments
ください のコはリポジトリのーカルコディ
から実行されま
ingressント ントす。
す:
nginx-ingress:
$ kubectl apply -f common/ns-and-sa.yaml
ingressントTLS 明 書 使 用して ット す。
$ kubectl apply -f common/default-server-secret.yaml
の証書とキーは自署名されてお示目的NGINX Inc.よって
成されていのキーは公に用可あるため独自のキーを使用す
す。
ョンで、NGINXマイズするたマッ
供されている構空白ですが、スタマイズ注釈 しく
):
$ kubectl apply -f common/nginx-config.yaml
11.7 Kubernetes Ingressコント | 127
ラス
ールベーのアクコントロール
(RBAC) っ て 、ク
スタール成して、ービスアカウントにインド
タ管理者でなければなませ
$ kubectl apply -f rbac/rbac.yaml
Ingressコ ン ト ロ イ し 。こ の ト リ DeploymentDaemonSet
2つのデプロト例が用可能にIngressント のレプ
リカするDeployment 使 。す
ット Ingressローラーをデプロる場合には、DaemonSetを使
す。
NGINX Plus Deploymentスト 使 YAML ァ イ 更 し 、独
ストリとイ す。
NGINX Deployment 場 合:
$ kubectl apply -f deployment/nginx-ingress.yaml
NGINX Plus Deployment 場 合:
$ kubectl apply -f deployment/nginx-plus-ingress.yaml
NGINX DaemonSet: 場 合:
$ kubectl apply -f daemon-set/nginx-ingress.yaml
NGINX Plus DaemonSet 場 合:
$ kubectl apply -f daemon-set/nginx-plus-ingress.yaml
Ingressが稼働確認
$ kubectl get pods --namespace=nginx-ingress
DaemonSet成したIngressントート80443コン
稼 働して ップ Ingressコントロにアスす
、こ Ingressント ードIPレス
使 す。Deploymentデプロた場合、の手順に進み
Deploymentッド Ingressコントローラポッドにアクセスするため2
のオプシますIngressコントローラーポドにマNodePortラン
ダムり当てるようにKubernetes す 。こ 、タ NodePortサー
す 。も 1つのオプシイプLoadBalancerービスをするとで
す 。タ イ LoadBalancerービスする場合、Kubernetesは、Amazon Web
ServicesAWS)、Microsoft AzureGoogle Cloud Compute ウド
ォー用のローバラサーを構しま
タイプNodePortービスをするには以下使用します
$ kubectl create -f service/nodeport.yaml
ポッドのたポートをるにYAML 、属 nodePort:
{port} す。
128 | 11:コ /イク
Google Cloud ComputeまたはAzureにタイLoadBalancerのサービスを
このコードを使用します
$ kubectl create -f service/loadbalancer.yaml
Amazon Web ServicesにタイプLoadBalancerのサービスをする
$ kubectl create -f service/loadbalancer-aws-elb.yaml
AWSで、KubernetesPROXYプロコルを有効にTCPードクラELB
す。NGINXPROXY使するようにするあり
、フ common/nginx-config.yamlを参照前述の構成マ
す。
proxy-protocol: "True"
real-ip-header: "proxy_protocol"
set-real-ip-from: "0.0.0.0/0"
、コ ィ グ ッ プ
$ kubectl apply -f common/nginx-config.yaml
で、NodePort使用すわっ成されたローバラサーに
トをとでポッドにアスできま
解説
筆時点ではKubernetes ストンと
トフ Ingressントロトラフィをアョン
ティするポッNGINXは こ の 合 し 、注
使用したプルにしますNGINX Ingress クト Docker Hubイメ
すぐ使 NGINX Open Source Ingress 、い
てリポトリ証書とキ きるNGINX Plus供しますNGINX
Ingress 使 用して Kubernetesクラス するNGINXと同じ
がすべて提されすが、をルーングすためのKubernetesネッ
クとDNS す。
11.8 Prometheus Exporterジュー
問題
Prometheusングを使た環境にNGINX して NGINX
す。
解決
NGINX Prometheus Exporter 使 用してNGINXまたNGINX Plus計を収
し、Prometheus す。
11.8 Prometheus Exporterジュー | 129
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.15.59.163