008.Kubernetes nginxのバイナリデプロイの高可用性

高可用性KUBE-apiserverを達成するために、nginxのプロキシ

1.1 nginxの高可用性

KUBE-apiserver nginxのプロキシベースの高可用性ソリューション。
制御ノードKUBEコントローラマネージャ、KUBE-スケジューラは限り通常の例があるように、高可用性を保証することができ、複数のインスタンスを配備することです。
K8S kubernetesアクセスKUBE-apiserverドメインネームサービスクラスタ用途でポッド、KUBE-DNSは自動的に、よりKUBE-apiserver IPノードを解析し、それはまた、非常に入手可能です。
nginxのプロセス、各ノードからの複数のインスタンスapiserverバックエンドドッキング、彼らは健康チェックと負荷分散を行うためのnginx。
kubeletローカルnginxの(モニタ127.0.0.1)を介して、KUBEプロキシ、コントローラマネージャ、スケジューラKUBE-apiserverアクセス​​、非常に高い可用性KUBE-apiserver。
これによりK8Sノード(マスターノードとワーカーノード)可用性ベースのアクセスKUBE-apiserver nginxの4層透過プロキシ機能を実現します。

nginxのコンパイル1.2のダウンロード

  1 [ルート@ k8smaster01〜]#のCDは/ opt / K8S /仕事
   2 [ルート@ k8smaster01仕事]#wgetコマンドのhttp://nginx.org/download/nginx-1.15.3.tar.gz 
  3 [ルート@ k8smaster01仕事] #タール-xzvfのnginx-1.15.3.tar.gz
   4 [ルート@ k8smaster01〜]#のCD /opt/k8s/work/nginx-1.15.3/
   5 [ルート@ k8smaster01のnginx-1.15.3]#ます。mkdir nginx-プレフィックス
   6 - [ルート@ k8smaster01のnginx-1.15.3]#1は./configure  -stream --without-HTTP --prefix = $(PWD)/ nginxのプレフィックス--without-http_uwsgi_module --without-http_scgi_module - http_fastcgi_module-なし
   7 [ルート@ k8smaster01〜]#のCD /opt/k8s/work/nginx-1.15.3/
   8 [ルート@ k8smaster01のnginx-1.15.3]#メイク&& make installを
説明:
  • --withストリーム透明層4が前方(TCPプロキシ)機能をオン。
  • --without-XXX:すべて閉じ、他の機能、ダイナミックリンクは、このようにバイナリ依存最小値を生成しました。
  • [ルート@ k8smaster01〜]#のCDの/opt/k8s/work/nginx-1.15.3/
  • [ルート@ k8smaster01のnginx-1.15.3]#./nginx-prefix/sbin/nginx -v

nginxのコンパイラ1.3を確認した後

  。1 [k8smaster01ルート@〜] /opt/k8s/work/nginx-1.15.3 CD#
   2 [@ k8smaster01 nginxのルート-1.15.3] -v#./nginx-prefix/sbin/nginx
   3。 nginxのバージョン:nginxの/ 1.15.3
   。4 [@ k8smaster01 nginxのルート-1.15.3] ## LDD ./nginx-prefix/sbin/nginxビューnginxのダイナミック・リンク・ライブラリ
   。5          Linuxベースvdso.so.1 =>(0x00007ffdda980000)
   。6          libdl.so。 = 2> /lib64/libdl.so.2(0x00007feb37300000)
   。7          libpthread.so.0 => /lib64/libpthread.so.0(0x00007feb370e4000)
   。8          libc.so.6と=> /lib64/libc.so.6( 0x00007feb36d17000)
   9          /lib64/ld-linux-x86-64.so.2(0x00007feb37504000)
注:唯一の透明層4転送機能をオンにし、オペレーティング・システム依存のlibcライブラリ外側コアLIBに加えて等、他の(例えばlibzを、のlibsslなど)には依存関係LIBため、コンパイルを合理化する目的を達成するためです。

1.4インストールおよびデプロイnginxの

  1 [ルート@ k8smaster01〜]#のCDは/ opt / K8S /仕事
   2 [ルート@ k8smaster01仕事]#ソース/opt/k8s/bin/environment.sh
   3 [k8smaster01仕事@ルート]# MASTER_IP  $ {MASTER_IPS [@ ]}
   4    行う
  5      エコー" >>> $ {MASTER_IP} "
   6      ます。mkdir -pは/ opt / K8S / KUBE-nginxの/ {confに、ログ、sbinに}
   7    済#创建nginxの目录
   8 [ルート@ k8smaster01〜]#CDを/ OPT / K8S /ワーク
   9 [ルート@ k8smaster01作業]#ソース/opt/k8s/bin/environment.sh
 10 [ルート@ k8smaster01仕事]#ため MASTER_IP  $ {MASTER_IPS [@]}
11は   やる
12      エコー" >>> $ {MASTER_IP} "
 13      の/ opt / K8S / KUBE-nginxの:SCP /opt/k8s/work/nginx-1.15.3/nginx-prefix/sbin/nginxルート@ $ {MASTER_IPを} / sbinに/ KUBE-nginxの
 14      SSHルート@ $ {MASTER_IP} " のchmod A + X / OPT / K8S / KUBE-nginxの/ sbinに/ * "
 15      SSHルート@ $ {MASTER_IP} " ます。mkdir -p / OPT / K8S / KUBE -nginx / {CONF、ログ、sbinに}16    済#分发nginxの二进制

1.5設定Nginxは透過的に前進4

  1 [ルート@ k8smaster01〜]#のCDは/ opt / K8S /仕事
   2 [ルート@ k8smaster01仕事]#猫> KUBE-nginx.conf << EOF
   3 worker_processes 1。
  4つの 
  5イベント{
   6      worker_connections 1024。
  7 }
   8  
  9ストリーム{
 10      上流のバックエンド{
 11          ハッシュ$ REMOTE_ADDR一貫。
12          サーバ172.24.8.71:6443 max_fails = 3 fail_timeout = 30秒。
13          サーバ172.24.8.72:6443 max_fails = 3 fail_timeout = 30秒。
14          サーバ172.24.8.73:6443 max_fails = 3 fail_timeout = 30秒。
15      }
16  
17      サーバ{
 18は          127.0.0.1:8443を聞きます。
19          proxy_connect_timeout 1S;
20          proxy_passバックエンド。
21      }
 22 }
 23 EOF
 24 [ルート@ k8smaster01〜]#のCD / OPT / K8S /ワーク
 25 [ルートk8smaster01作業@]#ソース/opt/k8s/bin/environment.sh
 26 [ルート@ k8smaster01仕事]#ため MASTER_IP  $ {MASTER_IPS [@]}
 27    やる
28      エコー" >>> $ {} MASTER_IP "
 29     KUBE-nginx.conf SCP $ {} MASTER_IP @ルート:/ OPT / K8S / KUBE-nginxの/ CONF / KUBE-nginx.conf
 30    DONE#nginxの4つの透過プロキシ分布プロファイル

1.6設定nginxのシステム

  1 [ルート@ k8smaster01〜]#のCDは/ opt / K8S /仕事
   2 [ルート@ k8smaster01仕事]#猫> KUBE-nginx.service << EOF
   3 [単位]
   4説明= KUBE-apiserverのnginxのプロキシ
   5の後に=ネットワーク。ターゲット
   6 = network-online.target後
   7たい= network-online.target
   8  
  9 [サービス]
 10種類=フォーク
 11 ExecStartPre = / OPT / K8S / KUBE-nginxの/ sbinに/ KUBE-nginxの-c / OPT / K8S / KUBE-nginxの/ CONF / KUBE-nginx.conf -p / OPT / K8S / KUBE-nginxの-t
 12 ExecStart = / OPT / K8S / KUBE-nginxの/ sbinに/ KUBE-nginxの-c / OPT / K8S / KUBE-nginxの/conf/kube-nginx.conf -pは/ opt / K8S / KUBE-nginxの
 13ExecReload = / OPT / K8S / KUBE-nginxの/ sbinに/ KUBE-nginxの-c /opt/k8s/kube-nginx/conf/kube-nginx.conf -p / OPT / K8S / KUBE-nginxの-sリロード
 14 PrivateTmp = 
15を再起動=常に
 16 RestartSec = 5
 17 StartLimitInterval = 0
 18 LimitNOFILE = 65536
 19  
20 [インストール]
 21 WantedBy = multi-user.target
 22 EOF

1.7配布nginxのにsystemd

  1 [ルート@ k8smaster01〜]#のCDは/ opt / K8S /仕事
   2 [ルート@ k8smaster01仕事]#ソース/opt/k8s/bin/environment.sh
   3 [k8smaster01仕事@ルート]# MASTER_IP  $ {MASTER_IPS [@ ]}
   4    行う
  5      エコー" >>> $ {MASTER_IP} "
   6      $ {MASTER_IP} @ SCPのKUBE-nginx.serviceルート:の/ etc /にsystemd /システム/
   7    行わを

二つの開始と検証

2.1スタートnginxの

  1 [ルート@ k8smaster01〜]#のCDは/ opt / K8S /仕事
   2 [ルート@ k8smaster01仕事]#ソース/opt/k8s/bin/environment.sh
   3 [k8smaster01仕事@ルート]# MASTER_IP  $ {MASTER_IPS [@ ]}
   4    行う
  5の      エコー" >>> $ {MASTER_IP} "
   6      $ {MASTER_IP} "@ SSHルートsystemctlデーモンリロード&& KUBE-nginxの&& systemctl再始動KUBE-nginxのを有効systemctl "
   7    行います

2.2サービスのチェックnginxの

  1 [ルート@ k8smaster01〜]#のCDは/ opt / K8S /仕事
   2 [ルート@ k8smaster01仕事]#ソース/opt/k8s/bin/environment.sh
   3 [k8smaster01仕事@ルート]# MASTER_IP  $ {MASTER_IPS [@ ]}
   4    行う
  5の      エコー" >>> $ {MASTER_IP} "
   6      $ {MASTER_IP} @ sshのルート" systemctl状態KUBE-nginxの| grepの'アクティブ:' "
   7が    行われ
クリップボード

おすすめ

転載: www.cnblogs.com/itzgr/p/11870994.html