kubesphere 3.0集群联邦教程在虚拟机vmware上的安装和使用并且通过家用宽带申请联通外网ip实现连通 第一步(集群规划+keepalived以及haproxy安装)
需要条件戴尔服务器一台或n台(可淘宝购买二手服务器)家用联通宽带路由器一台家用光猫(一般带路由器功能)网线一根充足的话最要2根网线(1根网线需要远程管理卡设置和上网功能复用一个网口,比如网口4,2根则各用各的网口,远程管理卡有单独的网口)可实现功能获得联通外网ip因为外网ip可能会因为重新拨号发生变化怎记录最新ip呢?(可注册花生壳账号通过ddns功能 拨号后会自动注册到花生壳临时域名解析上这个,
·
系列文档
- 这里主要讲叙实现原理和步骤,较为简单的步骤就掠过了
- 第一步 集群规划+keepalived以及haproxy安装
- 第二步 kubeshpere管理集群安装以及注意点
需要条件
- 戴尔服务器一台或n台(可淘宝购买二手服务器)
- 家用联通宽带
- 路由器一台
- 家用光猫(一般带路由器功能)
- 网线一根充足的话最要2根网线(1根网线需要远程管理卡设置和上网功能复用一个网口,比如网口4,2根则各用各的网口,远程管理卡有单独的网口)
可实现功能
- 获得联通外网ip
- 因为外网ip可能会因为重新拨号发生变化怎记录最新ip呢?(可注册花生壳账号通过ddns功能 拨号后会自动注册到花生壳临时域名解析上这个,自己域名cname解析到花生壳域名即可 直接百度即可有很多教程)
- 家用服务器可外网访问
- 通过idrac远程控制卡 控制家里服务器系统安装以及开机关机(直接百度即可很多配置方法)
- 联通默认禁用80+443除去这2个端口其他都可访问
- 通过kubeshpere 使用devops操作多集群,比如发布到dev集群 prod集群 +监控+服务网格等
- 通过keepalived+haproxy 虚拟vip的方法实现lb的高可用,keepalived监控haproxy是否挂掉,挂掉则降权,副节点加权实现vip自动飘移
- 同时通过haproxy监控master k8s api,node通过lb连接master
- 这里因为是自建所以需要自建lb,云上直接使用内网负债均衡lb即可 省事儿很多
- 这里简单做一个打通描述,每个环节都可自定义不是死的,比如我不想做桥接模式,那就是中间再多一层路由器nat 或dmz转发
实现办法
- 打电话给联通客服 申请外网ip
- 因为有有高性能路由器,所以并未使用安装宽带赠送的光猫并且带路由器功能的(所以这里需要跟客服说把光猫改为桥接模式,默认为直接拨号,我这里不用是因为1送的性能不好 2 打通内网,需要2个路由器都做dmz主机或者nat转发,损耗较大,并且不方便)
集群规划分配
- 目前使用了1跳转机+2slb+单机器host集群+单机器dev集群+3master 3node 高可用prod集群 共11 虚拟机,4h8g 40g硬盘分配 15000转,做了r5磁盘阵列
192.168.3.[30-39] 分配给linux 跳转机和工具机器以及host+dev集群
192.168.3.[40-49] 分配给linux k8s master机器 prod集群
192.168.3.[50-59] 分配给linux k8s node机器 prod集群
vmware 虚拟centos 7.8系统 ip规划和系统安装分配
ip | 机器名 | 备注 |
---|---|---|
192.168.3.30 | centos-mannage | 跳转机 |
192.168.3.31 | centos-k8s-host devops | 集群管理机器 host角色 |
192.168.3.32 | centos-k8s-dev | 开发集群 all in one member角色 |
192.168.3.35 | centos-lb1 | keeplived+HAProxy |
192.168.3.36 | centos-lb2 | keeplived+HAProxy |
192.168.3.37 | keeplived虚拟创建的vip ip | |
192.168.3.40 | CentOS-k8s-m1 | k8s master 安装 kubesphere |
192.168.3.41 | CentOS-k8s-m2 | k8s master 安装 kubesphere |
192.168.3.42 | CentOS-k8s-m3 | k8s master 安装 kubesphere |
192.168.3.50 | CentOS-k8s-n1 | k8s node 安装 kubesphere |
192.168.3.51 | CentOS-k8s-n2 | k8s node 安装 kubesphere |
192.168.3.52 | CentOS-k8s-n3 | k8s node 安装 kubesphere |
主机名配置
## host解析
vim /etc/hosts
192.168.3.30 mannage
192.168.3.31 k8s-host
192.168.3.32 k8s-dev
192.168.3.35 lb1
192.168.3.36 lb2
192.168.3.40 k8s-m1
192.168.3.41 k8s-m2
192.168.3.42 k8s-m3
192.168.3.50 k8s-n1
192.168.3.51 k8s-n2
192.168.3.52 k8s-n3
## 执行命令临时修改
hostname mannage
## 永久修改
vim /etc/sysconfig/network
HOSTNAME=mannage
## 或者合并命令
hostname mannage && sed -i '$a\HOSTNAME=mannage' /etc/sysconfig/network
sed -i '$a\192.168.3.31 k8s-host' /etc/hosts
安装 haproxy+keepalived
- 可参考官方文档 https://kubesphere.com.cn/en/docs/installing-on-linux/on-premises/install-kubesphere-on-vmware-vsphere/
- 官方文档这里 weight 设置不对。已经提了issues 暂时并未修复 https://github.com/kubesphere/website/issues/550
关闭防火墙等
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/enforcing/disabled/g' /etc/selinux/config setenforce 0
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
在VMware vSphere上部署KubeSphere
在云上不需要安装keeplived+HAProxy 直接使用负债均衡器即可,这里是因为本地所以安装
# HAProxy Configure /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
log global
option httplog
option dontlognull
timeout connect 5000
timeout client 5000
timeout server 5000
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend kube-apiserver
bind *:6443
mode tcp
option tcplog
default_backend kube-apiserver
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend kube-apiserver
mode tcp
option tcplog
balance roundrobin
default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
server kube-apiserver-1 192.168.3.40:6443 check
server kube-apiserver-2 192.168.3.41:6443 check
server kube-apiserver-3 192.168.3.42:6443 check
##重新启动HAProxy并执行以下命令以启用HAProxy:
systemctl restart haproxy && systemctl enable haproxy
##停止HAProxy。
systemctl stop haproxy
##lb1 配置
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
smtp_connect_timeout 30
router_id LVS_DEVEL01
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight 20
}
vrrp_instance haproxy-vip {
state MASTER
priority 100
interface ens33
virtual_router_id 60
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 192.168.3.35
unicast_peer {
192.168.3.36
}
virtual_ipaddress {
#vip
192.168.3.37/24
}
track_script {
chk_haproxy
}
}
##lb2 配置
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
router_id LVS_DEVEL02
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight 20
}
vrrp_instance haproxy-vip {
state BACKUP
priority 90
interface ens33
virtual_router_id 60
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 192.168.3.36
unicast_peer {
192.168.3.35
}
virtual_ipaddress {
192.168.3.37/24
}
track_script {
chk_haproxy
}
}
##启动keepalived并启用keepalived。
systemctl restart keepalived && systemctl enable keepalived
systemctl stop keepalived
systemctl start keepalived
##验证可用性
##使用ip a s查看每个节点磅的VIP绑定状态:
ip a s
##通过以下命令暂停VIP节点HAProxy:
systemctl stop haproxy
##ip a s再次使用以检查每个lb节点的vip绑定,并检查vip是否漂移:
ip a s
##或者,使用以下命令:
systemctl status -l keepalived
有任何疑问都可以关注作者公众号点击菜单–>联系作者相互探讨交流
更多推荐
已为社区贡献2条内容
所有评论(0)