12 Kubernetes 高可用集群构建

一、系统初始化

安装配置好docker以后

二、master01节点上操作

1、在主节点启动 Haproxy 与 Keepalived 容器

在 master01、master02、master03 上创建目录,上传相关文件。

mkdir -p  /usr/local/kubernetes/install/images
cd  /usr/local/kubernetes/install/images
# 导入镜像
docker load -i haproxy.tar
docker load -i keepalived.tar

# 解压镜像文件
tar -zxvf kubeadm-basic.images.tar.gz

# 修改镜像目录 (网友评论方案: ls | xargs -i docker load {} 搞定)
vi load-images.sh

chmod a+x load-images.sh
./ load-images.sh


tar -zxvf start.keep.tar.gz
# 将data目录移动到根目录下
mv data/ /
cd /data/lb/
cat etc/haproxy.cfg
vim etc/haproxy.cfg

# 修改以下为3台master节点的ip
server rancher01 192.168.66.10:6443
server rancher02 192.168.66.21:6443
server rancher03 192.168.66.22:6443

cd etc
# 备份文件
cp haproxy.cfg /root/

# 继续修改,只保留一条 server rancher01 192.168.66.10:6443
vim haproxy.cfg

cd ..
vim start-haproxy.sh
MasterIP1=192.168.66.10
MasterIP1=192.168.66.20
MasterIP1=192.168.66.21

./start-haproxy.sh

# 查看端口,已经处于监听状态
netstat -anpt | grep :6444

# 查看网卡名称
ifconfig

# 启动keepalived
vim start-keepalived.sh
VIRTUAL_IP=192.468.66.100
INTERFACE=ens33

./start-keepalived.sh

# 查看虚拟ip地址
ip addr show

2、安装kubeadm(主从配置)

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
# 设置开机自启
systemctl enable kubelet.service

3、初始化主节点

cd  /usr/local/kubernetes/install
# 生成yaml文件(这个文件不用,使用上传的)
kubeadm config print init-defaults > kubeadm-config.yaml

将 kubeadm-config.yaml 上传,替换掉刚刚生成的文件

vim kubeadm-config.yaml
# 当前节点的ip地址
advertiseAddress:192.168.66.10

# 这里默认配置的是空字符串,这里因为是高可用集群,所以需要添加高可用节点的地址。
controlPlaneEndpoint:"192.168.66.100:6444"
# 执行初始化命令,这里会生成加入master节点的命令。
kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log

# 查看server地址是否为 192.168.66.100
vim /root/.kube/config
kubectl get node

4、将文件复制到其他 master 节点

cd /
scp haproxy.cfg root@192.168.66.20:/root/
scp haproxy.cfg root@192.168.66.21:/root/

# 拷贝 01节点的data目录到 02 03节点
scp -r /data root@k8s-master02:/
scp -r /data root@k8s-master03:/

三、master02 节点上操作

1、在主节点启动 Haproxy 与 Keepalived 容器

cd /data/lb
./start-haproxy.sh
./start-keepalived.sh

2、安装kubeadm(主从配置)

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
# 设置开机自启
systemctl enable kubelet.service

3、将 master02 加入 master01

安装好后,执行加入 master01 节点的命令。

# 查看node状态
kubectl get node
cd .kube/
# 查看server地址是否为 192.168.66.100
cat config

四、master03 节点上操作

master03 节点和 master02节点操作一样

五、后续配置

master01 上修改 haproxy配置

cd /data/lb/
# 修改配置,将其他两个节点配置加入(yy 和 pp 可能是vim的复制一行和粘贴一行)
vim etc/haproxy.cfg
server rancher01 192.168.66.10:6443
server rancher02 192.168.66.21:6443
server rancher03 192.168.66.22:6443

# 查看haproxy名称为 HAProxy-K8S
docker ps

# 重启haproxy
docker rm -f HAProxy-K8S && bash /data/lb/start-haproxy.sh
将haproxy.cfg拷贝到另外两台节点后,重启haproxy。
# 查看node节点,都是NotReady状态。
kubectl get node

# 部署flannel
cd  /usr/local/kubernetes/install
# 上传kube-flannel.yml
kubectl apply -f kube-flannel.yml

# 查看flannel状态
kubectl get pod -n kube-system

# 查看node状态
kubectl get node

六、高可用测试

# 关闭master01节点实验
shutdown -h now

# 在master02上执行,此时可能会卡死
kubectl get node

# 卡死需要修改master02的配置,将server地址改为master02的ip,这里的keepalived  vip没飘过来,原因可能是health check 少了。vip那步增加健康检查可以移除错误的节点,这样可以不改的。
vim ./kube/config
重新启动master01节点。
cd  /usr/local/kubernetes/install
# 查看node节点加入的命令
cat kubeadm-init.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值