总复习:云原生运维开发知识点
文章平均质量分 84
复习笔记
阿白,
云原生 devops istio Go 大四ing
展开
-
k8s的operator开发项目
go语言基于kubebuilder实现一个gateway的operator,gateway是我开发的一款网关,项目链接https://github.com/20gu00/gateway。operator使gateway网关更贴合云原生环境,自动检测调谐gateway的deploy和service等。我将crd和operator一块生成了个镜像,可以用容器方式运行operator。原创 2022-10-31 10:46:41 · 495 阅读 · 2 评论 -
go项目:1.开发一款网关 2.基于原生的http库实现web框架
使用gin框架,开发一款网关,分网关和网关的后台管理两大部分。原创 2022-10-27 23:00:33 · 517 阅读 · 0 评论 -
云原生运维开发项目
整个项目高度容器化,k8s是基石环境,采用go语言go-zero框架编写的微服务架构的应用程序(当然这里单体和微服务之间的转换很平滑,为了更明显突出servicemesh效果我优先考虑了微服务架构),主题上可封为两大部分,后台管理系统和服务应用,在支付和订单的逻辑处理间为了保证消息数据的正确使用,接入kafka做消息队列,部分延时功能用ansyq做延时队列,运行在istio中,做流量管理负载均衡、安全管控、链路追踪、故障注入、熔断、流量镜像等。2.接入dapr,更好的开发微服务。日志:ELK Loki。原创 2022-09-23 01:16:41 · 1030 阅读 · 0 评论 -
kubernetes的DevOps业务(七):Jenkins,GitLab,Harbor,Tekton,GitOps
你可能听说过 DevOps,或者 AIOps、ChatOps 等,那么 GitOps 又是什么呢?GitOps 是 Weaveworks 提出的一种持续交付方式,它的核心思想是将应用系统的声明性基础架构和应用程序存放在 Git 版本库中。将 Git 作为交付流水线的核心,每个开发人员都可以提交拉取请求(Pull Request)并使用 Git 来加速和简化 Kubernetes 的应用程序部署和运维任务。通过使用像 Git 这样的简单工具,开发人员可以更高效地将注意力集中在创建新功能而不是运维相关任务上(原创 2022-06-21 09:24:49 · 873 阅读 · 0 评论 -
kubernetes的DevOps业务(六):Jenkins,GitLab,Harbor,Tekton,GitOps
前面我们讲解了使用 Jenkins 流水线来实现 Kubernetes 应用的 CI/CD,现在使用tekton流水线,其实整体思路都是一样的,就是把要整个工作流划分成不同的任务来执行,前面工作流的阶段划分了以下几个阶段:。在 Tekton 中我们就可以将这些阶段直接转换成 Task 任务,Clone 代码在 Tekton 中不需要我们主动定义一个任务,只需要在执行的任务上面指定一个输入的代码资源即可。下面我们就来将上面的工作流一步一步来转换成 Tekton 流水线,代码仓库同样还是 http://git.原创 2022-06-09 15:32:13 · 565 阅读 · 1 评论 -
kubernetes的DevOps业务(五):Jenkins,GitLab,Harbor,Tekton,GitOps
前面我们都是通过创建一个 TaskRun 或者一个 PipelineRun 对象来触发任务,但是在实际的工作中更多的是开发人员提交代码过后来触发任务,这个时候就需要用到 Tekton 里面的 Triggers 概念了。(就是手动和自动的区别)Triggers 同样通过下面的几个 CRD 对象对 Tekton 进行了一些扩展:1.TriggerTemplate: 创建资源的模板,比如用来创建 PipelineResource 和 PipelineRun2.TriggerBinding: 校验事件并提取相原创 2022-06-05 21:18:19 · 453 阅读 · 0 评论 -
kubernetes的DevOps业务(四):Jenkins,GitLab,Harbor,Tekton,GitOps
前面我们的两个任务 test 和 build-and-push 都已经完成了,我们还可以创建一个流水线来将这两个任务组织起来,形成一个流水线,这里就是我们要使用的 Pipeline 这个 CRD 对象。流水线流程为先运行 test 任务,如果通过了再执行后面的 build-and-push 这个任务,那么我们可以创建一个名为 test-pipeline.yaml 的资源对象定义流水线需要哪些资源,可以是输入或者输出的资源,在这里我们只有一个输入,那就是命名为 repo 的应用程序源码的 GitHub 仓库原创 2022-06-05 15:16:17 · 451 阅读 · 0 评论 -
kubernetes的DevOps业务(三):Jenkins,GitLab,Harbor,Tekton,GitOps
Tekton 安装完成后,我们还可以选择是否安装 CLI 工具,有时候可能 Tekton 提供的命令行工具比 kubectl 管理这些资源更加方便,当然这并不是强制的tekton将全部用到的组建的相关内容都放在github官网上了https://github.com/tektoncd安装完成后可以通过如下命令验证 CLI 是否安装成功:此外,还可以安装一个 Tekton 提供的一个 Dashboard,我们可以通过 Dashboard 查看 Tekton 整个任务的构建过程,直接执行下面的命令直接安装原创 2022-06-04 16:08:30 · 323 阅读 · 1 评论 -
kubernetes的DevOps业务(二):Jenkins,GitLab,Harbor,Tekton,GitOps
文章目录Jenkins流水线在 Slave 中构建任务部署 Kubernetes 应用PipelineTekton组件安装Jenkins流水线Jenkins Pipeline要实现在 Jenkins 中的构建(构建任务)工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式。Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。Jenkins Pipeline 有原创 2022-05-23 00:33:59 · 1510 阅读 · 0 评论 -
kubernetes的DevOps业务(一):Jenkins,GitLab,Harbor,Tekton,GitOps
文章目录CI/CDJenKins安装插入一个问题解决(没遇到这个问题的直接跳过)架构配置测试GitlabGit部署配置gitgit本地仓库使用对比各个区域文件内容之间的差异git diff对比工作区和暂存区git diff --cached可以比对暂存区和本地仓库的文件差异git commit流程与使用git loggit版本控制系统回退工作区回退(git checkout)暂存区退回到本地文件修改(git reset HEAD)上传至本地仓库回退(git reset --hard)git分支和操作创建删除原创 2022-05-20 00:13:07 · 6301 阅读 · 4 评论 -
监控学习系列(上):prometheus,grafana,promQL,AlertManager,Thanos背景
文章目录介绍kubernete上部署prometheus开始部署prometheus的webui普通应用与export的监控集群节点、集群自身监控与服务发现设置服务发现容器监控监控api-server监控podkube-state-metrics(deploy副本数,pod状态,pod重启次数)grafana介绍部署grafana部署监控集群的grafana插件PromQLpromQL查询Alertmanager介绍部署Alertmanager报警规则(prometheus中配置)介绍对于 Kubern原创 2022-04-16 22:00:03 · 6607 阅读 · 2 评论 -
kubernetes存储:local,openEBS,rook ceph
文章目录Local 存储(PV)概念hostPathLocal PVstorageClassName指定延迟绑定动作pv的删除流程OpenEBS存储控制平面OpenEBS PV ProvisionerMaya-apiserverMaya Volume ExporterVolume 管理 Sidecars节点磁盘管理器数据平面JivacStorLocal PV(普通情况下使用,网络性较小)安装测试(一般简单的使用就是用OpenEBS的local PV)ceph简介高性能高可用性高可扩展性(分布式的特性)特性丰原创 2022-05-08 13:27:16 · 4417 阅读 · 3 评论 -
kubernetes的ingress:Ingress controller,traefik
文章目录Ingress介绍nginx ingress controlleringressURL RewriteBasic Auth灰度发布等各种发布方式HTTPSCertManager 自动 HTTPS安装配置自动化 HTTPSHTTP-01 校验DNS-01 校验Traefik核心概念traefik安装ACME中间件Traefik Pilot灰度发布流量复制TCPTCP服务实例带 TLS 证书的 TCPUDPIngress介绍对外暴露集群服务前面我们学习了在 Kubernetes 集群内部使用 ku原创 2022-05-05 21:00:58 · 1941 阅读 · 0 评论 -
kubernetes的调度
调度器kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。调度流程默认情况下,kube-scheduler 提供的默认调度器能够满足我们绝大多数的要求,我们前面和大家接触的示例也基本上用的默认的策略,都可以保证我们的原创 2022-05-04 00:38:02 · 758 阅读 · 0 评论 -
kubernetes网络:service,插件,策略,dns优化
文章目录网络插件FlannelUDP网络插件Flannel前面学过docker的网络模式,大致有bridge,host,containerd这些模式,但这些基本都是同个节点上的容器的通信方式,对于跨主机的容器之间的通信就无能为力了,就需要借助第三方的工具来实现容器的跨主机通信,比如flannel插件。Flannel 是 CoreOS(Etcd 的公司)推出的一个 Overlay 类型的容器网络插件,目前支持三种后端实现:UDP、VXLAN、host-gw 三种方式。UDP 是最开始支持的最简单的但是原创 2022-05-03 02:15:56 · 1540 阅读 · 2 评论 -
kubernetes安全:RBAC,Security Context,PSP,准入控制器
文章目录RBAC 权限控制前言API 对象RBAC只能访问某个 namespace 的普通用户创建用户凭证创建角色创建角色权限绑定测试只能访问某个 namespace 的 ServiceAccount可以全局访问的 ServiceAccountSecurity Context为 Pod 设置 Security Context为容器设置 Security Context设置 Linux Capabilities什么是 Capabilities如何使用 CapabilitiesDocker Container原创 2022-04-29 12:01:24 · 4334 阅读 · 2 评论 -
kubernetes配置管理:cm,sercret,sa
可变配置管理前面我们学习了一些常用的资源对象的使用,但是单纯依靠这些资源对象,还不足以满足我们的日常需求,一个重要的需求就是应用的配置管理、敏感信息的存储和使用(如:密码、Token 等)、容器运行资源的配置、安全管控、身份认证等等。对于应用的可变配置在 Kubernetes 中是通过一个 ConfigMap 资源对象来实现的,我们知道许多应用经常会有从配置文件、命令行参数或者环境变量中读取一些配置信息的需求,这些配置信息我们肯定不会直接写死到应用程序中去的,比如你一个应用连接一个 redis 服务,下一次原创 2022-04-25 22:50:51 · 2551 阅读 · 0 评论 -
kubernetes的原生的常规控制器
控制器¶Kubernetes 控制器会监听资源的 创建/更新/删除 事件,并触发 Reconcile 函数作为响应。整个调整过程被称作 “Reconcile Loop”(调谐循环) 或者 “Sync Loop”(同步循环)。Reconcile 是一个使用资源对象的命名空间和资源对象名称来调用的函数,使得资源对象的实际状态与 资源清单中定义的状态保持一致。调用完成后,Reconcile 会将资源对象的状态更新为当前实际状态。我们可以用下面的一段伪代码来表示这个过程:for { desired := g原创 2022-04-24 22:45:21 · 725 阅读 · 0 评论 -
Pod~全
文章目录kubernetes简介kubernetes架构kube-apiserverkube-controller-managerkube-schedulerkubeletkube-proxykubectl核心资源对象podLabelNamespaceDeploymentService搭建集群资源清单YAML 文件基本语法格式pod原理pod生命周期pod状态重启策略初始化容器Pod HookPod 健康检查(探针)Pod 资源配置pod进阶使用静态 Pod配置文件Downward API环境变量Volum原创 2022-04-24 09:02:07 · 1346 阅读 · 1 评论 -
containerd
文章目录容器运行时DockerCRIContainerd架构安装配置使用(contianerd的CLI:ctr)镜像操作拉取镜像列出本地镜像检测本地镜像重新打标签删除镜像将镜像挂载到主机目录将镜像从主机目录上卸载将镜像导出为压缩包从压缩包导入镜像容器操作创建容器列出容器查看容器详细配置删除容器任务命名空间切换容器运行时维护节点切换 containerdcrictl安装用法获取 Pod 列表获取镜像列表获取容器列表在容器中执行命令输出容器日志资源统计CLI 对比镜像相关容器相关Pod 相关日志配置nerdct原创 2022-05-26 22:05:21 · 2115 阅读 · 1 评论 -
docker~全
文章目录前言docker概念部署docker镜像操作容器常规操作运行容器列出容器删除容器:后台运行终止容器进入容器容器改名容器信息查看容器与宿主机间文件传输docker网络容器端口暴露bridge模式自定义模式host模式container模式None 模式数据共享与持久化数据卷挂载主机目录dockerfile定制镜像FROMLABEL 标签RUNWORKDIRADD,COPYCOPYADD 指令EXPOSE 指令构建镜像ENV 指令VOLUME 指令USER 指令CMD 与 ENTRYPOINT 指令CM原创 2022-04-22 02:07:49 · 1174 阅读 · 0 评论 -
kubernetes部署(containerd版)
文章目录环境准备安装 Containerd使用 kubeadm 部署 Kubernetes添加节点Dashboard清理使用 kubeadm 从头搭建一个使用 containerd 作为容器运行时的 Kubernetes 集群,这里我们安装 v1.22.1 版本。环境准备节点的 hostname 必须使用标准的 DNS 命名,另外千万不用什么默认的 localhost 的 hostname,会导致各种错误出现的。在 Kubernetes 项目里,机器的名字以及一切存储在 Etcd 中的 API原创 2022-05-27 14:34:45 · 2137 阅读 · 0 评论 -
kubeadm,kubevip,containerd部署高可用的kubernetes集群
文章目录环境准备安装 Containerd负载均衡器(kube-vip)初始化控制平面添加control plane node添加work node测试高可用Dashboard重新配置前提单 master 的集群对于生产环境风险太大了,非常有必要做一个高可用的集群,这里的高可用主要是针对控制面板(master节点)来说的,比如 kube-apiserver、etcd、kube-controller-manager、kube-scheduler 这几个组件,其中 kube-controller-manage原创 2022-05-28 14:27:41 · 1065 阅读 · 2 评论 -
kubeadm部署kubernetes(docker版)
环境准备:3个节点,centos7,内核3.0设置静态ip和主机名(分别是master,node1,node2):其他两个节点类似(为了方便配置这边使用了mobaX,你也可以使用ansible)域名解析:关闭防火墙和selinux:[root@master ~]# systemctl disable firewalld --nowRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.R原创 2022-04-03 14:41:20 · 1912 阅读 · 2 评论 -
ansible快速部署k8s集群
整个项目我放在了我的gitee上和github上https://gitee.com/a-bais/ansible-k8s-docker-kubeadmhttps://github.com/20gu00/ansible-k8s-docker-kubeadm里面READ.me文件描述了使用的步骤,可以直接克隆下来使用,亲测排错放下我的READ.me文件:.........原创 2022-06-16 00:54:54 · 1397 阅读 · 0 评论 -
Go(上):go基础 续
sync包——互斥锁sync是synchronization同步这个词的缩写,所以也会叫做同步包。这里提供了基本同步的操作,比如互斥锁等等。这里除了Once和WaitGroup类型之外,大多数类型都是供低级库例程使用的。更高级别的同步最好通过channel通道和communication通信来完成一、Mutex(互斥锁)通过上一小节,我们知道了在并发程序中,会存在临界资源问题。就是当多个协程来访问共享的数据资源,那么这个共享资源是不安全的。为了解决协程同步的问题我们使用了channel,但是Go语言也原创 2022-04-28 23:49:31 · 554 阅读 · 11 评论 -
Go(上):go基础
文章目录部署go环境编写第一个HelloWordgo命令运行原理,常用命令和参数go rungo buildgo installgo getgo doc安装go的IDE集成开发环境golandvim添加go插件与开发环境优化get或install拉取失败回来补充一条更好的vim-go从部署到使用教学的连接基础语法变量变量定义过程内存分析常量iota关键字基本数据类型数据类型转换运算符关系运算符逻辑运算符位运算符赋值运算符标准输入和输出流程语句if语句switch语句for循环语句for嵌套打印乘法表使用br原创 2022-04-28 23:03:38 · 1764 阅读 · 55 评论 -
linux内核升级版本
操作3.10版本有一些bug对k8运行不稳定,挑剔的话,这里来为k8s部署之前升级内核版本[root@k8s-master01 journald.conf.d]# uname -r3.10.0-1062.el7.x86_64 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 下载用于更新内核的yum源要检查/boot/grub2/grub.cfg中对应内核menuentry是否包含initrd16原创 2021-10-27 19:19:05 · 402 阅读 · 1 评论 -
ansible(笔记个人用)
ansible学习笔记与实操细节总结先说了:字丑轻喷,毕竟好久没写过字了,同时俺也不承认这会是我手写出来的字原创 2021-06-30 11:53:59 · 144 阅读 · 4 评论 -
zabbix全系列
准备三台centos7的机器,一台服务器,另外两台作为节点我的机器是centos7,新部署的虚拟机,先处理下环境静态网络设置vim /etc/sysconfig/network-scripts/ifcfg-ens160(配置文件中的DNS改为DNS1)(附可以选择在线编辑器计算ip掩码网关等等,dns百度搜索附近的dns即可)配置zabbix的yum仓库,建议使用国内源比如阿里源,会快很多(mirror.aliyun.com进入后看镜像站提示配置好yum源)但是我在写这篇博文时阿里巴巴开源镜像原创 2021-06-13 20:59:14 · 1105 阅读 · 2 评论 -
数据库系列:mysql,mariadb,redis
mariadb部署mysql(笔记个人用)安装mysql的几种方法汇总与keepcache用法redis部署mysql安装redis学习接"mysql(笔记个人用)"原创 2022-05-23 19:25:04 · 148 阅读 · 0 评论 -
nginx,php,lnmp基础知识汇总(部署配置主要是在宿主机上)
文章目录nginx实战记录常见错误和注意事项php学习lnmp的笔记专栏推荐最近要对写云原生应用设置各类负载均衡等,想起之前学的nginx,就将笔记汇总下nginx实战记录nginx常用模块之目录索引nginx常用模块之状态监控nginx常用模块之访问控制nginx常用模块之访问限制nginx日志虚拟主机nginx的location详解常见错误和注意事项lnmp拆分出php注意事项https://blog.csdn.net/weixin_45843419/article/detai原创 2022-05-04 12:53:56 · 1409 阅读 · 0 评论 -
Python学习笔记和实操记录(python基础操作,vscode,pymysql操作mysql,redis等)
Python学习笔记和实操细节反省(vscode,pymysql操作数据库等) - #编译安装python3 #设置pip3源 #Ipython基本使用 #if语句 #VSCode安装 #VSCode安装插件 #VSCode基本设置 #VSCode创建文件 #VSCcode运行Python代码 #变量 #判断表达式 #数据类型 #if语句 #python程序和循环 #函数的定义和使用 #字符串的基本操作 #字符原创 2021-05-10 10:52:45 · 1065 阅读 · 10 评论 -
service mesh:istio全
环境:一个k8s集群,三台centos7,内核3.10,域名解析部署:**下载指定版本:curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.13.2 sh -**或者wget下载:wget https://github.com/istio/istio/releases/download/1.13.2/istio-1.13.2-linux-amd64.tar.gz(无非就是下载下这个tar.gz)(架构一般都是用amd的64位)原创 2022-04-07 21:37:21 · 2359 阅读 · 0 评论