Alertmanager 发送告警 Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。Alertmanager 负责处理由 Prometheus Server 发来的告警通知,Alertmanager对告警通知进行分组、去重后,根据路由规则将其路由到不同的receiver,如Email、钉钉或企业微信等。
Prometheus:普罗米修斯 Promethues:普罗米修斯promethues是一个开源的系统监控以及报警系统。整合了zabbix的功能,系统,网络,设备。promethues可以兼容网络,设备。容器监控。告警系统。因为他和k8s是一个项目基金开发的产品,天生匹配k8s的原生系统。容器化和云原生服务适配性很高。prometheus是一个服务监控系统和时序数据库,提供了通用的数据模型和快捷数据采集,存储和接口查询。核心组件:prometheus server。
k8s安全机制 metadata:# "namespace" 被忽略,因为 ClusterRoles 不受名字空间限制rules:resources: ["secrets"] #资源对象为 Secret 类型。
k8s图形化管理工具rancher Rancher和K8s的关系,Rancher和K8s区别对比。简单来说,K8s(Kubernetes)为企业提供了一种一致的方式来管理任何计算基础架构,Rancher则是用于管理位于任何位置的Kubernetes集群的完整平台。如果用户是自己手动部署K8s集群,流程还是比较复杂的,需要掌握一定的技术知识,所以为了简化Kubernetes操作,一些Kubernetes管理平台应运而生,例如Rancher。
k8s之HPA Horizontal Pod Autoscaling:pod的水平自动伸缩。这是k8s自带的模块。pod占用cpu比率到达一定的阀值,会触发伸缩机制。replication controller 副本控制器 pod的副本数deployment controller 节点控制器。部署podhpa控制副本的数量以及控制部署pod.
k8s之包管理器Helm charts 除了可以在 repo 中下载,还可以自己自定义,创建完成后通过 helm 部署到 k8s。在镜像仓库中拉取chart,查看chart的包结构#拉取chart 到本地目录(现在所在的目录中)#对该拉取的chart压缩包进行解压自定义创建一个chart1.使用命令行创建生成一个模板tree nginx2.进行模板文件的修改,生成自定义chartname: nginx #chart名字。
k8s配置资源管理 使用 Secret 资源挂载的方式在 pod.spec.volumes 字段中定义卷类型为 secret在 pod.spec.containers.volumeMounts 字段中把存储卷挂载到指定的容器目录,secret资源数据的key将以文件名的形式存在,value为文件内容容器环境变量引用的方式在 pod.spec.containers.env.name 字段中自定义容器的环境变量名。
pod控制器 Pod 控制器有几种?1、Deployment+ReplicaSet 部署无状态应用的Pod2、StatefulSet 部署有状态应用的Pod3、DaemonSet 在K8S集群的所有Node节点上部署相同的Pod4、Job 部署一次性的任务Pod,完成后就会退出并不会重启5、CronJob 部署周期性的任务Pod,完成后就会退出并不会重启Deployment1、部署无状态应用的。
k8s存储卷 静态PV的使用:1、准备好存储设备和共享目录2、创建PV资源,配置存储卷类型、访问模式(RWX,RWO,ROX)、存储能力大小3、创建PVC资源,配置请求PV资源的访问模式和存储大小,绑定PV(一个PV只能绑定一个PVC)4、创建Pod资源挂载PVC,配置存储卷类型为persistentVolumeClaim,在容器配置中定义存储卷挂载内容StorageClass 简称 SC 资源 实现动态创建 PV 资源。
k8s的集群调度 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。APIServer 经过 API 调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用。这里需要 Controller Manager、Scheduler 和 kubelet 的协助才能完成整个部署过程。
k8s的pod基础 每个pod都有一个基础容器pause容器。pause容器对应的镜像属于k8s集群的一部分。创建集群就会有pause这个基础镜像。pod里面包含了一个或者多个相关的容器(应用)pod外再设置一个基础镜像的原因:1、在一组容器作为一个单元的情况下,难以对整体的容器简单地进行判断及有效地进行行动。比如,一个容器死亡了,此时是算整体挂了么?那么引入与业务无关的Pause容器作为Pod的基础容器,以它的状态代表着整个容器组的状态,这样就可以解决该问题。
kubectl陈述式资源管理 蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚。灰度发布:根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。滚动发布:按批次停止老版本实例,启动新版本实例。1.查看版本信息2.查看资源对象简写3.查看集群信息4.配置kubectl自动补全5.node节点查看日志创建kubectl create 控制器kubectl run 自助式发布,创建 service更新回滚删除。
kubeadm来搭建k8s集群。 我们采用了二进制包搭建出的k8s集群,本次我们采用更为简单的kubeadm的方式来搭建k8s集群。二进制的搭建更适合50台主机以上的大集群,kubeadm更适合中小型企业的集群搭建主机配置建议:2c 4G主机节点 IP 组件Harbor节点 20.0.0.104 docker、docker-compose、harbor-offline-v1.2.2在所有节点上安装Docker和kubeadm。
二进制搭建 Kubernetes v1.20最终版 二进制搭建 Kubernetes v1.20k8s集群master01:20.0.0.101 kube-apiserver kube-controller-manager kube-scheduler etcdk8s集群master02:20.0.0.102k8s集群node01:20.0.0.103 kubelet kube-proxy dockerk8s集群node02:20.0.0.104etcd集群节点1:20.0.0.101 etcd。
k8s二进制部署2 /在所有 node 节点上操作#创建kubernetes工作目录#上传 node.zip 到 /opt 目录中,解压 node.zip 压缩包,获得kubelet.sh、proxy.shcd /opt///在 master01 节点上操作#把 kubelet、kube-proxy 拷贝到 node 节点#上传 kubeconfig.sh 文件到 /opt/k8s/kubeconfig 目录中,生成 kubeconfig 的配置文件。
k8s的二进制部署 k8s的二进制部署:源码包部署node节点01: 20.0.0.103 kubelet kube-proxy etcdnode节点02: 20.0.0.104 kubelet kube-proxy etcd负载均衡:nginx+keepalive:maser:20.0.0.105。
Kubernetes的理论基础 k8s:kubernetes:8个字母省略,就是k8s。自动部署,自动扩展和管理容器化部署的应用程序的一个开源系统。k8s是负责自动化运维管理多个容器化程序的集群,是一个功能强大的容器编排工具。分布式和集群化的方式进行容器管理。1.15 1.18 1.20 1.28 几个版本 常用1.20.k8s是google的borg系统作为原型,后期经由go语言编写的开源软件。docker微服务,可以满足微服务使用,那么为什么还要使用k8s呢。
ansible的脚本------playbook剧本 在yaml文件中,我们可以在初始配置的模块中用var去定义变量的存在,变量的格式为key:value,以此来确定该变量在剧本中的存在---vars:tasks:---tasks:- debug:直到d4whith_items: {{item}}会把所有的列表展开进行遍历输出,with_flattened也可以替代with_itemswith_list: {{item}}会把每个列表当作一个整体输出。
Ansible自动化运维工具 command模块:注意:在远程主机执行命令,不支持管道,重定向等shell的特性。ansible 指定的IP -m command -a 'Linux基础命令' #指定 ip 执行 基础命令ansible 组名 -m command -a 'Linux基础命令' #指定组执行基础命令ansible all -m command -a 'linux基础命令' #指定所有被管理的主机执行该命令。