当前位置: 首页 > news >正文

全国送花网站wordpress免费博客

全国送花网站,wordpress免费博客,i深建官方网站,青海商会网站建设公司文章目录多master#xff08;高可用#xff09;介绍高可用集群使用技术介绍搭建高可用k8s集群步骤1. 准备环境-系统初始化2. 在所有master节点上部署keepalived3.1 安装相关包3.2 配置master节点3.3 部署haproxy错误解决3. 所有节点安装Docker/kubeadm/kubelet4. 部署Kuberne… 文章目录多master高可用介绍高可用集群使用技术介绍搭建高可用k8s集群步骤1. 准备环境-系统初始化2. 在所有master节点上部署keepalived3.1 安装相关包3.2 配置master节点3.3 部署haproxy错误解决3. 所有节点安装Docker/kubeadm/kubelet4. 部署Kubernetes Master4.1 创建kubreadm配置文件*初始化节点*4.2 在master1节点执行5. 安装集群网络6. master2、master3节点加入集群6.1 复制密钥及相关文件6.2 master2和master3加入到集群7. 加入Kubernetes Node报错解决8. 测试kubernetes集群多master高可用介绍 假设现在有3个node节点和2个master节点node1到底是连到master1还是连到master2需要有人来分配这个中间人就是load balancerload balancer起到两个作用一是负载。二是检查master状态如果master1异常就会使node连到master2上如果master1正常则正常提供服务。由于节点之间互相访问是通过IP连接这里也是一样的只不过是通过VIP虚拟ip连接。 高可用集群使用技术介绍 keepalived检查master状态是否正常运行配置虚拟IP。 haproxy负载均衡服务器起到负载作用。 master具体组件apiserver, controller-manager, scheduler。 搭建高可用k8s集群步骤 前提条件 ①固定四台主机IP参考文章固定虚拟机IP ②可连外网 主机IPmaster1192.168.2.200master2192.168.2.201master3192.168.2.204node1192.168.2.202虚拟IP192.168.2.203 我们以3台master1台node为例首先准备好4台服务器分别在四台服务器上做操作。 1. 准备环境-系统初始化 # 关闭防火墙 systemctl stop fierwalld #临时关闭 systemctl disable fierwalld #永久关闭# 关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时# 关闭swap分区 swapoff -a #临时 sed -ri s/.*swap.*/#/ /etc/fstab #永久# 根据规划设置主机名 hostnamectl set-hostname hostname# 在master中添加hosts每一个master都要执行 cat /etc/hosts EOF 192.168.2.203 k8s-vip 192.168.2.200 master1 192.168.2.201 master2 192.168.2.202 node1 EOF# 将桥接的 IPv4 流量传递到 iptables 的链 cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF sysctl --system # 生效# 时间同步 yum install ntpdate -y ntpdate time.windows.com2. 在所有master节点上部署keepalived 3.1 安装相关包 # 安装相关工具 yum install -y conntrack-tools libseccomp libtool-ltdl # 安装keepalived yum install -y keepalived3.2 配置master节点 master1节点配置 cat /etc/keepalived/keepalived.conf EOF ! Configuration File for keepalivedglobal_defs {router_id k8s }vrrp_script check_haproxy {script killall -0 haproxyinterval 3weight -2fall 10rise 2 }vrrp_instance VI_1 {state MASTER interface ens33 # ens33 为网卡名称virtual_router_id 51priority 250advert_int 1authentication {auth_type PASSauth_pass ceb1b3ec013d66163d6ab}virtual_ipaddress {192.168.2.203 # 虚拟ip}track_script {check_haproxy}} EOFmaster2、master3节点配置 cat /etc/keepalived/keepalived.conf EOF ! Configuration File for keepalivedglobal_defs {router_id k8s }vrrp_script check_haproxy {script killall -0 haproxyinterval 3weight -2fall 10rise 2 }vrrp_instance VI_1 {state BACKUP interface ens33 # ens33 为网卡名称virtual_router_id 51priority 200advert_int 1authentication {auth_type PASSauth_pass ceb1b3ec013d66163d6ab}virtual_ipaddress {192.168.2.203 # 虚拟ip}track_script {check_haproxy}} EOF启动和检查 三台master节点都执行 # 启动keepalived systemctl start keepalived.service # 设置开机启动 systemctl enable keepalived.service # 查看启动状态 systemctl status keepalived.service启动后查看master的网卡信息。由于虚拟IP配到了master1上执行后master1节点上会多出一个IP即为虚拟IPmaster2和master3上没有挂上master1后才会出现。 ip a s ens333.3 部署haproxy 在3个master节点安装 haproxy # 安装haproxy yum install -y haproxy配置 3台master节点的配置均相同配置中声明了后端代理的3个master节点服务器指定了haproxy运行的端口为16443等因此16443端口为集群的入口 cat /etc/haproxy/haproxy.cfg EOF #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global# to have these messages end up in /var/log/haproxy.log you will# need to:# 1) configure syslog to accept network log events. This is done# by adding the -r option to the SYSLOGD_OPTIONS in# /etc/sysconfig/syslog# 2) configure local2 events to go to the /var/log/haproxy.log# file. A line like the following can be added to# /etc/sysconfig/syslog## local2.* /var/log/haproxy.log#log 127.0.0.1 local2chroot /var/lib/haproxypidfile /var/run/haproxy.pidmaxconn 4000user haproxygroup haproxydaemon # turn on stats unix socketstats socket /var/lib/haproxy/stats #--------------------------------------------------------------------- # common defaults that all the listen and backend sections will # use if not designated in their block #--------------------------------------------------------------------- defaultsmode httplog globaloption httplogoption dontlognulloption http-server-closeoption forwardfor except 127.0.0.0/8option redispatchretries 3timeout http-request 10stimeout queue 1mtimeout connect 10stimeout client 1mtimeout server 1mtimeout http-keep-alive 10stimeout check 10smaxconn 3000 #--------------------------------------------------------------------- # kubernetes apiserver frontend which proxys to the backends #--------------------------------------------------------------------- frontend kubernetes-apiservermode tcpbind *:16443 #默认监听端口16443option tcplogdefault_backend kubernetes-apiserver #--------------------------------------------------------------------- # round robin balancing between the various backends #--------------------------------------------------------------------- backend kubernetes-apiservermode tcpbalance roundrobinserver master01.k8s.io 192.168.2.200:16443 check # 修改IPserver master02.k8s.io 192.168.2.201:16443 check # 修改IPserver master03.k8s.io 192.168.2.204:16443 check # 修改IP #--------------------------------------------------------------------- # collection haproxy statistics message #--------------------------------------------------------------------- listen statsbind *:1080stats auth admin:awesomePasswordstats refresh 5sstats realm HAProxy\ Statisticsstats uri /admin?stats EOF启动和检查 两台master都启动 # 启动 haproxy systemctl start haproxy # 设置开启自启 systemctl enable haproxy # 查看启动状态 systemctl status haproxy启动后检查端口查看对应的端口是否包含 16443 netstat -tunlp | grep haproxy错误解决 报错 针对这个问题出现的原因就是Linux缺少对应的包使用命令安装即可 yum install -y net-tools。再次执行netstat命令即可。 3. 所有节点安装Docker/kubeadm/kubelet 所有节点安装Docker/kubeadm/kubelet Kubernetes默认CRI容器运行时为Docker因此先安装Docker。 安装之前确保没有其他dockers版本如果有需要删除干净后再安装卸载方式可以参考这篇文章卸载docker。 安装Docker所有masternode都要安装 # 下载镜像 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo # 安装docker yum -y install docker-ce-18.06.1.ce-3.el7 # 开机自启动并且启动docker systemctl enable docker systemctl start docker # 查看docker状态 systemctl status docker # 查看docker版本 docker --version# 设置仓库地址 cat /etc/docker/daemon.json EOF {registry-mirrors: [https://b9pmyelo.mirror.aliyuncs.com] } EOF# 重启docker systemctl restart docker添加阿里云yum源所有节点masternode cat /etc/yum.repos.d/docker.repoEOF [docker-ce-edge] nameDocker CE Edge - \$basearch baseurlhttps://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge enabled1 gpgcheck1 gpgkeyhttps://mirrors.aliyun.com/docker-ce/linux/centos/gpg EOF# 重启docker systemctl restart docker添加kubernetes软件源 cat /etc/yum.repos.d/kubernetes.repo EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck0 repo_gpgcheck0 gpgkeyhttps://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF安装kubeadmkubectlkubelet 由于版本更新频繁这里指定版本号部署 # 安装kubelet、kubeadm、kubectl同时指定版本 yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 # 设置开机启动 systemctl enable kubelet4. 部署Kubernetes Master 4.1 创建kubreadm配置文件 在具有vip的master上进行初始化操作这里为master1 # 创建文件夹 mkdir /usr/local/kubernetes/manifests -p # 到manifests目录 cd /usr/local/kubernetes/manifests/ # 新建yaml文件 vim kubeadm-config.yaml下面内容修改IP 后复制进去 apiServer:certSANs:- master1- master2- master3- k8s-vip #虚拟IP的名字需和/etc/hosts里一致- 192.168.2.203 # 虚拟IP- 192.168.2.200 # master1- 192.168.2.201 # master2- 192.168.2.204 # master3- 127.0.0.1extraArgs:authorization-mode: Node,RBACtimeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta1 certificatesDir: /etc/kubernetes/pki clusterName: kubernetes controlPlaneEndpoint: k8s-vip:16443 #虚拟IP16443 controllerManager: {} dns:type: CoreDNS etcd:local:dataDir: /var/lib/etcd imageRepository: registry.aliyuncs.com/google_containers kind: ClusterConfiguration kubernetesVersion: v1.18.0 networking:dnsDomain: cluster.localpodSubnet: 10.244.0.0/16serviceSubnet: 10.1.0.0/16 scheduler: {}初始化节点 如果上面的yaml文件已经执行过一次再次执行就会报错这时就需要将集群初始化。 步骤 # 1. 还原由 kubeadm init 或 kubeadm join 所做的更改 kubeadm reset -f # 2. 删除相关文件 rm -rf /etc/kubernetes/* rm -rf /var/lib/etcd/*然后再次执行yaml文件 4.2 在master1节点执行 kubeadm init --config kubeadm-config.yaml执行完成后就会在拉取镜像【需要等待…】 按照提示配置环境变量使用kubectl工具 # 执行下方命令 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # 查看节点 kubectl get nodes # 查看pod kubectl get pods -n kube-system由于没有安装网络插件所以会有pending状态无妨继续往下执行就好了。 按照提示保存以下内容一会要使用 kubeadm join k8s-vip:16443 --token ivcq40.a1bb605g6df4xhdw \--discovery-token-ca-cert-hash sha256:b65dcb57a2934439562ae138f552942600296edc04cdefb7da93031cf23c9a08 \--control-plane–control-plane 只有在添加master节点的时候才有 # 查看集群健康状态 kubectl get cs # 查看pod kubectl get pods -n kube-system5. 安装集群网络 从官方地址获取到flannel的yaml在master1上执行 # 创建文件夹 mkdir flannel cd flannel # 下载yaml文件 wget -c https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml安装flannel网络 kubectl apply -f kube-flannel.yml 检查都已经running且master已经ready kubectl get pods -n kube-system6. master2、master3节点加入集群 6.1 复制密钥及相关文件 从master1复制密钥及相关文件到master2 ## master1中执行修改IP分别改为master2/3的IP执行2遍 # ssh root192.168.2.201 mkdir -p /etc/kubernetes/pki/etcd # 修改IPmaster2\master3的IP用master1连接master2\master3输入密码# scp /etc/kubernetes/admin.conf root192.168.2.201:/etc/kubernetes# scp /etc/kubernetes/pki/{ca.*,sa.*,front-proxy-ca.*} root192.168.2.201:/etc/kubernetes/pki# scp /etc/kubernetes/pki/etcd/ca.* root192.168.2.201:/etc/kubernetes/pki/etcd6.2 master2和master3加入到集群 在master2、master3上执行在master1上init后输出的join命令需要带上参数–control-plane表示把master控制节点加入集群。 # master2上执行 kubeadm join k8s-vip:16443 --token ivcq40.a1bb605g6df4xhdw \--discovery-token-ca-cert-hash sha256:b65dcb57a2934439562ae138f552942600296edc04cdefb7da93031cf23c9a08 \--control-plane按照提示执行输出的3行命令 检查状态 kubectl get nodeskubectl get pods --all-namespaces7. 加入Kubernetes Node 向集群添加新节点执行在kubeadm init输出的kubeadm join命令不加参数–control-plane # 在node1上执行 kubeadm join k8s-vip:16443 --token ivcq40.a1bb605g6df4xhdw \--discovery-token-ca-cert-hash sha256:b65dcb57a2934439562ae138f552942600296edc04cdefb7da93031cf23c9a08报错解决 执行命令后报错no such host如下 这时候需要将node1节点里的hosts表里的内容保持与master节点一致再次执行就可以了。 集群网络重新安装因为添加了新的node节点 # 在master1节点上执行kubectl apply -f flannel/kube-flannel.yml检查状态 kubectl get nodes kubectl get pods --all-namespaces8. 测试kubernetes集群 在Kubernetes集群中创建一个pod验证是否正常运行 # 创建nginx deployment kubectl create deployment nginx --imagenginx # 暴露端口 kubectl expose deployment nginx --port80 --target-port80 --typeNodePort # 查看状态 kubectl get pod,svc然后通过任何一个master或node节点或者虚拟IP都能够访问nginx页面
http://www.w-s-a.com/news/181073/

相关文章:

  • 开源网站建设是什么工作个人虚拟网站
  • 网站制作的一般过程优化关键词排名公司
  • 如何使用阿里云建设网站网站两边广告
  • 互联网信息服务小红书seo是什么意思
  • 深圳市南山区建设局网站公司简介网页
  • 免费小程序制作软件爱站网站seo查询工具
  • 承接电商网站建设缔烨建设公司网站
  • 网站运营介绍十大国外室内设计网站
  • 网站建设完毕后怎么加后台电影购买网站怎么设计
  • 空间ip地址访问网站音乐分享 wordpress
  • 做网站一单能挣多少wordpress主题文件夹在哪
  • 视频社区app源码台州优化网站
  • 保定高端网站建设做微商好还是开网站好
  • 有什么方法在淘宝发布网站建设设计wordpress评分
  • 自己做的网站怎么爬数据库酷播wordpress
  • 广州哪家做网站还可以黑龙江省建设厅网站的电话
  • 青海省高等级公路建设管局网站国内做led灯网站有
  • 做网站成功建设银行网站网址
  • 自动生成网站上海十大活动策划公司
  • 企业网站建设源码HTML论述市场营销对网站设计的影响
  • 网站设计常见问题建设工程网上质检备案网站
  • 网站怎样优化文章关键词建设网站需要钱吗
  • 加强网站建设和管理的通知重庆网站推广产品
  • 网站建设术语解释百度发布信息的免费平台
  • 情公司做的网站seo与网站优化 pdf
  • 做一个购物网站多少钱江阴市住房和城乡建设局网站
  • 网站建设都包括哪些ps怎么做网站首页和超链接
  • 怎样低成本做网站推广编辑网站教程
  • 邯郸网站建设信息网站开发报价人天
  • 王店镇建设中心小学网站酷玛网站建设