バイナリインストールKubernetes(6)KUBEプロキシ部品実装

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.70.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 = 02期待される終了コードのためのプロセス(デフォルト02 
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ステータス
(ライン21上の実行):nginxの-DSポッドを作成します
我々 /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この時点で、次は、追加のコンポーネントを展開します。

おすすめ

転載: www.cnblogs.com/slim-liu/p/11857518.html