Kubernetes(K8S)(B) - Kubernetesコンテナのクラスタ管理システムを構築します

(1)構成の説明

ノードロール IPアドレス CPU メモリ
マスター、etcd 192.168.128.110 4コア 2G
ノード1 / minion1 192.168.128.111 4コア 2G
ノード2 / minion2 192.168.128.112 4コア 2G

(2)。Kubernetesビルドコンテナクラスタ管理システム

 1)3つのホストは、共通のソフトウェアパッケージをインストールします

  bashの補完を押し、<Tab>キーパッド入りのを引き起こす可能性があり、VIMのviエディタは、アリ雲のyumソースドキュメントをダウンロードするためにwgetをアップグレードされます。

#yumを-yインストールbashの補完vimのwgetの

 2)三ホスト構成アリ雲のyumソース

#MKDIR /etc/yum.repos.d/backup 
#mvの/etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 
#wgetの-O /etc/yum.repos.d/ CentOSの-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
#yumはすべて&& yumのリストをきれいに

 3)hostsファイルを変更します

[ルート@ KUBE-マスター〜]#vimの/ etc / hostsファイル
192.168.128.110 KUBE-マスター
192.168.128.110がetcd 
192.168.128.111 KUBE-node1の
192.168.128.112 KUBE-ノード2 
[ルート@ KUBE-マスター〜]#のSCP / etc / hostsファイルを192.168.128.111:/etc/ 
#1 SCPの/ etc / hosts [KUBE-マスター〜@ルート] 192.168.128.112:/etc/

 4)とマスターノードと構成etcdにアセンブリ取付

  マスターノードK8S上のコンポーネントをインストールします。

[ルート@ KUBE-マスター〜]#yumをインストール-y kubernetes etcdフランネルNTP

  対応するポートのファイアウォールやオープンK8Sコンポーネントをオフにし、ETCDのデフォルトポート2379、デフォルトのポート8080ページ

[ルート@ KUBE-マスター〜]#systemctlの停止firewalld && systemctl無効firewalld 
削除。シンボリックリンク/etc/systemd/system/multi-user.target.wants/firewalld.service。
取り外したシンボリックリンク/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service。

#添加端口方法
[ルート@ KUBE-マスター〜]#ファイアウォール-CMD --permanent --zone =公共--add-ポート= {2379,8080} / TCPの
成功
[ルート@ KUBE-マスター〜]#ファイアウォール-CMD --reload 
成功
[ルート@ KUBE-マスター〜]#ファイアウォール-CMD --zone =公共--list-ポート
2379 / TCP 8080 / TCP

  設定ファイルを変更し、見始めるEtcd

[KUBEルートマスター@〜]#Vimの/etc/etcd/etcd.conf 
ETCD_DATA_DIR = "の/ var / libに/ ETCD / default.etcd"ライン#3、データ格納ディレクトリで
ETCD_LISTEN_CLIENT_URLS =「のhttp:// localhostを: 2379 http://192.168.128.110:2379「#最初の6行は、外国サービスのリスニング・アドレス、デフォルトポート2379をetcd。0.0.0.0へのセットは、すべてのインタフェースで待機した場合
ETCD_NAME =「デフォルト」#9号線、ノード名。ストレージクラスタは、ノードを1つだけ持っている場合は、この1つは注釈を付けることができ、デフォルトはデフォルトです。
ETCD_ADVERTISE_CLIENT_URLS = "http://192.168.128.110:2379" #21行である
&&#1 systemctlスタートETCD ETCDが有効systemctl [ルートKUBE-マスター@〜] 
シンボリックリンク/etc/systemd/system/multi-user.target.wantsから作成。/usr/lib/systemd/system/etcd.service /etcd.serviceに
[ルート@ KUBE-マスター〜]#systemctlステータスETCD 
●etcd.service - ETCDサーバー 
   ロード:ロードされたディレクトリ(/ usr / libに/にsystemd /システム/ etcd.service;有効;ベンダープリセット:
   アクティブ:アクティブ(ランニング)二2020年1月14日夜02時02分31秒CST以来。前11min 
   のcgroup:/system.slice/etcd.service 
           └─12573は/ usr / binに/ etcd --name =デフォルト--data-dirを=の/ var / libに/ etcd / default.etcd --listen-クライアントのURL = http:// localhostを:2379は、http://192.168.128.110:2379年

1月14夜02時02分31秒KUBE-マスターetcd [12573]:raft.node:用語で8e9e05c52164694d選出されたリーダー8e9e05c52164694d 2 
1月14 14時02分:31 KUBEマスターetcd [12573]:3.3クラスタの初期バージョンをセットアップ
1月14 14時02分31秒KUBEマスターetcd [12573]:3.3に初期クラスタバージョンを設定
1月14 14時02分31秒KUBE -master etcd [12573]:バージョン3.3用の有効な機能
クラスタcdf818194e3a8c32に公開{[http://192.168.128.110:2379]名:::デフォルトClientURLs} 1月14夜02時02分31秒KUBEマスターetcd [12573]
1月14午後02時02分31秒KUBE-マスターetcd [12573]:クライアント要求にサービスを提供する準備ができて
1月14午後02時02分31秒KUBE-マスターetcd [12573]:奉仕する準備ができて、クライアントの要求 
TCP 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 12573 / etcd          
1月14夜02時02分31秒KUBE-マスターetcd [12573]:192.168.128.110:2379に安全でないクライアント要求にサービスを提供する、これは強くお勧めします!
1月14夜02時02分31秒KUBE-マスターetcd [12573]:127.0.0.1:2379に安全でないクライアント要求にサービスを提供する、これは強くお勧めします!
1月14夜02時02分31秒KUBE-マスターにsystemd [1]:開始Etcdサーバー。
[KUBE-マスター@ルート〜]#yumを-yネットツールをインストール#需要使用到网络工具
[KUBE-マスター@ルート〜]#netstatの-antupは| 2379 grepする
0 0 192.168.128.110:2379 0.0.0.0:*は12573 / etcd LISTEN TCPを           
0 0 192.168.128.110:2379 192.168.128.110:49240 12573 / etcd確立されたTCPを           
0 0 127.0.0.1:2379 127.0.0.1:35638確立されたTCP 12573 / etcd           
0 0 192.168.128.110:49240 192.168.128.110:2379 12573 / etcd確立されたTCPを           
TCPを0 0 127.0.0.1:35638 127.0.0.1:2379 12573を設立します/ etcd 
[ルートKUBE-マスター@〜]#etcdctlクラスタ健康检查etcdクラスタ状态
メンバー8e9e05c52164694dが健全である:http://192.168.128.110:2379から得た健康的な結果
クラスタは健康である
[ルート@ KUBE-マスター〜]#のetcdctlメンバーリスト检查etcd集群成员
8e9e05c52164694d:名=デフォルトpeerURLs =のhttp:// localhostを:2380 clientURLs =のhttp://192.168.128.110:2379 isLeader =真

  汎用的な設定ファイルは、マスターを変更します

[KUBEルートマスター@〜]#のVimの/ etc / Kubernetes /コンフィグ
KUBE_LOGTOSTDERR =「 - = logtostderr真の」エラーが標準に出力されない場合は標準エラーにエラーログは、ファイルに記録されているか否か行#13、
KUBE_LOG_LEVEL = "--v = 0" #ライン16、ログランク
KUBE_ALLOW_PRIV = " -許可権限= false"を#1 行19、容器が特権で実行できるようにするかどうか、偽の表現は許さない
「= KUBE_MASTERを-マスター=のhttp: / /192.168.128.110:8080「#ライン22

  APIサーバーの設定ファイルを変更します。

[KUBE-マスター〜@ルート]#のvimの/ etc / Kubernetes / apiserver 
KUBE_API_ADDRESS = " -安全でないバインドアドレス= 0.0.0.0で、"すべてのポートの上のライン#8、APIサーバーのリッスン
- etcd-サーバ= KUBE_ETCD_SERVERS =」 http://192.168.128.110:2379 "#ライン17、etcd格納アドレス
KUBE_SERVICE_ADDRESSES =" -サービスクラスタ- IP-範囲= 10.254.0.0 / 16「#1 ライン20、IPアドレス範囲は、提供しますポッドと-サービス
#デフォルトのアクセス・モジュールは、以下のことができます:NamespaceLifecycle、NamespaceExists、LimitRanger、SecurityContextDeny、ServiceAccount、ResourceQuota 
KUBE_ADMISSION_CONTROL = -モジュールへのアクセスを可能にする"アドミッション制御-AlwaysAdmit =" #ライン23は、本明細書中に限定されません。
KUBE_API_ARGS = "" #ライン26

  コントローラマネージャの設定ファイルを変更する必要はありません、あなたが見ることができます

[ルート@ KUBEマスター〜]#VIMの/ etc / kubernetes /コントローラマネージャ
KUBE_CONTROLLER_MANAGER_ARGS = "" 
[ルート@ KUBEマスター〜]#RPM -qfの/ etc / kubernetes /コントローラマネージャ
kubernetesマスター-1.5.2- 0.7.git269f928.el7.x86_64

  構成ファイルを変更スケジューラ

[ルート@ KUBE-マスター〜]#のvimの/ etc / kubernetes /スケジューラ
KUBE_SCHEDULER_ARGS = " -アドレス= 0.0.0.0"

  プロファイルの修正flanneld(オーバレイネットワーク)

[KUBEルートマスター@〜]#のVimの/ etc /のsysconfig / flanneld 
FLANNEL_ETCD_ENDPOINTS = "http://192.168.128.110:2379"行で#4、etcd格納アドレス
FLANNEL_ETCD_PREFIX = "/ K8S /ネットワーク" #1 ライン8、 etcdストレージの構成ディレクトリ
FLANNEL_OPTIONS = " -のiface = ens33" #の通信の物理NICを指定する行11、
[KUBEルートマスター@〜]#ます。mkdir -p / K8S /ネットワーク
[KUBEルートマスター@〜]#のetcdctlのSET / K8S /ネットワーク/ configの'{ "ネットワーク": "10.255.0.0/16"}' #の塗りつぶしIP範囲
{ "ネットワーク": "10.255.0.0/16"} 
[KUBEルートマスター@〜]# etcdctl GET / K8S /ネットワーク/コンフィグ # このように、ドッキングウィンドウの背後にあるノードで実行されているflanneldノードが自動的にIPアドレスを取得する
{「ネットワーク」:「10.255.0.0/16」を} 
[KUBEルートマスター@〜]#systemctl flanneldを開始&&flanneld有効systemctl 
/etc/systemd/system/multi-user.target.wants/flanneld.serviceから/usr/lib/systemd/system/flanneld.serviceするために作成したシンボリックリンクを。
/usr/lib/systemd/system/flanneld.serviceに/etc/systemd/system/docker.service.wants/flanneld.serviceからシンボリックリンクを作成しました。
[ルート@ KUBE-マスター〜]#IP Aのsh#成功
...... 
3:flannel0:500 QLEN <POINTOPOINT、マルチキャスト、NOARP、UP、LOWER_UP> MTU 1472のqdisc pfifo_fast状態UNKNOWNグループのデフォルト
    リンク/なし
    10.255 INET .29.0 / 16スコープグローバルflannel0の
       valid_lftは永遠にpreferred_lft永遠
    のinet6 FE80 :: 723e:875f:5995:76d0 / 64スコープリンクフラグ800 
       valid_lft永遠preferred_lft永遠に

  再起動マスターのAPIサーバー、コントローラーマネージャとスケジューラ、およびポストを設定します。注:あなたが個別に各アセンブリの設定を操作することができ、操作が改訂され、使い捨てすることができます。

[ルート@ KUBE-マスター〜]#systemctl再起動KUBE-apiserver KUBE-コントローラマネージャKUBE-スケジューラ
[ルート@ KUBE-マスター〜]#KUBE-apiserver KUBE-コントローラマネージャKUBE-スケジューラ有効systemctl 
からの/ etc作成したシンボリックリンクを/ /usr/lib/systemd/system/kube-apiserver.serviceにsystemdに/システム/マルチuser.target.wants / KUBE-apiserver.service。
/usr/lib/systemd/system/kube-controller-manager.serviceに/etc/systemd/system/multi-user.target.wants/kube-controller-manager.serviceからシンボリックリンクを作成しました。
/usr/lib/systemd/system/kube-scheduler.serviceに/etc/systemd/system/multi-user.target.wants/kube-scheduler.serviceからシンボリックリンクを作成しました。

 5)ノード1 / minion1ノードおよび構成にコンポーネントをインストール

  K8Sは、ノード1 / minion1ノード上のコンポーネントをインストールします

[ルート@ KUBE-ノード1〜]#yumを-y kubernetesフランネルNTPをインストール

  近くK8Sまたはポート、対応するファイアウォールコンポーネント開くKUBE-プロキシデフォルトポート10249、kubeletデフォルトポート10248,10250,10255を

[ルート@ KUBE-ノード1〜]#systemctlの停止firewalld && systemctl無効firewalld 
削除。シンボリックリンク/etc/systemd/system/multi-user.target.wants/firewalld.service。
取り外したシンボリックリンク/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service。

  ここで使用するネットワーク構成は、(オーバーレイネットワーク)flanneld、その後、再起動し、設定されたブート甲斐flaneldから

[KUBE @ルート・ノード1〜]#のVimの/ etc /のsysconfig / flanneld 
FLANNEL_ETCD_ENDPOINTS = "http://192.168.128.110:2379" #etcd格納アドレス
FLANNEL_ETCD_PREFIX = "/ K8S /ネットワーク" #etcd ストアディレクトリの
「= FLANNEL_OPTIONS - IFACE = ens33「物理NIC#を使用して通信
[KUBE @ルート・ノード1〜] &&#systemctl systemctl有効に再起動flanneldはflanneld 
/etc/systemd/system/multi-user.target.wants/flanneld.serviceからのシンボリックリンクは/ usrに作成されました/lib/systemd/system/flanneld.service。
/etc/systemd/system/docker.service.wants/flanneld.serviceから/usr/lib/systemd/system/flanneld.serviceするために作成したシンボリックリンク。

  修正K8S一般的な構成

【KUBE @ルート・ノード1〜]#のVimの/ etc / Kubernetes /コンフィグ
KUBE_MASTER = "--master = HTTP://192.168.128.110:8080" #、ライン22、点マスターノード

  ルックKUBE-プロキシ、デフォルトではすべてのIPを監視するので、そのように修飾することはありません。

[KUBE @ルート・ノード1〜] -v#grepを'^#'の/ etc / Kubernetes /プロキシ
KUBE_PROXY_ARGS = "" #デフォルトでは、すべてのIPを聞きます

  Kubeletは、設定ファイルを変更します。説明:KUBELET_POD_INFRA_CONTAINERポッドベースイメージ指定されたアドレス。これは、ベースイメージが、それはこの画像は次いでkubelet外部ネットワークは、画像をダウンロードし、ローカルでない場合、各ミラーPODが開始そこを通ってコンテナを生成するために開始されています。

[@ KUBEルートノード1〜]#のVimの/ etc / Kubernetes / kubelet 
KUBELET_ADDRESS = " - 0.0.0.0アドレス=" kubectl kubeletへのリモート接続、およびビューポッドとして使用される#線5、全てのIPモニタ、コンテナ・ステータス・
KUBELET_HOSTNAME = - #11行目"ホスト名オーバーライド= kube-ノード1"、 ホスト名、速度変更
KUBELET_API_SERVER = "--api-サーバ=のhttpを ://192.168.128.110:8080" # 14ライン、ポイントサーバーAPIの
KUBELET_POD_INFRA_CONTAINER = " -インフラ-POD-画像、コンテナ= registry.access.redhat.com / rhel7 /インフラ-POD:最新の"ライン#17、ベースイメージ指定されたアドレスポッド
KUBELET_ARGS = "" 20行

  再起動KUBE-プロキシ、kubeletとドッキングウィンドウ(実際には、起動しませんでした)、そしてカイからの起動を設定します

[ルート@ KUBE-ノード1〜]#systemctl再起動KUBE-プロキシkubeletドッキングウィンドウ
[ルート@ KUBE-ノード1〜] KUBE-プロキシkubeletドッキングウィンドウ有効systemctl#
/etc/systemd/system/multi-user.target.wants/から作成されたシンボリックリンクを/usr/lib/systemd/system/kube-proxy.serviceにKUBE-proxy.service。
/usr/lib/systemd/system/kubelet.serviceに/etc/systemd/system/multi-user.target.wants/kubelet.serviceからシンボリックリンクを作成しました。
/usr/lib/systemd/system/docker.serviceに/etc/systemd/system/multi-user.target.wants/docker.serviceからシンボリックリンクを作成しました。

  チェック

[ルート@ KUBE-ノード1〜]#をshのIP 
...... 
3:flannel0:<POINTOPOINT、マルチキャスト、NOARP、UP、LOWER_UP> MTU 1472のqdisc pfifo_fast状態UNKNOWNグループのデフォルト500 QLEN 
    リンク/なし
    INET 10.255.42.0 / 16スコープグローバルflannel0の
       永久preferred_lft valid_lft永久
    INET6 FE80 :: a721:7a65:54ea:/ 64スコープリンクフラグC2B 800 
       preferred_lft永久永久valid_lft 
4:docker0 <NO-CARRIER、ブロードキャスト、マルチキャスト、UP> MTU 1500なqdisc NOQUEUE状態DOWNグループのデフォルトの
    リンク/エーテル02:42:5C:図5b:AE:8C BRD FF:FF:FF:FF:FF:FF 
    INET 10.255.42.1/24スコープグローバルdocker0の
       永遠に永遠にpreferred_lft valid_lft 
[ルート@ KUBE-ノード1〜] #yumを-yネットツールをインストール
[ルート@ノード1〜]#netstatの-antup | grepのプロキシ 
TCP 0 0 192.168.128.111:55351 192.168.128.110:8080設立します1698 / kubelet        
TCP 0 0 127.0.0.1:10249 0.0.0.0:* 1473 /プロキシ聞く      
TCPを0 0 192.168.128.111:55342 192.168.128.110:8080設立1473 /プロキシ      
TCP 0 0 192.168.128.111:55344 192.168.128.110: 8080設立1473 /プロキシ
[ルート@ノード1〜]#netstatの-antup | grepのkubelet 
TCP 0 0 127.0.0.1:10248 0.0.0.0:*は、1698 / kubelet聞き         
0 0 192.168.128.111:55350 192.168.128.110:8080 1698 / kubelet設立TCPを         
TCP 0 0 192.168.128.111:55354 192.168.128.110:8080設立します1698 / kubelet         
1698 / kubelet設立TCP 0 0 192.168.128.111:55356 192.168.128.110:8080        
::: * 1698 BCP6 0 0 ::: 4194オルテン/オムレツ         
::: * 1698 BCP6 0 0 ::: 10250オルテン/オムレツ         
BCP6 0 0 ::: 10255 ::: *テン

 6)上の取付けアセンブリNODE2 / minion2ノードおよび構成

  動作は、ノード1 / minion1ノードで繰り返されます

 7)試験:マスター上の全クラスタ・ノードのステータスを確認

[ルート@ KUBE-マスター〜]#kubectl GETノード
NAMEステータスAGEの
KUBE-node1の準備1H 
KUBE-node2の準備2メートル

  これまでのところ、完全に構築するためのK8Sコンテナクラスタ管理システムが、この時点でのみkubectlコマンドを使用して、Webページを使用して管理することはできません。

おすすめ

転載: www.cnblogs.com/diantong/p/12187745.html