KUBE-プロキシDESCRIPTION
参考文献:
https://ywnz.com/linuxyffq/2530.html
各ノード上で実行されている、モニターは、サービスAPI Serverオブジェクトに変更し、iptablesのによって転送を実装するネットワーク管理
KUBE-プロキシは現在、3つのモードがサポートされています。
- ユーザ空間
- 後に除去されたV1.2 K8S
- iptablesの
- 現在、デフォルト
- IPVS--勧告は、支持層7
- ipvsadmのインストールする必要があり、ipsetキットおよびロードカーネルモジュールip_vs
KUBE-プロキシはhdss7-22に、hdss7-21を展開しました。
まずipsetをインストールし、ipvsadmの
#yumを インストール ipset -y
ipvsadインストール#yumを-y
そしてhdss7-200上の証明書に適用されます。
#我々 /opt/certs/kube-proxy-csr.json
{ " CN ":" システム:KUBEプロキシ" 、 " キー" :{ " アルゴ":" RSA " 、 " サイズ":2048 }、 " 名前" :[ { " C ":" CN " 、 " ST ":" 北京" 、 " L ":" 北京" 、 " O ":" OD " 、 " OU ":" OPS " } ] }
#cfssl gencertを-ca = ca.pem -ca-キー= CA-key.pem -config = CA-config.json -profile =クライアントKUBE-プロキシcsr.json | cfssl-JSON -bare KUBE-プロキシクライアント
21に証明書をコピーします。
#CDの/ opt / kubernetes /サーバー/ binに/ CERT / #scpコマンド hdss7- 200:/opt/certs/kube-proxy-client-key.pem ./ #scpコマンド hdss7- 200:は/ opt / certsの/ KUBE-proxy- client.pem ./
構成:
#カドミウムは/ opt / kubernetes /サーバー/ binに/ confに
#kubectl設定セット- クラスタmyk8s \ --certificate-権限=は/ opt / kubernetes /サーバー/ binに/ CERT / ca.pem \ --embed-certsの= 真\ --server = HTTPS:// 10.4.7.10:7443 \ --kubeconfig = KUBE-proxy.kubeconfig
#kubectl設定セットの資格情報kube- プロキシ\ --client-証明書=は/ opt / kubernetes /サーバー/ binに/ CERT / KUBE-proxy- にclient.pem \ --clientキー=は/ opt / kubernetes /サーバー/ binに/ CERT / KUBE-プロキシクライアント- key.pem \ --embed-certsの= 真\ --kubeconfig = KUBE-proxy.kubeconfig
#kubectl設定セットのコンテキストmyk8s- コンテキスト\ --cluster = myk8s \ --user = kube- プロキシ\ --kubeconfig = KUBE-proxy.kubeconfig
#kubectl設定を使用-コンテキストmyk8s-コンテキスト--kubeconfig = KUBE-proxy.kubeconfig
編集オープンIPVSカーネルスクリプト:
#私たちは /ルート/ IPVS。SH #!/ binに/ bashの ipvs_mods_dir = " は/ usr / libに/モジュール/ $(のuname -r)/カーネル/ネット/ netfilterの/ IPVS " のための私で $(lsの $ ipvs_mods_dir | grepの -o " ^ [^] * " ) を行う / sbinに/ modinfo -Fファイル名$ I&>は/ dev / nullの 場合は [$?-eq 0 ]; その後、 / sbinに/ modprobeの$ I fiが 行われ
#chmodの U + X /ルート/ IPVS。SH
#SH /ルート/ IPVS。SH
編集KUBE-プロキシの起動スクリプト:IPに応じて変更の赤い部分
#私たちは/ opt / kubernetes /サーバー/ binに/ KUBEプロキシ。SH
#!/ binに/ shを 。/ kube- プロキシ\ --cluster-CIDR 172.7。0.0 / 16 \ - ホスト名 -override hdss7-21 .host.com \ --proxy-モード= IPVS \ --ipvs-スケジューラ= NQ \ --kubeconfig ./conf/kube-proxy.kubeconfig
権限を実行し、ログ格納ディレクトリを作成します。
#chmodの + Xは/ opt / kubernetes /サーバー/ binに/ KUBE-プロキシ。SH
#ます。mkdir -p /データ/ログ/ kubernetes / KUBE-プロキシ
Supervisord編集スタートアップファイル:の赤い部分IPに応じて変更
#我々 /etc/supervisord.d/kube-proxy.ini
[プログラム:KUBE-プロキシ-7-21 ] コマンド =は/ opt / kubernetes /サーバー/ binに/ KUBE-プロキシ。SH ; プログラム(相対的な使用のPATHは、引数を取ることができます) numprocsの = 1 。開始するプロセスの部数(DEF 1 ) ディレクトリ =は/ opt / kubernetes /サーバー/ binに。前のexecにCWDのディレクトリ(デフなしCWD) 自動 = 真 ; supervisordの開始時に開始する(デフォルト:真) 自動再 = 真 ; 予想外のretstartが終了します(デフォルト:真) startsecs = 30 。秒のPROGの数が動作していなければならない(DEF。1 ) startretries = 3 。シリアルスタートの失敗の最大#(デフォルト3 ) exitcodes = 0、2 。「期待される」終了コードのためのプロセス(デフォルト0、2 ) stopsignal = QUIT; するために使用される信号殺すプロセスを(デフォルトのTERM) stopwaitsecs = 10 。する最大のnum秒待つ B4 SIGKILLを(デフォルト10 ) ユーザー = ルート。プログラムを実行するには、このUNIXアカウントにsetuidを redirect_stderr = 真 ; stdoutにリダイレクトのproc標準エラー出力(デフォルトはfalse ) stdout_logfile = /データ/ログ/ kubernetes / KUBE-プロキシ/ proxy.stdout.log。標準エラー出力ログ・パス、NONE 用なし。デフォルトAUTO stdout_logfile_maxbytes = 64メガバイト。最大#ログファイルのバイトB4回転(デフォルトの50メガバイト) stdout_logfile_backups = 4 。標準出力ログファイルのバックアップ(デフォルトの#10 ) stdout_capture_maxbytes = 1メガバイト。バイト数で 「capturemode 」(デフォルト0 ) stdout_events_enabled = 偽 ; EMIT標準出力への書き込みのイベント(デフォルトはfalse)
アップデートはsupervisord:
#supervisorctl更新
#supervisorctlステータス
#我々 /root/nginx-ds.yaml
apiVersion:拡張/ v1beta1 種類:DaemonSet メタデータ: 名前:nginxの - DS スペック: テンプレート: メタデータ: ラベル: アプリ:nginxの - DS スペック: コンテナ: -名前:my- nginxの 画像:harbor.od.com /公共/ nginxの:V1。7.9 ポート: - containerPort:80
#-f nginxの-ds.yamlを作成kubectl
見ます:
#kubectl GETポッド
最後に、クラスタの状態を確認します。
etcdコントローラマネージャスケジューラのステータス:
CSを得る#kubectl
ステータスのノード:
#kubectl GETノード
ポッドの状態:
#kubectl GETポッド
展開が完了したコアコンポーネントがインストールされているkubernetsこの時点で、次は、追加のコンポーネントを展開します。