(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ページを使用して管理することはできません。