LAN kubeadmインストールK8Sを使用して

ホストリスト:

IP ホスト名 ノード CPU メモリ
192.168.23.100 k8smaster 主人 2核 2G
192.168.23.101 k8snode01 ノード 2核 2G
192.168.23.102 k8snode02 ノード 2核 2G

 

1、yumのローカルソースを設定するには、
yumのソースパケット:
リンクします。https://pan.baidu.com/s/1KAYWlw5Ky2ESUEZVsphQ0Q 

ヤムローカルソース構成は、yum.repo /etc/yum.repos.d/ディレクトリにコピーされます。
[ルート@ k8smaster yum.repos.d]#詳細yum.repo 
[ソフト]
名=ベース
BASEURL = HTTP://192.168.23.100/yum
gpgcheck = 0

[ルート@ k8smaster yum.repos.d]は#scpコマンドyum.repo 192.168.23.102:/etc/yum.repos.d/
[email protected]'sパスワード: 
yum.repo 100%63 0.1キロバイト/ sの夜12時00分    
[ルート@ k8smaster yum.repos.d]#scpコマンドyum.repo 192.168.23.101:/etc/yum.repos.d/
[email protected]'sパスワード: 
yum.repo   

2、修改/ etc / hostsの
[ルート@ k8smaster yum.repos.d]#の猫>> / etc / hostsの<< EOF
> 192.168.23.100 k8smaster
> 192.168.23.101 k8snode01
> 192.168.23.102 k8snode02
> EOF

[ルート@ k8smaster yumを.repos.d]#

3、安装依赖
yumをインストール-y接続追跡にntpdate NTP ipvsadmのipset iptablesのカールsysstatのlibseccomp wgetのVIMのnet-toolsのgitのiproute lrzsz bashの補完ツリーブリッジ-utilsの解凍バインド-utilsのGCC

4、关闭SELinuxの
setenforce 0 &&のsed -iさん/ ^ SELINUX =。* / SELINUX =無効/ 'は/ etc / selinuxを/ configに

5、iptablesのにファイアウォール、ファイアウォールの設定をオフにして、空のルールセット
に近いfirewalld#をし、開始以来、キャンセル
systemctlのSTOP firewalld && systemctl無効firewalld
#iptablesの起動、iptablesのインストール、カイからのブート設定、空のiptablesのルール、デフォルトのルールに現在のルールの保存
yumをiptablesの-サービスをインストール-y &&開始systemctl保存iptablesの&& systemctl有効iptablesの&&のiptables -F &&サービスのiptablesを
 

6、近いスワップパーティション
#は、[永久]仮想メモリスワップパーティションをオフにし、仮想メモリをオフにします。

するswapoff -a &&のsed -i '/スワップ/ S / ^ \(。* \)$ /#\ 1 / G' の/ etc / fstabに

7、K8Sのカーネル構成パラメータ、
CATは> kubernetes.conf EOF <<
#オープンブリッジモード重要】
net.bridge.bridge-NF-コールのiptables。1 =
重要#オープンブリッジモード]
net.bridge.bridge = ip6tablesをコール- 。NF 1
。net.ipv4.ip_forwardという名前で、=されて1
net.ipv4.tcp_tw_recycle = 0
#は、スワップ領域の使用を禁止、システムだけでは、使用を許可されている場合のみ、OOM 
vm.swappiness = 0
#物理メモリの妥当性をチェックしません。
=。1 vm.overcommit_memory
位OOM開く 
vm.panic_on_oom = 0
fs.inotify.max_user_instances = 8192
fs.inotify.max_user_watches = 1048576
fs.file-MAX = 52706963
fs.nr_open = 52706963
#IPv6の[閉じる]重要
net.ipv6.confを=。1 .all.disable_ipv6
net.netfilter.nf_conntrack_max = 2310720
EOF

#その最適化されたブート時間を呼び出すことができますファイル、カーネルファイルは/etc/sysctl.d/フォルダにコピーされ、最適化されます
CP kubernetes.conf /etc/sysctl.d/kubernetes.conf 

#マニュアルリフレッシュので、即効性と最適化されたファイル
のsysctl -p /etc/sysctl.d/kubernetes.conf

8、システムのタイムゾーンの調整
中国/上海へのシステム領域を設定#
SET-タイムゾーンアジア/上海にtimedatectlを
ハードウェアクロックに#現在のUTC時刻 
SET-ローカル-RTC 0 timedatectl
#再起動は、サービスのシステム時間に依存 
systemctl再起動rsyslogの
systemctl再起動をcrond

図9は、不要なサービスのダウンシステムシャット
#はシャットダウンして、メールサービスを無効に
systemctl停止後置&& systemctl無効に接尾辞を

10、提供ログの保存
作業で、デフォルトはrsyslogdで、systemdにjournaldの一方で、その2つのログシステムがあるsystem.dにブートモードのでCentos7後、
使用がjournald良くsystemdに、我々は、デフォルトを変更するので、ログを保存する唯一の方法を維持するにsystemd journald、。
1)ログ保存するディレクトリを作成し
ます。mkdirは/ var /ログ/。TECHNOLOGY INFORMATION
2)設定ファイル格納ディレクトリの作成
MKDIRを/etc/systemd/journald.conf.d
3)コンフィギュレーションファイルを作成
猫を> /etc/systemd/journald.conf .D / 99-prophet.conf << EOF
[雑誌]
#永続的にディスクに保存された 
ストレージ永続=
#圧縮履歴ログの 
圧縮= yesの
SyncIntervalSec = 5メートル
RateLimitInterval = 1930
RateLimitBurst = 1000
#最大容量の10G 
SystemMaxUse = 10G
#単一のログ最大ファイルサイズは200M 
SystemMaxFileSize = 200M
#時間ログの保存2週間 
MaxRetentionSec = 2week
#syslogのログには転送されません 
= NO ForwardToSyslog
EOF

。4)。システムDは、Restart構成journald
systemctl再始動にsystemd-journaldを

開いているファイルの数を調整するために11、
エコー"*ソフトNOFILE 65536" >> /etc/security/limits.confを
エコー"*ハードNOFILE 65536" >> /etc/security/limits.confをします

12、升级Linuxの内核为4.44版本
#[k8smaster yum.repos.d @ルート] yumをインストールカーネルlt.x86_64 -y(4.4.213-1.el7.elrepo)
[ルート@ k8smaster yum.repos.d]#AWK -F \」 '$ 1 == "menuentry" {$ 2印刷}' /etc/grub2.cfg 
のCentOSのLinux(4.4.213-1.el7.elrepo.x86_64)7(コア)
LinuxでのCentOSのLinux、3.10.0 -123.el7.x86_64
Linuxの0・レスキューb7478dd50b1d41a5836a6a670b5cd8c1とCentOSのLinuxでは、
[ルート@ k8smaster yum.repos.d]#GRUB2-セットデフォルト「のCentOSのLinux(4.4.213-1.el7.elrepo.x86_64)7(コア「)
[ルート@ k8snode01〜]#は、uname -a
Linuxのk8snode01 4.4.213-1.el7.elrepo.x86_64#1 SMP水2月5日午前10時44分50秒EST 2020 x86_64のx86_64のx86_64のGNU / Linuxの

12、の前の開いた状態のKUBE-プロキシIPVS
modprobeはbr_netfilter#netfilterのロードモジュール
CATは> EOF << /etc/sysconfig/modules/ipvs.modules
#/ binに/ bashのを!
modprobeは- ip_vs
のmodprobe - ip_vs_rr
にmodprobe - ip_vs_wrr
modprobeは- ip_vs_sh
のmodprobe - nf_conntrack
EOF

755 /etc/sysconfig/modules/ipvs.modules chmodコマンド
はbash /etc/sysconfig/modules/ipvs.modules  
はlsmod | grepを-e -e nf_conntrack_ipv4 ip_vs
 これらのファイルが向けられているかどうかを見るためにlsmodコマンドを使用して#。

13、取付ドッカー
依存YUMインストールYUM-utilsのデバイスマッパーデータLVM2 -Y-persistent-
YUMドッカーをインストール-Y-CEの  #実装ドッカー

作成の/ etc /ドッカディレクトリ
[!-Dの/ etc /ドッキングウィンドウ] &&ます。mkdirは/ etc /ドッカ

配置デーモン
猫> /etc/docker/daemon.json << EOF
{
 "EXEC-OPTS":[ "native.cgroupdriver = systemdに"]、
 "ログ・ドライバー": "JSONファイル"、
 "ログOPTS": {
  「最大サイズ」:「100メートル」
 }
}

 

修改docker.service文件
/usr/lib/systemd/system/docker.service 
ExecStart =は/ usr / binに/ dockerd -H FD:// --insecure-レジストリ0.0.0.0/0 -H UNIX:/// VAR /実行/ docker.sock -H TCP://0.0.0.0:2375 --containerd = /実行/ containerd / containerd.sock

#重启ドッキングウィンドウ服务
systemctlデーモンリロード&& systemctl再起動ドッカ&& systemctlドッキングウィンドウを有効にします

14、画像保存およびインストール、初期化
ドッキングウィンドウの実行には、-d -p 5000:5000 --restart =常に--nameプライベート・ドッカ-レジストリ--privileged =真-v /データ/レジストリ:は/ var / libに/レジストリ192.168.23.100 :5000 /レジストリ:V1

フランネルネットワークミラーパッケージ
リンクします。https://pan.baidu.com/s/1-DYxDoU2X85aobaGFclKfAの 
抽出コード:nson

ベース画像パケットK8S
HTTPS://pan.baidu.com/s/17uV90VPXqoaezwccpTj2GQリンク 
抽出コード:13t3を 

导入镜像
[ルート@ k8smaster k8s_image]#以上load_image.sh 
#/ binに/バッシュ!
LS /ホーム/ zhaiky / k8s_image | grepの-v負荷> /tmp/image-list.txt
CD /ホーム/ zhaiky / k8s_image
私のためにあります$(猫/tmp/image-list.txt)

    ドッキングウィンドウの負荷が$ Iは、-i
行わ
RM -rf /tmp/image-list.txt

上传镜像到私有仓库
ドッカプッシュ192.168.23.100:5000/kube-apiserver:v1.15.1
ドッカプッシュ192.168.23.100:5000/kube-proxy:v1.15.1
ドッキングウィンドウプッシュ192.168.23.100:5000/kube-controller-manager:v1 .15.1
ドッキングウィンドウのプッシュ192.168.23.100:5000/kube-scheduler:v1.15.1
ドッキングウィンドウプッシュ192.168.23.100:5000/registry:v1
ドッカプッシュ192.168.23.100:5000/coreos/flannel:v0.11.0-s390x
ドッキングウィンドウプッシュ192.168.23.100 :5000 / coreos /フランネル:v0.11.0-ppc64le
ドッカプッシュ192.168.23.100:5000/coreos/flannel:v0.11.0-arm64
ドッキングウィンドウのプッシュ192.168.23.100:5000/coreos/flannel:v0.11.0-arm
ドッキングウィンドウプッシュ192.168。 23.100:5000 / coreos /フランネル:v0.11.0-amd64の
ドッキングウィンドウのプッシュ192.168.23.100:5000/coredns:1.3.1
ドッキングウィンドウプッシュ192.168.23.100:5000/etcd:3.3.10
ドッキングウィンドウのプッシュ192.168.23.100:5000/pause:3.1

15、安装kubeadm、オムレツ、kubectl
のyum -y kubeadm-1.15.1-オムレツ-kubectlをインストール1.15.1 1.15.1
オムレツは&& systemctlを開始オムレツ有効systemctl

16、自動補完コマンドの有効kubectl
#bashをインストールし、設定-Completion
のyumのbash -Y-完了をインストール
エコー'ソースを/ usr / share / bashの-完了/ bash_completion' >> / etc / profileを
ソースの/ etc /プロファイル
エコー"ソース<(kubectl完了bashの)" >>〜/ .bashrcの
ソース〜/ .bashrcに

17、マスター初期
構成パッケージ、及びkubeadm-config.yaml KUBE-flannel.ymlを含むが内側にある
HTTPS://pan.baidu.com/s/1g0G7Ion0n6lERpluNjh_9Aリンク 
抽出コード:6pxt 

[ルート@ k8smaster〜]#cpは/home/zhaiky/kubeadm-config.yaml。
kubeadmのinit --config = kubeadm-config.yaml --upload-certsの| ティーkubeadm-init.log

キーロギング
あなたKubernetesコントロールプレーンが正常に初期化されました !

クラスタの使用を開始するには、通常のユーザーとして次のコマンドを実行する必要があります。

  ます。mkdir -p $ HOME / .kube
  はsudoのcp -i /etc/kubernetes/admin.conf $ HOME / .kube / configに
  はsudoをchown $(のid -u):$(IDの-g)$ HOME / .kube /設定

これで、クラスタにポッドネットワークを展開する必要があります。
:実行時に記載されているオプションのいずれかで「[podnetwork] .yaml -f適用kubectl」
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

その後、ルートとしてそれぞれに次のことを実行することにより、労働者の任意の数のノードに参加することができます。

kubeadmは192.168.23.100:6443 --token abcdef.0123456789abcdef \参加
    78c3f1e110ed1f954665ba55a689397c2dc4d35243dc4516dd00b0bac97172f6:--discoveryトークン-CA-CERT-ハッシュSHA256を 

18、プラグの取り付けフランネルネットワーク
[k8smasterルート@〜]#CP /home/zhaiky/kube-flannel.yml。
[K8smasterルート@〜]#KUBE-flannel.yml -f作成kubectl    

19、将K8S子节点加入到K8S主节点
kubeadm参加192.168.23.100:6443 --token abcdef.0123456789abcdef --discoveryトークン-CA-CERT-ハッシュSHA256:78c3f1e110ed1f954665ba55a689397c2dc4d35243dc4516dd00b0bac97172f6 
[ルート@ k8smaster zhaiky]#kubectl GET CS
NAMEのSTATUS MESSAGE ERRORの
スケジューラ健康OK                  
コントローラマネージャ健康OK                  
etcd-0健康{ "健康": "真"}
[ルート@ k8smaster〜]#kubectl GETノード
NAMEのSTATUSの役割AGE VERSION
k8smasterレディーマスター4m58s v1.15.1
k8snode01準備中] <なし> 21S v1.15.1
k8snode02準備中] <なし> 16S v1.15.1
[ルート@ k8smaster〜]#

20、操作简单
使用K8S运行一个nginxの实例
[ルート@ k8smaster〜]#のkubectl実行nginxの--image = 192.168.23.100:5000 / nginxの:V1 --port = 80 --replicas = 1
kubectl実行--generator =展開/apps.v1は廃止されており、将来のバージョンでは削除されます。使用kubectlラン--generator =実行ポッド/ v1または代わりに作成kubectl。
deployment.apps / nginxの作成
[ルート@ k8smaster〜]# 
[ルート@ k8smaster〜]#kubectl GETポッド-o広い
NAME READYのステータスが再起動AGE IPノードは準備GATESノミネート
のnginx-5bbb49fb76-xzj6x 1/1を0 59S 10.244を実行します。 1.2 k8snode01 <なし> <なし>
[ルート@ k8smaster〜]# 

[ルート@ k8smaster〜]#kubectl GET展開 NAME READY UP-TO-DATE AVAILABLE AGE nginxの1/1 1 1 2m15s [ルート@ k8smaster〜]#  [ルート@ k8smaster〜]#のカール"http://10.244.1.2" nginxのへの<title>へようこそ!</タイトル> [ルート@ k8smaster〜]#は、展開を公開kubectl nginxの--port = 80 --type =ロードバランササービス/ nginxの暴露[ルート@ k8smaster〜]#kubectl GETサービス NAME TYPEクラスタ- IP EXTERNAL-IP PORT(S)は、AGEはCLUSTERIP 10.96.0.1 <なし> 443 / TCP 14H kubernetes 32461 / TCPの13S:nginxのロードバランサ10.99.225.215 <保留> 80 [ルート@ k8smaster〜]#を 












[ルート@ k8smaster〜]#のカール"http://192.168.23.101:32461"
<タイトル> nginxのへようこそ!</タイトル>
[ルート@ k8smaster〜]#のカール"http://10.99.225.215"
<タイトル> nginxのへようこそ!</ TITLE>

公開された60元の記事 ウォン称賛20 ビュー4571

おすすめ

転載: blog.csdn.net/zhaikaiyun/article/details/104273974