一、添加master

部署高可用k8s架构

1.拷贝/opt/kubernetes目录到新的master上(注意如果新机上部署了etcd要排除掉)

scp -r /opt/kubernetes/ root@192.168.24.12:/opt/

2.拷贝主件服务

scp /usr/lib/systemd/system/{kube-apiserver.service,kube-controller-manager.service,kube-scheduler.service} root@192.168.24.12:/usr/lib/systemd/system/

3.修改配置文件kube-apiserver的ip为新master ip

4.启动服务

systemctl start kube-apiserver

systemctl start kube-controller-manager

systemctl start kube-scheduler

二、在LB上安装nginx(master,backup)且配置一样。

1、yum安装

Install the prerequisites:

sudo yum install yum-utils

To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.key​[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/nginx_signing.key

By default, the repository for stable nginx packages is used. If you would like to use mainline nginx packages, run the following command:

sudo yum-config-manager --enable nginx-mainline

To install nginx, run the following command:

sudo yum install nginx

2、二进制安装

一、安装依赖包
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
依赖包说明:
1、编译依赖 gcc 环境,所以需要:gcc gcc-c++;
2、PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库,所以需要:pcre pcre-devel ;
3、zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库,所以需要:zlib zlib-devel ;
4、OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库,所以需要:openssl openssl-devel ;
二、从官网下载安装包
wget https://nginx.org/download/nginx-1.16.0.tar.gz
三、解压并安装
tar zxvf nginx-1.16.0.tar.gz
cd nginx-1.16.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module
make && make install

配置nginx文件:

stream {log_format  main  '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent';access_log  /var/log/nginx/k8s-access.log  main;
upstream k8s-apiserver {server 192.168.0.211:6443;server 192.168.0.214:6443;
}
server {listen 0.0.0.0:6443;proxy_passs k8s-apiserver;
}
}

三、安装keepalived(master.backup)

yum安装keepalived

yum install keepalived -y

修改master配置文件:

! Configuration File for keepalived
​
global_defs {
​
# 接收邮件地址
​notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc }
​
# 邮件发送地址
​notification_email_from Alexandre.Cassen@firewall.loc  smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id NGINX_MASTER
}
​
vrrp_script check_nginx {script "/usr/local/nginx/sbin/check_nginx.sh"
}
​
vrrp_instance VI_1 { state MASTER interface ens32     #主机网卡virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 priority 100    # 优先级,备服务器设置 90 advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒 authentication { auth_type PASS      auth_pass 1111 }  virtual_ipaddress { 192.168.7.43/24 } track_script {check_nginx}
}

修改backup配置文件:

! Configuration File for keepalived
​
global_defs {
​
# 接收邮件地址
​notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc }
​
# 邮件发送地址
​notification_email_from Alexandre.Cassen@firewall.loc  smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id NGINX_MASTER
}
​
vrrp_script check_nginx {script "/usr/local/nginx/sbin/check_nginx.sh"
}
​
vrrp_instance VI_1 { state BACKUP interface ens32     #主机网卡virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 priority 90    # 优先级,备服务器设置 90 advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒 authentication { auth_type PASS      auth_pass 1111 }  virtual_ipaddress { 192.168.7.43/24 } track_script {check_nginx}
}

添加检查脚本:

/usr/local/nginx/sbin/check_nginx.sh
​
count=$(ps -ef |grep nginx |egrep -cv "grep|$$")
​
if [ "$count" -eq 0 ];thensystemctl stop keepalived
fi

启动keepalived:

systemctl start keepalived

四、修改node配置文件

除了flannel,其他都要改成keepalived的vip地址,然后重启。

systemctl restart kubelet
systemctl restart kube-proxy

转载于:https://www.cnblogs.com/Dev0ps/p/10907261.html

打造kubernetes 高可用集群(nginx+keepalived)相关推荐

  1. 容器编排——Kubeadm在线或离线搭建kubernetes高可用集群

    目录 1.架构简介: 2.集群架构图: 3.集群服务器: 4.修改主机名称: 5.修改hosts配置文件: 6.关闭selinux: 7.关闭防火墙: 8.关闭swap: 9.设置iptables网桥 ...

  2. 使用kubeadm安装kubernetes高可用集群

    kubeadm安装kubernetes高可用集群搭建  第一步:首先搭建etcd集群 yum install -y etcd 配置文件 /etc/etcd/etcd.confETCD_NAME=inf ...

  3. 二进制方式搭建Kubernetes高可用集群(超丰富的组件概念理论总结)

    二进制方式部署Kubernetes高可用集群 文章目录 二进制方式部署Kubernetes高可用集群 1.环境准备 1.1.Kubernetes高可用集群部署方式 1.2.Kubernetes集群弃用 ...

  4. 搭建Nginx高可用集群(keepalived+双机热备)

    一.Nginx高可用 首先了解一下什么是高可用,高可用是分布式系统架构中必须考虑的因素. 我们都知道,使用nginx的反向代理和负载均衡可以解决tomcat等web容器的单点故障以及高并发等问题. 反 ...

  5. docker 如何加入kubernetes_使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群...

    什么是 Kind Kind(Kubernetes in Docker) 是一个Kubernetes孵化项目,Kind是一套开箱即用的Kubernetes环境搭建方案.顾名思义,就是将Kubernete ...

  6. 一键部署Kubernetes高可用集群

    三台master,四台node,系统版本为CentOS7 IP ROLE 172.60.0.226 master01 172.60.0.86 master02 172.60.0.106 master0 ...

  7. Kubernetes高可用集群搭建

    本文介绍搭建K8S集群的高可用,保证在主master节点挂掉之后,node节点的kubelet还能访问到另一个主节点的apiserver等组件进行运作. 实验部署 单master部署查照(Kubern ...

  8. Kubernetes 高可用集群部署

    原文链接:https://www.cpweb.top/2396 一.环境 Kubernetes 3个节点都为 master 角色,高可用方案采用 keepalived + haproxy,如果服务器在 ...

  9. 二进制安装Kubernetes 高可用集群

    一.集群规划 k8s-master1 10.0.19.127 kube-apiserver,kube-controller-manager,kube-scheduler,etcd k8s-master ...

  10. CentOS 6.5高可用集群LVS+Keepalived

    为什么80%的码农都做不了架构师?>>>    环境介绍 操作系统:CentOS6.5_x64 mini 负载均衡模式:DR(直接路由) LVS与Keepalived简述: LVS是 ...

最新文章

  1. java 内存回收参数_JVM常用参数(内存分配 内存回收日志)(七)
  2. DevExpress GridControl使用方法总结
  3. Docker进阶-快速扩容
  4. sharepoint ECMA
  5. Java线程阻塞原语-LockSupport
  6. Spring 事务相关及@Transactional的使用建议
  7. oracle ldap 配置,Ubuntu安装OpenLDAP之配置LDAP
  8. Push消息如何测试?
  9. 面试AI岗,为什么我在100人中拿到了唯一年薪70万的offer?
  10. 检查PHP扩展是否安装成功
  11. Nginx 日志配置详情解析
  12. win7用html做桌面,win7系统怎么制作主题桌面 win7系统制作主题桌面方法
  13. IDEA 2020下载与安装
  14. 最新二次开发仿包图网素材图片源码
  15. 用增广矩阵的秩判断N线性方程的解的个数
  16. 《富爸爸穷爸爸》读书笔记 -- 第一章
  17. python连接S3
  18. python Flask web 框架 (十七)
  19. 计算机微博实验报告,网络信息交流的工具与模式(实验报告).doc
  20. 北洋网络口打印机设置

热门文章

  1. 张一鸣念员工报告讽刺“互联网八股文” 网友:老板都看不惯了
  2. 兼顾高可靠和低延迟,Google打算用QUIC协议替代TCP/UDP
  3. 19 个如此好玩有趣的 Linux 命令,你玩过几个呢?
  4. 高并发架构系列:Redis并发竞争key的解决方案详解
  5. shell基础之后台运行脚本
  6. python中self和cls的区别
  7. hdu5033 Building 单调队列
  8. BZOJ 3166 set+可持久化trie树(OR 莫队)
  9. JS1 js获取dom元素方法
  10. Ibatis -- 一次执行多条SQL