
企业实战系列
文章平均质量分 83
企业实战当中的知识总结
贾几人要努力
运维、Linux
展开
-
四层、七层负载均衡知识总结
四层负载和七层负载四层:所谓四层负载均衡,主要通过报文中的目标地址和端口,再加上负载均衡设置的服务器选择的方式,决定选择的内部服务器。以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN请求时,即通过上述方式选择一个最佳的服务器,并对报文中的目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报原创 2021-09-15 12:21:57 · 1409 阅读 · 0 评论 -
LNMP架构4——mysql主从复制
目录一、主从复制概述二、主从复制配置1.主服务器配置2.从服务器配置3.测试4.gtid主从复制5.双机热备三、半同步主从复制一、主从复制概述什么是主从复制MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。主从复制是MySQL最重要的功能之一。对于多级复制,数据库服务器即可充当主原创 2021-09-14 13:34:45 · 239 阅读 · 0 评论 -
LNMP架构3——php
目录安装php添加memcache功能模块构建nginx高速缓存goaccess 日志可视化tomcat结合memcache安装[root@server1 /mnt]# yum install -y bzip2[root@server1 /mnt]# tar jxf php-7.4.12.tar.bz2[root@server1 /mnt]# yum install -y systemd-devel libxml2-devel sqlite-devel curl-devel libpng-devel原创 2021-09-08 22:28:35 · 977 阅读 · 2 评论 -
LNMP架构2——nginx(下)
cookie算法访问服务器在多台后台服务器的环境下,为了确保一个客户只和一台服务器通信,势必使用长连接。常见的有使用nginx自带的ip_hash来做,但如果前端是CDN,或者说一个局域网的客户同时访问服务器,导致出现服务器分配不均衡,以及不能保证每次访问都粘滞在同一台服务器。如果基于cookie可以在保持长连接的同时还保证了服务器的压力均衡,ngx_http_sticky_module可以实现此功能。客户端client请求访问服务 -> DNS服务器将域名解析到cdn -> cdn(ng原创 2021-09-08 21:05:22 · 224 阅读 · 1 评论 -
LNMP架构1——nginx(上)
目录nginx简介部署nginx优化nginx配置管理nginx添加后端服务器测试负载均衡平滑升级nginx简介传送门概念:Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx 作为 web 服务器:Nginx 可原创 2021-09-08 13:23:30 · 178 阅读 · 0 评论 -
ELK日志分析平台3——kibana数据可视化
[root@server4 /mnt] cd /etc/kibana/[root@server4 /etc/kibana] lsapm.js kibana.yml[root@server4 /etc/kibana] vim kibana.yml[root@server4 /etc/kibana] systemctl start kibana.service[root@server4 /etc/kibana] netstat -antlp | grep :5601tcp 0 .原创 2021-08-29 13:10:03 · 406 阅读 · 0 评论 -
ELK日志分析平台2——logstash数据采集
logstash安装[root@server4 /mnt] rpm -ivh jdk-8u171-linux-x64.rpm[root@server4 /mnt] rpm -ivh logstash-7.6.1.rpm标准输入到标准输出[root@server4 ~] /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'标准输入到文件[root@server4 /usr/share/原创 2021-08-29 12:30:01 · 139 阅读 · 0 评论 -
ELK日志分析平台1——elasticsearch
传送门[root@server1 /mnt] lselasticsearch-7.6.1-x86_64.rpm kibana-7.6.1-x86_64.rpm logstash-7.6.1.zip[root@server1 /mnt] rpm -ivh elasticsearch-7.6.1-x86_64.rpm原创 2021-08-29 12:23:07 · 277 阅读 · 0 评论 -
Ansible运维自动化3
目录一.循环二.条件三.触发器一.循环1.简单循环loop: #赋值列表value1value2…{{item}} #迭代变量名称实例[jia@ansible ansible]$ cat test.yaml ---- name: create user vars_files: ./user.yaml hosts: westos tasks: - name: user westos1 user: name: "{{item}}"原创 2021-08-29 12:22:23 · 104 阅读 · 0 评论 -
Ansible运维自动化2
Playbook的功能playbook 是由一个或多个play组成的列表Playboot 文件使用YAML来写的YAML简介是一种表达资料序列的格式,类似XMLYet Another Markup Language2001年首次发表www.yaml.org特点可读性好和脚本语言交互性号易于实现适用程序执行流梳理方式可扩展性强语法简介在文件中用[—]开始在文件中用[…]结尾次行一般书写文件内容缩进严格大小写敏感key/value可以多行书写也可一行书写,一行书写用原创 2021-08-25 00:50:37 · 164 阅读 · 0 评论 -
Ansible运维自动化1
一、Ansible简述Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。Ansible基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。功能Ansible主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、原创 2021-08-21 17:31:45 · 209 阅读 · 0 评论 -
CI/CD 2——管理agent、用户、结合ansible
#############################################添加管理agent端#############################################添加用户以及管理用户权限原创 2021-08-13 22:33:58 · 202 阅读 · 0 评论 -
CI/CD 1——jenkins结合gitlab
############################################yum install jdk-8u171-linux-x64.rpm -yyum install -y daemonize-1.7.7-1.el7.x86_64.rpm jenkins-2.306-1.1.noarch.rpmsystemctl start jenkins使用初始密码登录[root@server2 /var/lib/jenkins] cat /var/lib/jenkins/secret原创 2021-08-13 21:43:35 · 188 阅读 · 0 评论 -
集中式与分布式——git、gitlab、gitee
老样子,实验目录yum install -y git初始化版本库.git目录是git跟踪管理版本库的,没事别瞎溜达[root@server1 ~/demo] git initInitialized empty Git repository in /root/demo/.git/[root@server1 ~/demo] ls .git/branches config description HEAD hooks info objects refs[root@server1原创 2021-08-13 21:43:01 · 1166 阅读 · 0 评论 -
安装部署Prometheus(普罗米修斯)
目录Prometheus功能Prometheus架构安装go 语言环境服务器上安装prometheusPrometheus功能在业务层用作埋点系统Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购物车流程。在应用层用作应用监控系统一些主流应用可以通过官方或第三方的导出器,来对这些应用做核心指标的收集。如redis,mysql。在系统层用作系统监控除了常用软件, p原创 2021-08-06 19:06:14 · 411 阅读 · 1 评论 -
kubernetes16——集群高可用
目录一、实验环境二、部署haproxy+pcs三、部署docker四、部署k8s五、测试高可用一、实验环境server1 172.25.25.1 harbor仓库servera 172.25.25.11 haproxy+pcsserverb 172.25.25.12 haproxy+pcsserverc 172.25.25.13 k8s masterserverd 172.25.25.14 k8s masterservere 172.25.25.1原创 2021-08-08 17:42:57 · 219 阅读 · 0 评论 -
Kubernetes15——Prometheus普罗米修斯UI集群管理
上传镜像到仓库docker load -i prometheus-operator-v0.35.0.tardocker images | grep bitnami | awk '{system("docker push "$1":"$2"")}'添加repo源、网上拉文件helm repo add aliyun https://apphub.aliyuncs.comhelm repo listhelm search repo prometheus-operatorhelm pull ali原创 2021-08-08 17:42:25 · 398 阅读 · 0 评论 -
Kubernetes14——kubeapps的UI界面管理工具
上传镜像docker load -i kubeapps-2.3.3.tar拉取文件[root@server2 helm]# helm pull bitnami/kubeapps --version=7.2.0[root@server2 helm]# tar zxf kubeapps-7.2.0.tgz [root@server2 helm]# cd kubeapps/更改配置文件vim values.yamlcd charts/cd postgresql/vim values.yam原创 2021-08-08 17:41:40 · 353 阅读 · 0 评论 -
Kubernetes13——HPA(pod水平伸缩)、Helm(部署、chart应用)
目录一、HPA二、HPA实时调度pod(CPU)三、Helm四、Helm安装部署五、chart仓库及应用发布一、HPAHPA,全称 Horizontal Pod Autoscaler, 可以基于 CPU 利用率自动扩缩 ReplicationController、Deployment 和 ReplicaSet 中的 Pod 数量。 除了 CPU 利用率,也可以基于其他应用程序提供的自定义度量指标来执行自动扩缩。 Pod 自动扩缩不适用于无法扩缩的对象,比如 DaemonSet。Pod 水平自动扩缩特原创 2021-08-06 00:54:42 · 698 阅读 · 0 评论 -
Kubernetes12——资源监控(metrics-server)、k8s图形化(Dashboard)
目录一、Metrics-Server二、Metrics-Server部署一、Metrics-ServerMetrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。Metrics API 只可以查询当前的度量数据,并不保存历史数据。Metrics API URI 为 /a原创 2021-08-05 22:32:49 · 322 阅读 · 0 评论 -
kubernetes11——资源限制(limitrange、resourceQuota)
目录一、k8s容器资源限制二、内存限制一、k8s容器资源限制Kubernetes采用request和limit两种限制类型来对资源进行分配。request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。limit(资源限额):即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。资源类型:CPU 的单位是核心数,内存的单位是字节。一个容器申请0.5个CPU,就相当于申请1个CPU的一半,你也可以加个后缀m 表示千分之一的概念。比如说100原创 2021-08-05 17:52:02 · 648 阅读 · 0 评论 -
kubernetes10——访问控制(serviceaccount、useraccount、RBAC)
目录一、访问控制二、ServiceAccount三、UserAccount四、RBAC基于角色访问控制授权五、服务账户的自动化一、访问控制流程:认证、授权和准入控制Authentication(认证)认证方式现共有8种,可以启用一种或多种认证方式,只要有一种认证方式通过,就不再进行其它方式的认证。通常启用X509 Client Certs和Service Accout Tokens两种认证方式。Authorization(授权)必须经过认证阶段,才到授权请求,根据所有授权策略匹配请求资源属性原创 2021-08-05 14:24:27 · 1035 阅读 · 0 评论 -
Kubernetes9——调度管理(nodename、nodeselector、taints)
目录一、调度二、nodeName三、nodeSelector四、亲和与反亲和五、Taints(污点)1、NoSchedule+标签选择2、容忍六、cordon、drain、delete1、cordon隔离2、drain驱逐3、delete删除4、添加新的节点一、调度调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。kube-scheduler 是 Kuberne原创 2021-08-03 00:34:54 · 414 阅读 · 0 评论 -
Kubernetes8——Volumes配置管理(nfs、pv、pvc、statefulset)
目录一、Volume二、emptyDir卷三、hostPath 卷四、NFS共享文件五、PersistentVolume持久卷(PV)1、静态PV一、VolumeVolume是对各种存储资源的抽象、虚拟化。为管理、控制、使用存储资源提供统一接口。Openstack中的volume为虚拟机提供存储,Docker中的volume为容器提供存储。因为在kubernetes中可部署运行最小单位是pod ,所以kubernetes的volume为pod提供存储。当然在部署pod时可以不为其提供volume,po原创 2021-08-02 22:10:20 · 1013 阅读 · 0 评论 -
Kubernetes7——Secret配置管理
目录一、secret介绍二、Service Account三、Opaque Secret四、secret应用五、docker registry一、secret介绍k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息。它把 Pod 想要访问的加密数据存放到 Etcd 中。然后用户就可以通过在 Pod 的容器里挂载 Volume 的方式或者环境变量的方式访问到这些 Secret 里保存的信息了。敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安原创 2021-08-01 15:19:17 · 376 阅读 · 0 评论 -
Kubernetes6——Configmap配置管理
目录一、configmap二、ConfigMap创建1、使用字面值创建2、文件创建3、使用目录创建4、编写configmap的yaml文件三、configmap使用1、通过环境变量的方式直接传递给pod2、通过在pod的命令行下运行的方式3、作为volume的方式挂载到pod内一、configmap在生产环境中经常会遇到需要修改配置文件的情况,传统的修改方式不仅会影响到服务的正常运行,而且操作步骤也很繁琐。为了解决这个问题,kubernetes项目从1.2版本引入了ConfigMap功能,用于将应用原创 2021-08-01 10:56:30 · 220 阅读 · 0 评论 -
Kubernetes5——通信、flannel、calico、ingress
目录一、k8s通信二、flannel网络三、calico1、calico安装与部署2、calico网络策略四、ingress服务一、k8s通信k8s通过CNI接口接入其他插件来实现网络通讯。目前比较流行的插件有flannel,calico等CNI插件存放位置:# cat /etc/cni/net.d/10-flannel.conflist插件使用的解决方案:虚拟网桥,虚拟网卡,多个容器共用一个虚拟网卡进行通信。多路复用:MacVLAN,多个容器共用一个物理网卡进行通信。硬件交换:SR-LOV原创 2021-07-30 00:35:40 · 1220 阅读 · 1 评论 -
Kubernetes4——service(NodePort、Headless、LoadBalancer、ExternalName)
目录一、service二、IPVS模式的service实现一、serviceService可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)service的类型:ClusterIP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。NodePort:将Service通过指定的Node上的端口暴露给外部,访问任意一个NodeIP原创 2021-07-29 22:34:55 · 859 阅读 · 0 评论 -
Kubernetes3——Pod生命周期、集群控制器
目录一、Pod生命周期二、init初始化三、存活探针livenessProbe四、就绪探针readinessProbe一、Pod生命周期和一个个独立的应用容器一样,Pod 也被认为是相对临时性(而不是长期存在)的实体。 Pod 会被创建、赋予一个唯一的 ID(UID),并被调度到节点,并在终止(根据重启策略)或删除之前一直运行在该节点。如果一个节点死掉了,调度到该节点 的 Pod 也被计划在给定超时期限结束后删除。Pod 自身不具有自愈能力。如果 Pod 被调度到某节点 而该节点之后失效,或者调度原创 2021-07-29 17:40:07 · 248 阅读 · 0 评论 -
Kubernetes2——Pod管理应用、资源清单
目录一、Pod二、Namespace三、Pod操作1、创建删除pod2、创建控制器管理pod3、pod扩容4、镜像更新四、资源清单一、Pod在Kubernetes中,最小的管理元素不是一个个独立的容器,而是Pod,Pod是管理,创建,计划的最小单元.一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。一个pod类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace。一个Pod就相当于一个共享context的配置组,原创 2021-07-29 13:40:47 · 170 阅读 · 0 评论 -
kubernetes1——k8s集群安装部署
目录一、kubernetes二、安装1、环境配置2、禁用所有节点的swap分区3、设定docker cgroup driver为systemd4、配置网桥5、安装6、生成密钥7、harbor中创建k8s项目8、镜像上传到仓库一、kuberneteskubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源 的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的 应用简单并且高效(powerful),Kubernetes原创 2021-07-28 21:53:41 · 280 阅读 · 0 评论 -
Docker3——Swarm(搭建、监控、compose、图形化集群)
目录一、Swarm一、Swarm实验环境:四台主机,server1、2、3、4,server1作为主用机,server2作为备用机,server3、4作为加入集群的主机。1、初始化[root@server1 ~]# docker swarm initSwarm initialized: current node (22d9uj05w68yab4m4rjc0w31a) is now a manager.To add a worker to this swarm, run the foll原创 2021-07-27 22:44:14 · 546 阅读 · 1 评论 -
Docker2——(私有)仓库、Docker网络、容器通信、Harbor搭建
目录一、Docker仓库二、私有仓库搭建一、Docker仓库docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。二、私有仓库搭建Docker Hub作为Docker默认官方公共镜像,如果想要自己搭建私有镜像残酷,官方也提供Registry镜像,使得我们搭建私有仓库变得非常简单。所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将镜像提交到私有仓库中。这样我们既能使用 Docker 来运行我们的项目镜像,也避免了商原创 2021-07-23 00:10:52 · 399 阅读 · 6 评论 -
Docker1——安用、镜像、dockerfile详解、镜像优化
目录一、docker简介二、docker安装及基本用法1.安装部署2.基本用法三、docker镜像制作方式1.交互式shell制作镜像2.脚本制作镜像一、docker简介Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到一次封装,到处运行。Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它原创 2021-07-23 00:09:13 · 241 阅读 · 2 评论 -
自动化运维工具Saltstack3(saltstack-zabbix-mysql)
目录一、目录文件梳理二、mariadb模块三、zabbix-server模块四、zabbix-agent模块五、zabbix-web模块六、top模块七、Pillar模块八、测试\高级推送配置zabbix与saltstack的软件仓库,主机是安装zabbix所需的软件以备文件传输一、目录文件梳理二、mariadb模块vim init.sls///db-install: pkg.installed: - pkgs: - mariadb-server - mar原创 2021-07-20 00:57:49 · 182 阅读 · 2 评论 -
自动化运维工具Saltstack2(saltstack-keepalived-job-ssh-syndic-api)
目录一、自动化安装keepalived二、job管理1、minion传递给master2、master从minion收集三、Salt-ssh四、Salt-syndic五、Salt-api一、自动化安装keepalived1、配置pillar模块pillar目录下添加自定义模块,更改top文件vim /srv/pillar/kp.sls\\\{% if grains['fqdn'] == 'server2' %}state: Mastervrid: 51pri: 100{% elif gr原创 2021-07-20 00:57:10 · 172 阅读 · 1 评论 -
自动化运维工具Saltstack1(saltstack-grains-pillar-jinja-nginx)
nginx-install: pkg.installed: - pkgs: - gcc - pcre-devel - openssl-devel file.managed: - name: /mnt/nginx-1.20.1.tar.gz - source: salt://nginx/nginx-1.20.1.tar.gz cmd.run: - name: cd /mnt && tar zxf nginx-1原创 2021-07-20 00:56:03 · 186 阅读 · 1 评论 -
Zabbix基于 WEB 界面的分布式系统监视3——tiddb替换mysql(Zabbix-mysql-tidb)
tar zxf tidb-latest-linux-amd64.tar.gzcd tidb-latest-linux-amd64./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.51.1:2379" --peer-urls="http://172.25.51.1:2380" --initial-cluster="pd1=http://172.25.51.1:2380" --log-file=pd.log &am原创 2021-07-17 00:01:26 · 192 阅读 · 3 评论 -
Zabbix基于 WEB 界面的分布式系统监视2(Zabbix-Java-tomcat-CA-Api)
目录一、Zabbix-java-tomcat二、Zabbix-proxy一、Zabbix-java-tomcatserver端:1、安装zabbix-java-gateway软件yum install -y zabbix-java-gateway.x86_64systemctl start zabbix-java-gatewaynetstat -antulpe | grep 10052 #查看是否有10052这个端口2.编辑zabbix_server.conf配置文件vim /etc/za原创 2021-07-17 00:00:55 · 243 阅读 · 2 评论 -
Zabbix基于 WEB 界面的分布式系统监视1(Zabbix-Mysql-Nginx-pernoca)
目录一、Zabbix二、一、ZabbixZabbix是一个企业级分布式开源监控解决方案。支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标。Zabbix是完全开源免费的,其公司还为全球用户提供专业的技术支持服务。二、1、配置软件仓库,下载zabbix服务和mysql服务把包含zabbix依赖性的软件包放在网络仓库目录vim /etc/yum.repos.d/zabbix.repo\\\[zabbix]name=Zabbix Official Repository - $原创 2021-07-17 00:00:22 · 285 阅读 · 1 评论