https://blog.csdn.net/liver_life/article/details/81773339
跟着https://www.jianshu.com/p/dba30d617a3f鏈接,進行安裝。
一:環境准備
0.各個機器進行時間校對。
1.修改各個主機名
1、方法一使用hostnamectl命令
[root@xlucas1 ~]# hostnamectl
set
-hostname xlucas2
2、方法二:修改配置文件 /etc/hostname 保存退出
[root@xlucas1 ~]# vi /etc/hostname
xlucas2
3.修改各個機器的hosts文件如下:(各個服務器之間都要進行配置)
一台機器上修改好,用scp在各個機器之間進行傳輸:
4、安裝 kubeadm, kubelet 和 kubectl(所有結點都需要安裝)
(1)進到 /etc/yum.repos.d 文件夾 新建kubernetes.repo文件。
(2)執行:
[root@node1 ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[root@node1 ~]# rpm --import rpm-package-key.gpg
[root@node1 ~]# yum -y install kubelet kubeadm kubectl!
5、配置系統相關參數(這里發現了一個新大陸,由於一共8台機器來回操作太麻煩。因此可以在SecureCRT窗口進行設置,一條命令可以發送至說個窗口,參考https://blog.csdn.net/q283614346/article/details/84900182)
# 臨時禁用selinux
# 永久關閉 修改/etc/sysconfig/selinux文件設置
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
setenforce 0
# 臨時關閉swap
# 永久關閉 注釋/etc/fstab文件里swap相關的行
swapoff -a
# 開啟forward
# Docker從1.13版本開始調整了默認的防火牆規則
# 禁用了iptables filter表中FOWARD鏈
# 這樣會引起Kubernetes集群中跨Node的Pod無法通信
iptables -P FORWARD ACCEPT
# 配置轉發相關參數,否則可能會出錯
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
sysctl --system
# 加載ipvs相關內核模塊
# 如果重新開機,需要重新加載
modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack_ipv4
lsmod | grep ip_vs
6、配置haproxy代理和keepalived(此處只需要在三個master機器上操作即可)
# 拉取haproxy鏡像
docker pull haproxy:1.7.8-alpine
mkdir /etc/haproxy
cat >/etc/haproxy/haproxy.cfg<<EOF
global
log 127.0.0.1 local0 err
maxconn 50000
uid 99
gid 99
#daemon
nbproc 1
pidfile haproxy.pid
defaults
mode http
log 127.0.0.1 local0 err
maxconn 50000
retries 3
timeout connect 5s
timeout client 30s
timeout server 30s
timeout check 2s
listen admin_stats
mode http
bind 0.0.0.0:1080
log 127.0.0.1 local0 err
stats refresh 30s
stats uri /haproxy-status
stats realm Haproxy\ Statistics
stats auth will:will
stats hide-version
stats admin if TRUE
frontend k8s-https
bind 0.0.0.0:8443
mode tcp
#maxconn 50000
default_backend k8s-https
backend k8s-https
mode tcp
balance roundrobin
server lab1 11.11.11.111:6443 weight 1 maxconn 1000 check inter 2000 rise 2 fall 3
server lab2 11.11.11.112:6443 weight 1 maxconn 1000 check inter 2000 rise 2 fall 3
server lab3 11.11.11.113:6443 weight 1 maxconn 1000 check inter 2000 rise 2 fall 3
EOF
# 啟動haproxy
docker run -d --name my-haproxy \
-v /etc/haproxy:/usr/local/etc/haproxy:ro \
-p 8443:8443 \
-p 1080:1080 \
--restart always \
haproxy:1.7.8-alpine
備注(master1的我始終沒有成功。)
# 查看日志
docker logs my-haproxy
docker pull osixia/keepalived:1.4.4
啟動、載入內核。
docker run --net=host --cap-add=NET_ADMIN \
-e KEEPALIVED_INTERFACE=eth1 \(暫未執行)
-e KEEPALIVED_VIRTUAL_IPS="#PYTHON2BASH:['172.16.12.217']" \
-e KEEPALIVED_UNICAST_PEERS="#PYTHON2BASH:['172.16.12.217','172.16.12.218','172.16.12.219']" \
-e KEEPALIVED_PASSWORD=hello \
--name k8s-keepalived \
--restart always \
-d osixia/keepalived:1.4.4

5、配置啟動kubelet