管理K8S资源的三种基本方法 陈述式管理方法——命令行CLI工具 声明式管理方法——统一资源配置清单(mainfest) GUI式管理方法——web页面(dashboard) kubectl命令行 kubernetes集群管理集群资源的唯一入口式通过相应的方法调用apiserver的接口 kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理K8S各种资源的一种有效途径 陈述式资源管理方法基础管理 查看名称空间 12kubectl get namespaceskubectl get ns 查看名称空间内的资源 1kubectl get all [-n default] 创建名称空间 12kubectl create namespaces app_namekubectl create ns app_name 删除名称空间 12kubectl delete namespaces app_namekubectl delete ns app_name 创建deplo ...
MySQL8.0新特性MySQL从5.7一跃直接到8.0,这其中的缘由,咱就不关心那么多了,有兴趣的朋友自行百度,本次的版本更新,在功能上主要有以下6点: 账户与安全 优化器索引 通用表表达式 窗口函数 InnoDB 增强 JSON 增强 MySQL8.0安装MySQL Download 基础环境准备12345678910111213141516# 上传、解压[root@db01 ~]# mkdir /server/tools -p[root@db01 ~]# cd /server/tools/[root@db01 tools]# tar xf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz -C /application/[root@db01 ~]# ln -s /application/mysql-8.0.25-linux-glibc2.12-x86_64/ /application/mysql# 系统设置[root@db01 ~]# useradd -u 1020 -s /sbin/nologin -M mysql[root@db01 ...
项目背景介绍需求产生由于原生态的Nginx的一些安全防护功能有限,就研究能不能自己编写一个WAF,参考Kindle大神的ngx_lua_waf,自己尝试写一个了,使用两天时间,边学Lua,边写。不过不是安全专业,只实现了一些比较简单的功能: 功能列表: 支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。 支持URL白名单,将不需要过滤的URL进行定义。 支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。 支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。 支持URL参数过滤,原理同上。 支持日志记录,将所有拒绝的操作,记录到日志中去。 日志记录为JSON格式,便于日志分析,例如使用ELK进行攻击日志收集、存储、搜索和展示。项目背景介绍 WAF实现WAF一句话描述,就是解析HTTP请求(协议解析模块),规则检测 ...
Linux运维
未读ELK Stack简介对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch、Logstash、Kibana技术栈的结合。 Elasticsearch介绍及安装ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 Elasticsearch部署 Elasticsearch首先需要Java环境,所以需要提前安装好JDK,可以直接使用yum安装。也可以从Oracle官网下载JDK进行安装。开始之前要确保JDK正常安装并且环境变量也配置正确: 安装JDK。 12345yum -y install ja ...
Playbook简介playbook是ansible用于配置,部署,和管理被控节点的剧本。通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期的状态。playbook就像Ansible控制器给被控节点列出的的一系列to-do-list,而被控节点必须要完成。也可以这么理解,playbook 字面意思,即剧本,现实中由演员按照剧本表演,在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情。 Playbook的使用优势 功能比ansible命令更强大 能很好的控制先后执行顺序, 以及依赖关系 语法展现更加的直观 ansible命令无法持久使用, playbook 可以持久使用 剧本的书写格式要求语法格式ansible剧本格式:遵循yaml语法格式(类似python脚本编写格式)rsync配置文件格式:ini语法格式sersync配置文件格式:xml语法格式(标签格式) 注意缩进合理的信息缩进,两个空格表示一个缩进关系一定不要使用tab 123标题一_ _ 标题二_ _ _ _ 标题三 冒号所有冒号 ...
自动化运维
未读Ansible常用模块介绍ansible内置了丰富的模块供用户使用,但是经常使用到的模块却不多。本文主要记录了ansible的一些常用模块以及详细参数 、注意事项等 ,供大家学习。 模块的应用语法格式:ansible 主机名称/主机组名称/主机地址信息/all -m(指定应用的模块信息) 模块名称 -a(指定动作信息) “执行什么动作” ansible官方网站: https://docs.ansible.com/ 命令模块ping应用场景:测试主机和ansible之间的连通性举例:对webserver主机组测试是否连通 1ansible webservers -m ping command 基础模块概要命令模块 适合使用简单的命令(cat、ls) 无法支持”<”,”>”,”|”,”;”,”&”等符号官方文档:https://docs.ansible.com/ansible/latest/modules/command_module.html#command-module 参数 解释 chdir 在执行命令前,进入到指定目录 ...
自动化运维
未读ansible服务概念介绍 是基于python语音开发的自动化软件工具 是基于SSH远程管理服务实现远程管理主机 批量管理多台主机 提高运维工作效率 降低运维工作难度 ansible批量管理特点优点: 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作; 默认使用SSH协议对设备进行管理; 有大量常规运维操作模块,可实现日常绝大部分操作; 配置简单、功能强大、扩展性强; 轻链接、无需客户端(基于ssh,无需安装客户端,如zabbix的客户端要安装agent) 可读性强(采用YAML格式) 缺点: 对Windows系统的排斥(服务端无法安装在windows) 运行效率较低(task任务是串行运行;多台设备同事运行) ansible批量管理部署安装ansible yum -y install epel-releaseyum -y install ansible ansible服务架构信息 主机清单配置(inventory:默认文件:/etc/ansible/hosts) 软件模块信息(module 通过其他语言编写而成,能实现某个 ...
Spinnaker 构建部署介绍Spinnaker 的集群管理和部署功能两大核心功能,但是都是单独演示,没有将两者有机结合起来,今天,我们来通过一个示例来演示如何通过 Spinnaker 结合外部平台完成整个流程的自动化构建以及自动化部署到 Kubernetes 集群中。下边,我针对该示例做一些必要的说明。 开发人员将代码推送到 GitHub。 GitHub 触发 Jenkins。 Jenkins 构建一个 Docker 映像,然后为它添加标签并推送到 Amazon Elastic Container Registry (Amazon ECR)。 Spinnaker 管道将在 Amazon ECR 收到此新 Docker 映像时触发。 然后 Spinnaker 将执行如下操作: 使用 Helm 生成 (Bake) Kubernetes 部署文件(开发和生产)。 将 Kubernetes 部署到开发环境。 人工判断:我们的管道配置需要人工手动确认,然后才能将应用程序部署到生产环境。它会等待此步骤完成,然后才会继续执行管道。 将代码部署到生产环境。 Spinnaker 上配置Je ...
spinnaker概述和选型概述主要功能Spinnaker是一个开源的多云持续交付平台,提供快速、可靠、稳定的软件变更服务。主要包含两类功能:集群管理和部署管理 集群管理集群管理主要用于管理云资源,Spinnaker所说的”云“可以理解成AWS,即主要是laaS的资源,比如OpenStak,Google云,微软云等,后来还支持了容器与Kubernetes,但是管理方式还是按照管理基础设施的模式来设计的。 部署管理管理部署流程是Spinnaker的核心功能,使用minio作为持久化层,同时对接jenkins流水线创建的镜像,部署到Kubernetes集群中去,让服务真正运行起来。 逻辑架构图Spinnaker自己就是Spinnake一个微服务,由若干组件组成,整套逻辑架构图如下: Deck是基于浏览器的UI。 Gate是API网关。Spinnaker UI和所有api调用程序都通过Gate与Spinnaker进行通信。 Clouddriver负责管理云平台,并为所有部署的资源编制索引/缓存。 Front50用于管理数据持久化,用于保存应用程序,管道,项目和通知的元数据。 I ...
K8S ELK日志分析日志,对于任何系统来说都是及其重要的组成部分,在计算机系统中比较复杂,日志有不同的来源,如操作系统,应用服务,业务逻辑等,它们都在不停产生各种各样的日志。K8S系统里的业务应用是高度 “动态化”的,随着容器编排的进行,业务容器在不断的被创建、被销毁、被迁移、被扩缩容… 需要建立一套集中式的方法,把不同来源的数据集中整合到一个地方 收集—能够采集多种来源的日志数据(流式日志收集器) 传输—能够稳定的把日志数据传输到中央系统(消息队列) 存储—可以将日志以结构化数据的形式存储起来(搜索引擎) 分析—支持方便的分析、检索方法,最好有GUI管理系统(前端) 告警—能够提供错误报告,监控机制(监控工具) 开源解决方案—ELK Stack: E – ElasticSearch L – LogStash K – Kibana elasticsearch安装部署https://www.elastic.co/ https://github.com/elastic/elasticsearch https://artifacts.elastic.co/downloads/el ...
Grafana的介绍与使用简介Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等。 七大特点①可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。 ②报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。 ③通知:警报更改状态时,它会发出通知。接收电子邮件通知。 ④动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。 ⑤混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。 ⑥注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。 ⑦过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。 Grafana安装部署准备镜像123[root@k8s-dns ]# docker pull grafana/grafana:7.3.3[root@k8s-dns ] ...
Prometheus介绍Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统,自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区,为强调开源及独立维护,Prometheus于2016年加入CNCF,成为继kubernetes之后的第二个托管项目。官方网站 Prometheus特点 多维数据模型: 由度量名称和键值对标识的时间序列数据 内置时间序列数据库:TSDB promQL: 一种灵活的查询语言,可以利用多维数据完成复杂查询 基于HTTP的pull(拉取)方式采集时间序列数据(exporter) 同时支持PushGateway组件收集数据 通过服务发现或静态配置发现目标 多种图形模式及仪表盘支持 支持做为数据源接入Grafana Prometheus架构 Exporters(可以自定义开发) http接口 定义监控项和监控项的标签(维度) 按一定的数据结构组织监控数据 以时间序列被收集 Prometheus Server Retrieve(数据收集器) TSDB(时间序列数据库) Configure (static_config、 k ...