[转帖]Breeze部署kubernetes1.13.2高可用集群

Breeze部署kubernetes1.13.2高可用集群

2019年07月23日 10:51:41 willblog 阅读数 673 标签: kubernetes 更多

个人分类: kubernetes

https://blog.csdn.net/networken/article/details/86550735

所知道的太少了..

不过简单试了下 不是特别好用

国内公司做的系统.. 也可能跟我的虚拟机兼容性有关系..

breeze简介

项目地址:https://github.com/wise2c-devops/breeze
本次使用开源 Breeze工具部署 Kubernetes 高可用集群。
Breeze项目旨在提供一个可信的、安全的、稳定的Kubernetes集群部署工具,它可以帮助您通过图形化操作界面快捷地在生产环境部署一个或多个Kubernetes集群,而不需要连入互联网环境。

功能简介

  • 运行简单:
    Breeze将部署Kubernetes集群所需的全部资源文件打包在一个docker镜像内,这包括Kubernetes的组件镜像、docker、etcd、harbor、kubernetes集群部署的ansible
    playbook脚本文件等。同时,Breeze部署主机自身也作为一个yum仓库服务器角色存在,因此,您只需准备一台安装了docker和docker-compose命令的主机即可轻松的使Breeze运行起来并进行Kubernetes集群的部署。
  • 简化Kubernetes集群部署流程:
    仅需几条简单命令,就能使Breeze程序运行起来,接下来的Kubernetes集群部署工作全都通过图形化操作界面完成。
  • 支持离线部署:
    在仅有的4个镜像(playbook, yum-repo, pagoda, deploy-ui)被加载在Breeze部署主机之后,所有操作都不需要互联网的访问。Breeze自身作为yum仓库对被部署机提供yum源服务并使用kubeadm进行Kubernetes的部署工作,同时Breeze还会部署一个Harbor服务器用于内网的镜像下载服务。
  • 支持多个集群批量部署:
    Breeze支持批量部署多个Kubernetes集群。
  • 支持高可用架构:
    使用Breeze部署的Kubernetes集群,默认提供3个master节点和3个etcd节点,结合haproxy+keepalived架构服务,所有工作节点都使用虚拟浮动IP地址和主节点服务器通信。

Breeze 软件架构简图:

组件

  • breeze: 用于部署docker, harbor, haproxy+keepalived, etcd,
    kubernetes等组件的Ansible playbook。
  • yum-repo: 用于安装docker, docker-compose, kubelet, kubectl, kubeadm,
    kubernetes-cni等的yum仓库源。
  • deploy-ui: 图形界面组件。
  • pagoda: 提供操作Ansible playbook的API。
  • kubeadm-version: 获取Kubernetes组件版本清单,采用命令"kubeadm config"

部署要求

  • 部署机: docker 1.13.1+ and docker-compose 1.12.0+ .
  • Kubernetes集群节点: 兼容CentOS 7.4/7.5/7.6版本,Minimal安装模式是推荐的方式,为了确保部署的顺利进行,应尽可能保证系统的干净。
  • 部署指南:https://github.com/wise2c-devops/breeze/blob/master/BreezeManual-CN.md
    本安装方式通过了Kubernetes Conformance一致性认证,因此可用于生产环境。
  • github项目中选择相应的Release Tag并下载其中的docker-compose.yml文件。(Tags列出的版本号a.b.c.d其中前三位a.b.c对应于Kubernetes的发行版本号,第四位只是Breeze自身部署功能所做的修订,不涉及对Kubernetes的任何修改)

部署环境准备

在本次实验环境中准备了6台服务器,使用Vmware Workstation进行部署,配置与角色如下(如果需要增加 Minion/Worker 节点请自行准备即可):

主机名 IP 地址 角色 OS 组件
deploy 192.168.92.10 Breeze Deploy CentOS 7.6 x64 docker / docker-compose / Breeze
master01 192.168.92.11 K8S Master Node CentOS 7.6 x64 K8S Master / etcd / HAProxy / Keepalived
master02 192.168.92.12 K8S Master Node CentOS 7.6 x64 K8S Master / etcd / HAProxy / Keepalived
master03 192.168.92.13 K8S Master Node CentOS 7.6 x64 K8S Master / etcd / HAProxy / Keepalived
worker01 192.168.92.21 K8S Worker Node CentOS 7.6 x64 K8S Worker / Prometheus
harbor 192.168.92.20 Harbor CentOS 7.6 x64 Harbor 1.7.0
  192.168.92.30 VIP   HA 虚 IP 地址在 3 台 K8S Master 浮动

硬件资源规划:

主机名 CPU 内存 磁盘 网卡
deploy 1C 2G 系统盘50G x1,(可选数据盘300G x1) x1
master01 2C 4G 系统盘50G x1,(可选数据盘300G x1) x1
master02 2C 4G 系统盘50G x1,(可选数据盘300G x1) x1
master03 2C 4G 系统盘50G x1,(可选数据盘300G x1) x1
worker01 2C 4G 系统盘50G x1,(可选数据盘300G x1) x1
harbor 1C 2G 系统盘50G x1,(可选数据盘300G x1) x1

注意master和worker节点至少配置2颗CPU、4G内存,否则可能导致资源不足部署失败。部署前可对所有虚拟机建立快照,方便回滚。
这里仅做测试不配置数据盘(对于集群master和worker节点,磁盘规划建议系统盘/dev/sda和数据盘/dev/sdb组成vg卷组,从卷组划分两个lv逻辑卷分别挂载至/var/lib/docker/目录下和/data目录下。)

deploy节点设置防火墙
关闭selinux并放开firewalld,请勿禁用firewalld服务,保证firewalld服务正常运行状态即可。

setenforce 0
sed  --follow-symlinks  -i  "s/SELINUX=enforcing/SELINUX=disabled/g"  /etc/selinux/config
firewall-cmd  --set-default-zone=trusted
firewall-cmd  --complete-reload

部署节点环境准备(deploy/192.168.92.10)

以下所有操作在部署节点执行
安装 docker-compose

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

安装 docker

$ curl -sSL https://raw.githubusercontent.com/willzhang/shell/master/install_docker.sh | sh

在部署机上做好对集群内其它所有服务器的ssh免密登录:

#生成密钥
$ ssh-keygen

#针对目标服务器做 ssh 免密登录,依次执行:
$ ssh-copy-id 192.168.92.11
$ ssh-copy-id 192.168.92.12
$ ssh-copy-id 192.168.92.13
$ ssh-copy-id 192.168.92.20
$ ssh-copy-id 192.168.92.21
 

下载用于部署某个Kubernetes版本的docker-compose文件并使部署程序运行起来,例如此次实验针对刚刚发布的 K8S v1.13.2。

$ curl -L https://raw.githubusercontent.com/wise2c-devops/breeze/v1.13.2/docker-compose.yml -o docker-compose.yml
$ docker-compose up -d

查看拉取的镜像

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wise2c/playbook     v1.13.2             6c57dc3440b1        3 days ago          1.17GB
wise2c/yum-repo     v1.13.2             d08304a41136        5 days ago          745MB
wise2c/pagoda       v1.1                d4f2b4cabdec        13 days ago         483MB
wise2c/deploy-ui    v1.3                2f159b37bf13        2 weeks ago         40.1MB

查看运行的容器
如果一切正常(注意deploy-playbook这个容器是个卷容器,它是退出状态这是正常现象),部署机的88端口将能够被正常访问。

[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                     PORTS                                        NAMES
0221f2177505        wise2c/deploy-ui:v1.3     "/root/entrypoint.sh"    8 minutes ago       Up 8 minutes                                                            deploy-ui
cd24a52cd499        wise2c/pagoda:v1.1        "sh -c ‘/root/pagoda…"   8 minutes ago       Up 8 minutes               0.0.0.0:88->80/tcp, 0.0.0.0:8088->8080/tcp   deploy-main
a0dcf2bc42e6        wise2c/playbook:v1.13.2   "sh"                     8 minutes ago       Exited (0) 8 minutes ago                                                deploy-playbook
b1f92f68fffa        wise2c/yum-repo:v1.13.2   "nginx -g ‘daemon of…"   8 minutes ago       Up 8 minutes               80/tcp, 0.0.0.0:2009->2009/tcp               deploy-yumrepo
[[email protected] ~]#

访问部署工具

添加集群

打开浏览器,访问部署程序的图形界面(部署机 IP 及端口 88),添加主机列表、添加服务角色并将加入的主机进行角色分配,然后开始部署:http://192.168.92.10:88

点击 + 号添加一个集群:

添加主机

点击“添加主机”,输入主机名、主机IP、描述信息(主机用途),点击确定。重复该步骤直至将集群所需的全部节点服务器加入(k8s master服务器、k8s worker node服务器、harbor服务器等等):


添加组件

点击“下一步”再点击“添加组件”按钮,对每个组件进行设置和分配服务器(docker角色、harbor角色、loadbalance角色、etcd角色、kubernetes角色、prometheus角色):

如果希望Breeze部署程序使用界面里输入的主机名代替当前服务器的主机名,则勾选format host name选项框:

镜像仓库设置这里的harbor entry point是指用户端访问镜像仓库的URL,可以直接写IP地址或写对应的域名:

接下来是设置高可用组件(haproxy+keepalived):
vip for k8s master是指三个k8s master服务器的高可用虚拟浮动IP地址;网卡请填写实际操作系统下的网卡名,注意请保证3个节点网卡名一致;router id和virtual router id请确保不同k8s集群使用不同的值。

Etcd可以选择部署于K8S Master节点也可以选择独立的三台主机:

kubernetes entry point是指高可用的一个设定值,如果生产环境有硬件或软件负载均衡指向这里的k8s master所有节点,那么就可以在这里填写负载均衡的统一入口地址。
相对于昂贵的F5专业硬件设备,我们也可以使用HAProxy和Keepalived的组合轻松完成这个设置,Breeze自带这个组合模块的部署。
例如下图的 192.168.92.30:6444 就是k8s集群高可用的统一入口,k8s的worker node会使用这个地址访问API Server。请注意如果使用的是Breeze自带的高可用组件haproxy+keepalived,则请填写实际的虚IP与默认端口6444。

接下来是可选安装项Prometheus(基于Prometheus Operator方式部署,集成Prometheus、Alertmanager、Grafana),这里请择一台Worker节点进行部署即可,有三个服务暴露端口可自行设定,注意NodePort端口号大于30000。

所有角色定义完成如下:

点击“下一步”开始安装部署。

开始部署

如果界面上所有角色图标全部变为绿色,则表示部署任务结束。可以登录任一k8s节点运行命令 kubectl get nodes 查看结果。


以上例子是3台etcd、3台k8s master、1台k8s worker node、1台镜像仓库的环境。实际可以增减规模。

验证集群状态

访问dashboard

Kubernetes Dashboard的访问入口我们采用了NodePort:30300的方式暴露端口,因此可以通过火狐浏览器访问 https://任意服务器IP:30300 来登录Dashboard页面,注意其它浏览器例如Chrome因为不接受自签名证书会拒绝访问请求。
新版本Dashboard引入了验证模式,可以通过以下命令获取admin-user的访问令牌:

$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk ‘{print $1}‘)
  • 1

将返回的token字串粘贴至登录窗口即可实现登录。

访问grafana

安装好Prometheus之后,可以访问以下服务页面:
Grafana:
用户名密码默认为admin/admin
这里使用ID 315的dashboard模板进行展示:

Prometheus:
http://任意服务器IP:30900

Alertmanager:
http://任意服务器IP:30903

访问Harbor

默认用户名密码admin/Harbor12345
登录成功:

查看集群状态

查看集群状态:

[[email protected] ~]# kubectl get cs
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-1               Healthy   {"health": "true"}
etcd-2               Healthy   {"health": "true"}
etcd-0               Healthy   {"health": "true"}
[[email protected] ~]#

查看节点状态:

[[email protected] ~]# kubectl get node -o wide
NAME       STATUS   ROLES    AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION               CONTAINER-RUNTIME
master01   Ready    master   25m   v1.13.2   192.168.92.11   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
master02   Ready    master   24m   v1.13.2   192.168.92.12   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
master03   Ready    master   24m   v1.13.2   192.168.92.13   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
worker01   Ready    <none>   23m   v1.13.2   192.168.92.21   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
[[email protected] ~]#

查看集群组件pod状态:

[[email protected] ~]# kubectl -n kube-system get pod -o wide
NAME                                    READY   STATUS    RESTARTS   AGE   IP              NODE       NOMINATED NODE   READINESS GATES
coredns-8595b69b-25nqs                  1/1     Running   0          25m   10.244.1.2      master03   <none>           <none>
coredns-8595b69b-dfzwz                  1/1     Running   0          25m   10.244.1.3      master03   <none>           <none>
kube-apiserver-master01                 1/1     Running   0          25m   192.168.92.11   master01   <none>           <none>
kube-apiserver-master02                 1/1     Running   0          24m   192.168.92.12   master02   <none>           <none>
kube-apiserver-master03                 1/1     Running   0          24m   192.168.92.13   master03   <none>           <none>
kube-controller-manager-master01        1/1     Running   0          24m   192.168.92.11   master01   <none>           <none>
kube-controller-manager-master02        1/1     Running   0          24m   192.168.92.12   master02   <none>           <none>
kube-controller-manager-master03        1/1     Running   0          24m   192.168.92.13   master03   <none>           <none>
kube-flannel-ds-6v625                   1/1     Running   0          24m   192.168.92.13   master03   <none>           <none>
kube-flannel-ds-8p8m7                   1/1     Running   0          24m   192.168.92.12   master02   <none>           <none>
kube-flannel-ds-m4ppq                   1/1     Running   0          23m   192.168.92.21   worker01   <none>           <none>
kube-flannel-ds-xrmd2                   1/1     Running   0          24m   192.168.92.11   master01   <none>           <none>
kube-proxy-bh4vl                        1/1     Running   0          25m   192.168.92.13   master03   <none>           <none>
kube-proxy-cq4fc                        1/1     Running   0          23m   192.168.92.21   worker01   <none>           <none>
kube-proxy-dz6l2                        1/1     Running   0          25m   192.168.92.12   master02   <none>           <none>
kube-proxy-qkmq8                        1/1     Running   0          25m   192.168.92.11   master01   <none>           <none>
kube-scheduler-master01                 1/1     Running   0          24m   192.168.92.11   master01   <none>           <none>
kube-scheduler-master02                 1/1     Running   0          24m   192.168.92.12   master02   <none>           <none>
kube-scheduler-master03                 1/1     Running   0          24m   192.168.92.13   master03   <none>           <none>
kubernetes-dashboard-6f9bfdf8cb-rn6wd   1/1     Running   0          24m   10.244.1.4      master03   <none>           <none>
[[email protected] ~]#

查看prometheus相关pod

[[email protected] ~]# kubectl -n monitoring get pod -o wide
NAME                                   READY   STATUS    RESTARTS   AGE   IP              NODE       NOMINATED NODE   READINESS GATES
alertmanager-main-0                    2/2     Running   0          19m   10.244.3.8      worker01   <none>           <none>
alertmanager-main-1                    2/2     Running   0          19m   10.244.3.10     worker01   <none>           <none>
alertmanager-main-2                    2/2     Running   0          19m   10.244.3.11     worker01   <none>           <none>
grafana-5c59c6fb9c-78ng5               1/1     Running   0          20m   10.244.3.4      worker01   <none>           <none>
kube-state-metrics-565c6647f7-sc8d5    4/4     Running   0          20m   10.244.3.5      worker01   <none>           <none>
node-exporter-5hdqk                    2/2     Running   0          20m   192.168.92.21   worker01   <none>           <none>
node-exporter-nxllq                    2/2     Running   0          20m   192.168.92.11   master01   <none>           <none>
node-exporter-q2znp                    2/2     Running   0          20m   192.168.92.12   master02   <none>           <none>
node-exporter-shdt8                    2/2     Running   0          20m   192.168.92.13   master03   <none>           <none>
prometheus-adapter-68c9d7dc54-bb9t4    1/1     Running   0          20m   10.244.3.6      worker01   <none>           <none>
prometheus-k8s-0                       3/3     Running   1          19m   10.244.3.9      worker01   <none>           <none>
prometheus-k8s-1                       3/3     Running   1          19m   10.244.3.7      worker01   <none>           <none>
prometheus-operator-5fcf4d9b4d-qkpb8   1/1     Running   0          20m   10.244.3.2      worker01   <none>           <none>
[[email protected] ~]#

查看service

[[email protected] ~]# kubectl get service -n kube-system
NAME                                           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
coredns-prometheus                             ClusterIP   None           <none>        9153/TCP         23m
kube-controller-manager-prometheus-discovery   ClusterIP   None           <none>        10252/TCP        23m
kube-dns                                       ClusterIP   10.96.0.10     <none>        53/UDP,53/TCP    30m
kube-scheduler-prometheus-discovery            ClusterIP   None           <none>        10251/TCP        23m
kubelet                                        ClusterIP   None           <none>        10250/TCP        21m
kubernetes-dashboard                           NodePort    10.99.39.217   <none>        8443:30300/TCP   30m
[[email protected] ~]# kubectl get service -n monitoring
NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
alertmanager-main       NodePort    10.101.39.236   <none>        9093:30903/TCP      24m
alertmanager-operated   ClusterIP   None            <none>        9093/TCP,6783/TCP   23m
etcd-k8s                ClusterIP   None            <none>        2379/TCP            23m
grafana                 NodePort    10.110.93.179   <none>        3000:30902/TCP      24m
kube-state-metrics      ClusterIP   None            <none>        8443/TCP,9443/TCP   24m
node-exporter           ClusterIP   None            <none>        9100/TCP            24m
prometheus-adapter      ClusterIP   10.105.49.184   <none>        443/TCP             24m
prometheus-k8s          NodePort    10.103.34.132   <none>        9090:30900/TCP      24m
prometheus-operated     ClusterIP   None            <none>        9090/TCP            23m
prometheus-operator     ClusterIP   None            <none>        8080/TCP            24m
[[email protected] ~]#

增加worker节点

在已经部署的集群内添加新的Worker Nodes。
准备worker节点,执行之前部署环境准备的配置相关步骤,配置主机名,配置ssh免密登录等。
(1) 在Breeze界面添加主机(设定主机名、IP地址、备注)。

(2) 在Breeze界面编辑Kubernetes角色,将新主机加入到kubernetes worker nodes列表并勾选"Just add new worker nodes, do not reinstall this cluster"。

(3) 在Breeze界面仅仅勾选Docker和Kubernetes并开始部署。

添加节点完成

查看节点状态

[[email protected] ~]# kubectl get nodes -o wide
NAME       STATUS   ROLES    AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION               CONTAINER-RUNTIME
master01   Ready    master   10h     v1.13.2   192.168.92.11   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
master02   Ready    master   10h     v1.13.2   192.168.92.12   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
master03   Ready    master   10h     v1.13.2   192.168.92.13   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
worker01   Ready    <none>   10h     v1.13.2   192.168.92.21   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
worker02   Ready    <none>   4m48s   v1.13.2   192.168.92.22   <none>        CentOS Linux 7 (Core)   4.20.2-1.el7.elrepo.x86_64   docker://18.6.1
[[email protected] ~]# 

手动删除节点
在Master节点上运行:

[[email protected] ~]# kubectl drain worker02 --delete-local-data --force --ignore-daemonsets
[[email protected] ~]# kubectl delete node worker02
node "worker02" deleted
[[email protected] ~]# kubectl get nodes
NAME       STATUS   ROLES    AGE   VERSION
master01   Ready    master   10h   v1.13.2
master02   Ready    master   10h   v1.13.2
master03   Ready    master   10h   v1.13.2
worker01   Ready    <none>   10h   v1.13.2
[[email protected] ~]# 

上面两条命令执行完成后,在k8s-node2节点执行清理命令,重置kubeadm的安装状态:

[[email protected] ~]# kubeadm reset

在master上删除node并不会清理k8s-node2运行的容器,需要在删除节点上面手动运行清理命令。

常见故障排错

常见故障排错方法
参考:https://github.com/wise2c-devops/breeze/blob/master/TroubleShooting-CN.md
前端Web UI的日志如果不能判断出具体问题所在,可以在部署机上输入以下命令来获取更详细的日志:

[[email protected] ~]# docker logs -f deploy-main

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11320586.html

时间: 2024-11-05 20:32:14

[转帖]Breeze部署kubernetes1.13.2高可用集群的相关文章

部署kubernetes1.8.3高可用集群

Kubernetes作为容器应用的管理平台,通过对pod的运行状态进行监控,并且根据主机或容器失效的状态将新的pod调度到其他node上,实现了应用层的高可用. 针对kubernetes集群,高可用性还包含以下两个层面的考虑: etcd存储的高可用 master节点的高可用 在开始之前,先贴一下架构图: etcd作为kubernetes的中心数据库,必须保证其不是单点.不过etcd集群的部署很简单,这里就不细说了,之前写过一键部署脚本,有兴趣的同学可以往前翻. 在k8s全面容器化加上各种验证机制

部署Memcached+magent+keepalived高可用集群

Memcached+magent+keepalived高可用集群 magent是一款开源的代理服务软件,我们可以通过他来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通过magent绑定的VIP从客户端登录memcached写入数据,其他节点的memcached数据也会同步.? 案例环境 主机名称 IP 主要软件 memcached主 192.168.200.128 Magent.memcached.li

部署 redis 哨兵模式高可用集群

环境 master: 192.168.1.224 slave1: 192.168.1.225 slave2: 192.168.1.226 修改系统参数 #somaxconn echo 1024 > /proc/sys/net/core/somaxconn #overcommit_memory vim /etc/sysctl.conf vm.overcommit_memory = 1 安装redis 5 yum install -y gcc gcc-c++ wget http://download

Heatbeat高可用集群

网络规划 主机名 接口 Ip 用途 MASTER node1.xmfb.com Eth0 172.16.4.100 提供高可用服务节点 BACKUP node2.xmfb.com Eth0 172.16.4.101 备用节点,随时准备接替主节点 NFS NFS Eth0 172.16.4.200 提供共享存储 VIP Eth0:0 172.16.4.1 虚拟ip 配置中所有系统均使用centos6.6 64位 配置HA集群的前提: (1)节点间时间必须同步:使用ntp协议实现: [[email 

部署redis主从高可用集群

部署redis主从高可用集群本文部署的redis集群是一主一从,这两台服务器都设置了哨兵进程,另外再加一台哨兵做仲裁,建议哨兵数量为基数172.16.1.187    redis主+哨兵172.16.1.188    redis从+哨兵172.16.1.189    哨兵以上系统均为CentOS6 在187,188,189上部署redis过程如下:(1)redis使用编译安装方式,所以需要安装编译基本组件# yum -y install gcc gcc-c++ make cmake cpp gl

线上测试高可用集群部署文档【我的技术我做主】

线上测试高可用集群部署文档 目录: 目录:1 项目需求:2 实现方式:2 拓扑图:3 系统及软件版本:3 安装步骤:4 IP分配:4 LVS和keepalived的安装和配置:4 LVS主配置:4 LVS2备 配置:7 web服务器配置9 Mysql-MHA高可用:13 Mysql主配置:13 manager管理端操作:15 VIP切换:16 测试:26 下面是centos5.6的系统环境,如果是centos6版本,只需改动少许地方即可,步骤一致 . ---- by 金戈铁马行飞燕 项目需求:

kubeadm部署k8s1.9高可用集群--4部署master节点

部署master节点 kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 本文档介绍部署一个三节点高可用 master 集群的步骤,分别命名为k8s-host1.k8s-host2.k8s-host3: k8s-host1:172.16.120.154 k8s-host2:172.16.120.155 k8s-host3:172.16.120.156 安装docker 在每台主机安装do

ProxySQL Cluster 配置详解 以及 高可用集群方案部署记录(完结篇)

早期的ProxySQL若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是ProxySQl 从1.4.2版本后,ProxySQL支持原生的Cluster集群搭建,实例之间可以互通一些配置数据,大大简化了管理与维护操作. ProxySQL是一个非中心化代理,在拓扑中,建议将它部署在靠近应用程序服务器的位置处.ProxySQL节点可以很方便地扩展到上百个节点,因为它支持runtime修改配

Puppet自动化高可用集群部署

前言:随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台puppetmaster响应很慢,压力大,解析缓慢,有什么优化的方案吗?可以使用Puppetmaster配置多端口,结合Nginx web代理,这样puppetmaster承受能力至少可以提升10倍以上. 一.安装配置mongrel服务: 要使用puppet多端口配置,需要指定mongrel类型,默认没有安装,需要安装.在Puppetmaster服务器端执行如下命令(前提是已经安装了对应版本的