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

企业网站源代码下载中国推广网

企业网站源代码下载,中国推广网,公司怎么做网站,网站交接需要哪些前提说明 本系列文档适用于中小规模(<50)的Kubernetes生产环境&#xff0c;大型环境没有经验&#xff0c;有待验证 所有节点采用云上虚拟机的方式部署 本系列文档没考虑k8s安全配置&#xff0c;安全要求高的环境不适用&#xff0c;后续会补充完善 本系列文档属于实践之路…

前提说明

本系列文档适用于中小规模(<=50)的Kubernetes生产环境,大型环境没有经验,有待验证

所有节点采用云上虚拟机的方式部署

本系列文档没考虑k8s安全配置,安全要求高的环境不适用,后续会补充完善

本系列文档属于实践之路上的积累,会不断根据线上遇到的问题进行优化改进

本系列文档基于KubeSphere部署的Kubernetes,后续的很多功能实现都依托于KubeSphere

本系列文档涉及的Ansible代码可以在https://gitee.com/zdevops/cloudnative获取

KubeSphere简介

全栈的 Kubernetes 容器云 PaaS 解决方案

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的
DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

  1. 完全开源
    通过 CNCF 一致性认证的 Kubernetes 平台,100% 开源,由社区驱动与开发
  2. 简易安装
    支持部署在任何基础设施环境,提供在线与离线安装,支持一键升级与扩容集群
  3. 功能丰富
    在一个平台统一纳管 DevOps、云原生可观测性、服务网格、应用生命周期、多租户、多集群、存储与网络
  4. 模块化 & 可插拔
  5. 平台中的所有功能都是可插拔与松耦合,您可以根据业务场景可选安装所需功能组件

选型理由(从运维的角度考虑)

  • 安装简单,使用简单
  • 具备构建一站式企业级的 DevOps 架构与可视化运维能力(省去自己用开源工具手工搭积木)
  • 提供从平台到应用维度的日志、监控、事件、审计、告警与通知,实现集中式与多租户隔离的可观测性
  • 简化应用的持续集成、测试、审核、发布、升级与弹性扩缩容
  • 为云原生应用提供基于微服务的灰度发布、流量管理、网络拓扑与追踪
  • 提供易用的界面命令终端与图形化操作面板,满足不同使用习惯的运维人员
  • 可轻松解耦,避免厂商绑定

部署架构图

节点规划

软件版本

  • 操作系统版本:centos7.9
  • kubesphere: v3.1.1
  • KubeKey版本:v1.1.1
  • Kubernetes版本:v1.20.4
  • docker版本:v19.03.15

规划说明

  • k8s集群规划
    • 负载均衡
      • 2节点,HAProxy,使用keepalived实现高可用
    • Master节点:3节点,部署KubeSphere和Kubernetes的管理组件,etcd等服务
      • 本方案并没有把etcd单独部署,有条件或是规模较大的场景可以单独部署etcd
    • Worker节点:6节点,部署应用,根据实际需求决定数量
  • 存储集群
    • 3节点,GlusterFS
    • 每个节点1T数据盘
  • 中间件集群
    • 在k8s集群之外,独立部署的常见中间件
    • nginx代理节点,使用keepalived实现高可用,不采用Ingress
    • MySQL数据库,主从架构,中小规模使用,大规模需要专业运维人员或是使用云上成熟的产品,最好使用云服务商的产品
    • Ansible,单独的自动化运维管理节点,执行日常批量运维管理操作
    • Gitlab,运维代码管理,实现Gitops
    • Harbor,镜像仓库
    • Elasticsearch,3节点,存储日志
    • Prometheus,单独部署,用于k8s集群和pod的监控
    • Redis集群,3节点哨兵模式,该集群暂时还是部署在k8s上,后期考虑单独部署,因此预先规划预留机器,建议考虑云服务商的产品
    • RocketMQ集群,3节点,该集群暂时还是部署在k8s上,后期考虑单独部署,因此预先规划预留机器,建议考虑云服务上的产品
  • 网络规划:我们网络要求比较多。因此,不同功能模块,规划了不同的网段,各位可根据需求合理规划

功能域网段说明
k8s集群192.168.9.0/24k8s集群内部节点使用
存储集群192.168.10.0/24存储集群内部节点使用
中间件集群192.168.11.0/24独立在k8s集群外的,各种中间件节点使用
-  
存储选型说明:
  1. 候选者
存储方案优点缺点说明
Ceph资源多没有ceph集群故障处理能力,最好不要碰曾经,经历过3副本全部损坏数据丢失的惨痛经历,因此没有能力处理各种故障之前不会再轻易选择
GlusterFS部署、维护简单;多副本高可用资料少部署和维护简单,出了问题找回数据的可能性大一些
NFS使用广泛单点、网络抖动据说生产环境用的很多,但是单点和网络抖动风险,隐患不小,暂不考虑
MinIO官宣全球领先的对象存储先锋,还未实践
Longhorn官宣企业级云原生容器存储解决方案,还未实践
  1. 入选者(第一季)
    GlusterFS
  2. 说明
    • 以上方案为初期初选,属于摸着石头过河,选一个先用着,后期根据运行情况再重新调整,
    • 大家请根据自己的存储需求和团队运维能力选择适合的方案。
    • 因为我们的业务场景对于持久化存储的需求也就是存放一些log日志,能承受一定的数据损失,因此综合选择了GlusterFS
    • 存储规划中假设1T数据满足需求,没考虑扩容,后续会做补充。

Kubernetes集群节点规划

节点角色主机名CPU(核)内存(GB)系统盘(GB)数据盘(GB)IP备注
Masterk8s-master-0832505001302T
Workerk8s-node-083250500130
Workerk8s-node-183250500130
Workerk8s-node-242450500131

存储集群节点规划

节点角色主机名CPU(核)内存(GB)系统盘(GB)数据盘(GB)IP备注
存储节点glusterfs-node-048501000132
存储节点glusterfs-node-148501000132
存储节点glusterfs-node-248501000132

中间件与数据库节点规划

节点角色主机名CPU(核)内存(GB)系统盘(GB)数据盘(GB)IP备注
主节点master102050300132
从节点slave102050300132

k8s集群服务器基础配置

操作系统基础配置

  • 以下操作在k8s集群的Master和Worker节点均执行
  • 以下操作为了文档需要采用的手工命令的方式,实践中都采用的ansible进行的自动化配置
  1. 关闭防火墙和SELinux
    本环境没有考虑更多的安全配置,因此关闭了防火墙和SELinux,有更高安全要求的环境不需要关闭,而是需要进行更多的安全配置。
[root@k8s-master-0 ~]# systemctl stop firewalld && systemctl disable firewalld
[root@k8s-master-0 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  1. 配置主机名
[root@k8s-master-0 ~]# hostnamectl set-hostname 规划的主机名
  1. 配置主机名解析(可选)
  2. 挂载数据盘
# 查看数据盘盘符
[root@k8s-master-0 ~]# lsblk  
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
├─vda1 253:1 0 4G 0 part
└─vda2 253:2 0 36G 0 part /
vdb 253:16 0 500G 0 disk# 分区
[root@k8s-master-0 ~]# fdisk /dev/vdb
n
p
一路回车
....
w # 格式化文件系统(可选ext4或是xfs)
[root@k8s-master-0 ~]# mkfs.ext4 /dev/vdb1# 创建挂载目录
[root@k8s-master-0 ~]# mkdir /data# 挂载磁盘
[root@k8s-master-0 ~]# mount /dev/vdb1 /data# 开机自动挂载
[root@k8s-master-0 ~]# echo '/dev/vdb1       /data   ext4    defaults        0 0' >> /etc/fstab
  1. 更新操作系统并重启
[root@k8s-master-0 ~]# yum update
[root@k8s-master-0 ~]# reboot
  1. 安装依赖软件包
[root@k8s-master-0 ~]# yum install socat conntrack ebtables ipset

基本的安全配置

  1. 基线加固配置
    • 每个企业的基线扫描标准和工具不尽相同,因此本节内容请自行根据漏扫报告的整改要求进行配置
    • 如有有需要,后期可以分享我们使用的基线加固的自动化配置脚本

Docker安装配置

容器运行时,我们生产环境保守的选择了19.03版本的docke,安装时选择最新版的即可

  1. 配置docker yum源
[root@k8s-master-0 ~]# vi /etc/yum.repods.d/docker.repo[docker-ce-stable]
baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/$releasever/$basearch/stable
gpgcheck=1
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/gpg
enabled=1[root@k8s-master-0 ~]# yum clean all
[root@k8s-master-0 ~]# yum makecache
  1. 创建docker的配置文件目录和配置文件
[root@k8s-master-0 ~]# mkdir -p /etc/docker/[root@k8s-master-0 ~]# vi /etc/docker/daemon.json{"data-root": "/data/docker","registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],"log-opts": {"max-size": "5m","max-file":"3"},"exec-opts": ["native.cgroupdriver=systemd"]
}
  1. 安装Docker
[root@k8s-master-0 ~]# yum install  docker-ce-19.03.15-3.el7  docker-ce-cli-19.03.15-3.el7 -y
  1. 启动服务并设置开机自启动
[root@k8s-master-0 ~]# systemctl restart docker.service && systemctl enable docker.service
  1. 验证
[root@k8s-master-0 ~]# docker version
Client: Docker Engine - CommunityVersion:           19.03.15API version:       1.40Go version:        go1.13.15Git commit:        99e3ed8919Built:             Sat Jan 30 03:17:57 2021OS/Arch:           linux/amd64Experimental:      falseServer: Docker Engine - CommunityEngine:Version:          19.03.15API version:      1.40 (minimum version 1.12)Go version:       go1.13.15Git commit:       99e3ed8919Built:            Sat Jan 30 03:16:33 2021OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.4.12GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5drunc:Version:          1.0.2GitCommit:        v1.0.2-0-g52b36a2docker-init:Version:          0.18.0GitCommit:        fec3683

安装配置负载均衡

三种解决方案

  1. 采用公有云或是私有云平台上自带的弹性负载均衡服务
    • 配置监听器监听的端口
服务协议端口
apiserverTCP6443
ks-consoleTCP30880
httpTCP80
httpsTCP443
-  
  1. 采用HAProxy或是Nginx自建负载均衡(此次选择
  2. 使用KubeSphere自带的解决方案部署HAProxy
    • kubekye v1.2.1开始支持
    • 参考使用 KubeKey 内置 HAproxy 创建高可用集群

安装配置

  1. 安装软件包(所有负载均衡节点)
    [root@k8s-master-0 ~]# yum install haproxy keepalived
  2. 配置HAproxy(所有负载均衡节点,配置相同)
    • 编辑配置文件
[root@k8s-master-0 ~]# vi /etc/haproxy/haproxy.cfg
-  配置示例 
globallog /dev/log  local0 warningchroot      /var/lib/haproxypidfile     /var/run/haproxy.pidmaxconn     4000user        haproxygroup       haproxydaemonstats socket /var/lib/haproxy/statsdefaultslog globaloption  httplogoption  dontlognulltimeout connect 5000timeout client 50000timeout server 50000frontend kube-apiserverbind *:6443mode tcpoption tcplogdefault_backend kube-apiserverbackend kube-apiservermode tcpoption tcplogoption tcp-checkbalance roundrobindefault-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100server kube-apiserver-1 192.168.9.4:6443 check # Replace the IP address with your own.server kube-apiserver-2 192.168.9.5:6443 check # Replace the IP address with your own.server kube-apiserver-3 192.168.9.6:6443 check # Replace the IP address with your own.frontend ks-consolebind *:30880mode tcpoption tcplogdefault_backend ks-consolebackend ks-consolemode tcpoption tcplogoption tcp-checkbalance roundrobindefault-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100server kube-apiserver-1 192.168.9.4:30880 check # Replace the IP address with your own.server kube-apiserver-2 192.168.9.5:30880 check # Replace the IP address with your own.server kube-apiserver-3 192.168.9.6:30880 check # Replace the IP address with your own.
-  启动服务并设置开机自启动(所有负载均衡节点) 
[root@k8s-master-0 ~]# systemctl restart haproxy && systemctl enable haproxy
  1. 配置Keepalived
    • 编辑配置文件(所有负载均衡节点)
[root@k8s-master-0 ~]# vi /etc/keepalived/keepalived.conf
-  LB节点1配置文件示例 
global_defs {notification_email {}router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script chk_haproxy {script "killall -0 haproxy"interval 2weight 2
}vrrp_instance haproxy-vip {state MASTER                   # 主服务器的初始状态priority 100                   # 优先级主服务器的要高interface eth0                 # 网卡名称,根据实际情况替换virtual_router_id 60advert_int 1authentication {auth_type PASSauth_pass 1111}unicast_src_ip 192.168.9.2      # 本机eth0网卡的IP地址unicast_peer {192.168.9.3                   # SLB节点2的IP地址}virtual_ipaddress {192.168.9.1/24               # VIP地址}track_script {chk_haproxy}
}
-  LB节点2配置文件示例 
global_defs {notification_email {}router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script chk_haproxy {script "killall -0 haproxy"interval 2weight 2
}vrrp_instance haproxy-vip {state BACKUP                   # 从服务器的初始状态priority 99                    # 优先级,从服务器的低于主服务器的值interface eth0                 # 网卡名称,根据实际情况替换virtual_router_id 60advert_int 1authentication {auth_type PASSauth_pass 1111}unicast_src_ip 192.168.9.3      # 本机eth0网卡的IP地址unicast_peer {192.168.9.2                   # SLB节点1的IP地址}virtual_ipaddress {192.168.9.1/24                # VIP地址}track_script {chk_haproxy}
}
-  启动服务并设置开机自启动(所有负载均衡节点) 
[root@k8s-master-0 ~]# systemctl restart keepalived && systemctl enable keepalived
  1. 验证
    • 查看vip(在负载均衡节点)
[root@k8s-slb-0 ~]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 52:54:9e:27:38:c8 brd ff:ff:ff:ff:ff:ffinet 192.168.9.2/24 brd 192.168.9.255 scope global noprefixroute dynamic eth0valid_lft 73334sec preferred_lft 73334secinet 192.168.9.1/24 scope global secondary eth0valid_lft forever preferred_lft foreverinet6 fe80::510e:f96:98b2:af40/64 scope link noprefixroutevalid_lft forever preferred_lft forever
-  验证vip的连通性(在k8s-master其他节点) 
[root@k8s-master-0 ~]# ping -c 4 192.168.9.1
PING 192.168.9.1 (192.168.9.1) 56(84) bytes of data.
64 bytes from 192.168.9.1: icmp_seq=1 ttl=64 time=0.664 ms
64 bytes from 192.168.9.1: icmp_seq=2 ttl=64 time=0.354 ms
64 bytes from 192.168.9.1: icmp_seq=3 ttl=64 time=0.339 ms
64 bytes from 192.168.9.1: icmp_seq=4 ttl=64 time=0.304 ms--- 192.168.9.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.304/0.415/0.664/0.145 ms

KubeSphere安装Kubernetes

  1. 下载KubeKey
    KubeKey安装在了master-0节点,也可以安装在运维管理节点
# 使用国内环境
[root@k8s-master-0 ~]# export KKZONE=cn# 执行以下命令下载 KubeKey
[root@k8s-master-0 ~]# curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -# 为kk添加可执行权限(可选)
[root@k8s-master-0 ~]# chmod +x kk
  1. 创建包含默认配置的示例配置文件config-sample.yaml
[root@k8s-master-0 ~]# ./kk create config --with-kubesphere v3.1.1 --with-kubernetes v1.20.4
-  --with-kubesphere 指定KubeSphere 版本v3.1.1 
-  --with-kubernetes 指定Kubernetes 版本v1.20.4 
  1. 根据规划,编辑修改配置文件
    • vi config-sample.yaml
apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:name: sample
spec:hosts:- {name: k8s-master-0, address: 192.168.9.3, internalAddress: 192.168.9.3, user: root, password: P@ssw0rd@123}- {name: k8s-master-1, address: 192.168.9.4, internalAddress: 192.168.9.4, user: root, password: P@ssw0rd@123}- {name: k8s-master-2, address: 192.168.9.5, internalAddress: 192.168.9.5, user: root, password: P@ssw0rd@123}- {name: k8s-node-0, address: 192.168.9.6, internalAddress: 192.168.9.6, user: root, password: P@ssw0rd@123}- {name: k8s-node-1, address: 192.168.9.7, internalAddress: 192.168.9.7, user: root, password: P@ssw0rd@123}- {name: k8s-node-2, address: 192.168.9.8, internalAddress: 192.168.9.8, user: root, password: P@ssw0rd@123}roleGroups:etcd:- k8s-master-0- k8s-master-1- k8s-master-2master:- k8s-master-0- k8s-master-1- k8s-master-2worker:- k8s-node-0- k8s-node-1- k8s-node-2controlPlaneEndpoint:domain: lb.kubesphere.localaddress: "192.168.9.1"port: 6443kubernetes:version: v1.20.4imageRepo: kubesphereclusterName: cluster.localnetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18registry:registryMirrors: []insecureRegistries: []addons: []---
apiVersion: installer.kubesphere.io/v1alpha1
kind: ClusterConfiguration....(后面太多都是ks的配置,本文不涉及,先省略)
-  重点配置项说明 *  hosts 配置k8s集群节点的名字、IP、管理用户、管理用户名 *  roleGroups +  _etcd:_ etcd节点名称 +  _master:_ master节点的名称 +  _worker:_  work节点的名称 *  controlPlaneEndpoint +  _domain:_ 负载衡器IP对应的域名,一般形式lb.clusterName +  _address:_ 负载衡器IP地址 *  kubernetes + _clusterName:_ kubernetes集群的集群名称
  1. 安装KubeSphere和Kubernetes集群
[root@k8s-master-0 ~]# ./kk create cluster -f config-sample.yaml
  1. 验证安装结果
    • 验证安装过程
[root@k8s-master-0 ~]# kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
-  验证集群状态  

安装完成后,您会看到如下内容:

#####################################################
###              Welcome to KubeSphere!           ###
#####################################################Console: http://192.168.9.2:30880
Account: admin
Password: P@88w0rdNOTES:1. After you log into the console, please check themonitoring status of service components inthe "Cluster Management". If any service is notready, please wait patiently until all componentsare up and running.2. Please change the default password after login.#####################################################
https://kubesphere.io             20xx-xx-xx xx:xx:xx
#####################################################

参考文档

  1. 多节点安装
  2. 使用 Keepalived 和 HAproxy 创建高可用 Kubernetes 集群

来源

运维有术

http://www.dtcms.com/a/502648.html

相关文章:

  • 东莞手机建网站wordpress4.6.1中文包
  • 企业网站 seo怎么做三亚公共安全论坛
  • 佛山品牌网站建设小程序怎么开发自己的小程序
  • 巩义建设网站做服装最好的网站
  • 无锡网站建设工作如何在微信内做网站
  • 图片滤镜网站开发网站建设地基本流程
  • 怎么管理网站添加代码高新门户网站专题建设
  • 在手机上编写安卓appwordpress模板seo
  • 凯盛建设公司网站网页设计模板html代码手机版
  • 网站大全官网徐州建设工程
  • 套别人的网站模板吗上海市企业信用信息公示系统官网
  • 公司网站用什么程序高端响应式网站开发
  • 设计师网站 知乎业务推广平台
  • 西安做网站公司魔盒局域网视频网站开发
  • 南京g3云推广上海城市分站seo
  • 网站app开发公司wordpress图片分类
  • 伪原创嵌入网站北京网站设计公司哪儿济南兴田德润简介
  • 河南教育平台网站建设宁夏百度公司
  • 重庆产品推广类网站公司部门职位
  • 代做cad平面图的网站网站会员功能
  • 网站建设论文 优帮云怎么制作网站地图
  • 关于域名和主机论坛的网站广州公司制作网站
  • 深圳网站seo推广优化公司组织架构
  • 兰州网站备案广东手机网站建设哪家专业
  • 网站建设需要钱吗营销策划岗位职责
  • 大同网站建设没有网站怎么做网推
  • 电子销售网站报表模块如何做禁用wordpress自动保存插件
  • 网站设计创意方案黑龙江省城乡和住房建设厅网站首页
  • 实力网站建设oppo手机应用商店
  • 手机分销网站江苏城乡建设教育网站