自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

看,未来的博客

我的博客,最精简

原创 《后端成长路线》系列 导航篇

愿打开此篇对你有所帮助!

2021-10-06 10:11:41 5990 13

原创 记·CSDN 秋游活动

终究是因为没有吃早餐啊,上山半小时左右我就倒下了,哎。还好,我在倒下之前微信喊了飞龙哥,飞龙哥火速下来抢救我,又由于物资缺乏,摇了涛哥下来,真的是感动、且刺激。

2022-11-20 20:28:13 1134

原创 kubernetes rbac 权限管理

访问控制是云原生中的一个重要组成部分,也是一个 Kubernetes 集群在多租户环境下必须要采取的一个基本的安全架构手段。那么在概念上可以抽象的定义为谁在何种条件下可以对什么资源做什么操作。这里的资源就是在 Kubernetes 中我们熟知的:Pod、ConfigMaps、Deployment、Secrets 等等这样的资源模型。kubernetes 支持的认证鉴权方式有几个,这里只讲 RBAC。

2022-10-23 19:05:55 1023 6

原创 PersistentVolume、PersistentVolumeClaim && StorageClass

持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样, 也是使用卷插件来实现的,只是它们拥有独立于任何使用 PV 的 Pod 的生命周期。持久卷申领(PersistentVolumeClaim,PVC)表达的是用户对存储的请求。概念上与 Pod 类似。Pod 会耗用节点资源,而 PVC 申领会耗用 PV 资源。

2022-10-05 10:06:58 1456

原创 service

Service 用于为一组提供服务的 Pod 抽象一个稳定的网络访问地址。通过 Service 的定义,能够为客户端应用提供稳定的访问地址和负载均衡功能,以及屏蔽后端 Endpoint 的变化,是 kubernetes 实现微服务的核心资源。nametyperequiredbackupversionstring1kindstring1Servicemetadateobject1m.namestring1Service 名称,可配置用于访问string1。

2022-10-04 11:26:57 828

原创 关于 deployment 的 spec.selector 是否必选验证

2、为什么会问出这个问题?是什么妨碍了你写这个字段吗?1、在我的环境上,必选。

2022-10-02 15:08:47 731

原创 k8s 污点和容忍

在 Kubernetes 中,节点亲和性 NodeAffinity 是 Pod 上定义的一种属性,能够使 Pod 按我们的要求调度到某个节点上,而 Taints(污点) 则恰恰相反,它是 Node 上的一个属性,可以让 Pod 不能调度到带污点的节点上,甚至会对带污点节点上已有的 Pod 进行驱逐。当然,对应的 Kubernetes 可以给 Pod 设置 Tolerations(容忍) 属性来让 Pod 能够容忍节点上设置的污点,这样在调度时就会忽略节点上设置的污点,将 Pod 调度到该节点。

2022-09-25 15:31:50 3295 1

原创 亲和性调度

前面的 nodeSelector 调度略显生硬,如果场景是:某个 Pod 最好调度到磁盘大的节点上,如果暂时没有,小点也行,比方说数据库;如果场景是:某个 Pod,坚决不能调度到某类节点上,其余无所谓,比如说负载均衡不能调度到不对外开放端口的节点上;诸如此类…关于这些,nodeSelector 就不太行了。

2022-09-25 11:21:06 784

转载 k8s 服务注册与发现(四)DNS解析异常问题排查

本文介绍关于DNS解析异常的诊断流程、排查思路、常见解决方案和排查方法。

2022-09-24 16:57:04 3807

原创 k8s 服务注册与发现(三)CoreDNS

整个 CoreDNS 服务都建立在一个使用 Go 编写的 HTTP/2 Web 服务器上,CoreDNS 整个项目可以作为一个 Caddy 的教科书用法。CoreDNS 的大多数功能都是由插件来实现的,插件和服务本身都使用了 Caddy 提供的一些功能,所以项目本身也不是特别的复杂。

2022-09-24 16:49:03 1270

原创 k8s 服务注册与发现(二)Kubernetes内部域名解析原理

在 Kubernetes 中,比如服务 a 访问服务 b,对于同一个 Namespace下,可以直接在 pod 中,通过 curl b 来访问。对于跨 Namespace 的情况,服务名后边对应 Namespace即可。比如 curl b.default。那么,使用者这里边会有几个问题:①:服务名是什么?②:为什么同一个 Namespace 下,直接访问服务名即可?不同 Namespace 下,需要带上 Namespace 才行?③:为什么内部的域名可以做解析,原理是什么?

2022-09-24 16:03:25 2027

原创 k8s 服务注册与发现(一)DNS

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

2022-09-24 11:19:55 2102 2

原创 nodeSelector:Pod 定向调度

在实际情况下,有时候需要将 Pod 调度到制定的一些 Node 上,比如说CPU密集型Pod调度到CPU够大的节点上,IO密集型Pod调度到带宽够大的节点上等等。可以通过 Node 的标签和 Pod 的 nodeSelector 属性相匹配,来达到上述目的。beta.kubernetes.io/os(到 1.18 版本删除)beta.kubernetes.io/arch(到1.18 版本删除)用户可以使用这些系统标签进行调度。

2022-09-21 20:45:21 866

原创 init container

init container 与应用容器在本质上是一样的,但是它们仅是运行一次就结束的任务,并且必须在成功运行完成后,系统才能继续执行下一个容器。init container 的重启策略建议设置为 OnFailure。

2022-09-18 21:28:42 1550

原创 Pod 生命周期、重启策略、健康检查、服务可用性检查

ReadinessProbe 用于判断容器服务是否可用,对于被 Service 管理的 Pod,如果发现容器不可用,系统将从 Service 的后端 Pod Endpoint 列表中将该 pod 隔离出去,直到它什么时候可用了再放回来。kubelet 重启失败容器的时间间隔以 sync-frequency 乘 2n 来计算,如 1、2、4、8 倍等,最长时延 5min,并在重启成功之后的 10 min 后重置该时间。1)execAction,在容器内部运行一个命令,如果命令返回码为0,则表明容器健康。

2022-09-18 20:40:23 837 1

原创 在容器内获取 Pod 信息

注意:env 不直接设置 value,而是使用 valueFrom 对 Pod 的元数据进行引用。

2022-09-18 15:26:43 1108

原创 Pod 配置管理:configMap

ConfigMap 以一个或多个 key:value 的形式保存在 kubernetes 系统中供应用使用,既可以用于表示一个变量的值,也可以用于表示一个完整配置文件的内容。

2022-09-17 23:00:20 774 1

原创 Pod 定义详解

属性名称取值类型是否必选取值说明备注apiVersionstringRequired版本号kindstringRequired资源类型meatdateobjectRequired元数据m.namestringRequiredpod 名称stringRequiredpod 所属命名空间默认为 defaultm.labelslist自定义标签列表list自定义注解列表specobjectRequiredpod 中容器的详细定义list。

2022-09-17 15:43:48 1457

原创 学好 Yaml

之前是快速上手 yaml,这可以让我学习 kubernetes,但是真要工作用,总是差了一点东西,所以今天回炉重造。YAML 是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用。YAML 的语法比较简洁直观,特点是使用空格来表达层次结构,其最大优势在于数据结构方面的表达,所以 YAML 更多应用于编写配置文件,其文件一般以 .yaml(或者 .yml) 为后缀。大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。

2022-09-17 10:11:31 770

原创 自动化测试,Apipost 真好用

但通常意义的自动化测试,相对门槛较高,需要具备一定的代码能力,比如我们通常使用的Jmeter,虽然功能强大全面,但也被很多测试人员评价存在上手困难,操作繁琐,测试报告不完整清晰,发现问题不易追溯查找等问题。在Apipost6及以前的版本里,用户可以在测试模块一键添加APIS内的接口,该交互方式非常直观快捷,广受用户好评,所以我们在7版本继续沿用了这种添加方式:点击“API添加器”,右侧会弹出与APIS模块同步的目录,我们可以从里面选择接口复制至当前的流程配置中。

2022-09-17 09:19:04 874 1

原创 git只提交部分修改的文件(提交指定文件)

2/ git add src/components/文件名 添加需要提交的文件名(加路径–参考git status 打印出来的文件路径)3/ git stash -u -k 忽略其他文件,把现修改的隐藏起来,这样提交的时候就不会提交未被add的文件。7/ git stash pop 恢复之前忽略的文件(非常重要的一步)1/ git status -s 查看仓库状态。6/ git push 推送到远程仓库。-m “哪里做了修改可写入…5/ git pull 拉取合并。

2022-09-03 17:04:04 1894

原创 git 查看已经放到本地仓库的文件

git ls-files

2022-09-03 16:57:48 3374 1

原创 GIT 查看/修改用户名和邮箱地址

用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。github的contributions统计就是按邮箱来统计的。每次commit都会用用户名和邮箱纪录。用户名和邮箱地址的作用。

2022-09-03 16:51:56 848

原创 git commit后,如何撤销commit

这样就成功撤销了commit,如果想要连着add也撤销的话,–soft改为–hard(删除工作空间的改动代码)。执行commit后,还没执行push时,想要撤销这次的commit,该怎么办?不删除工作空间的改动代码 ,撤销commit,不撤销git add file。HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1。如果进行两次的commit,想要都撤回,可以使用HEAD~2。删除工作空间的改动代码,撤销commit且撤销add。git commit -m ‘修改原因’

2022-09-03 16:47:26 446

原创 Sed..

在这个例子里,匹配test的行被找到后,将存入模式空间,h命令将其复制并存入一个称为保持缓存区的特殊缓冲区内。第二条语句的意思是,当到达最后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中的行的末尾。Sed对于脚本中输入的命令非常挑剔,在命令的末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。...

2022-08-10 22:46:17 220 1

原创 URL 组成

两个url打开的页面一样,但是后面这个有问号,说明不调用缓存的内容,而认为是一个新地址,重新读取。统一资源定位器(URL)用于定位万维网上的文档(或其他数据)。当您点击 HTML 页面中的某个链接时,对应的。标签指向万维网上的一个地址。...

2022-08-10 22:45:17 161

原创 技术债:HTTP/HTTPS

HTTP 服务器通过它的套接字接受该报文,进行请求的解析工作,并从其存储器(RAM 或磁盘)中检索出对象 www.someSchool.edu/someDepartment/home.index,然后把检索出来的对象进行封装,封装到 HTTP 响应报文中,并通过套接字向客户进行发送。对比 TCP、UDP 这样的二进制协议,它的优点显而易见,不需要借助任何外部工具,用浏览器、Wireshark 或者 tcpdump 抓包后,直接用肉眼就可以很容易地查看或者修改,为我们的开发调试工作带来极大的便利。...

2022-08-10 22:44:32 210

原创 使用 sed 替换字符串中最后一次出现的字符

例如:将最后一个 - 换成空格:

2022-08-10 22:43:32 2882 1

原创 vrrp协议与keepalived浅析

vrrp: Virtual Redundent Routing Protocol 虚拟冗余路由协议​ 在现实的网络环境中两台需要通信的主机大多数情况下并没有直接的物理连接。

2022-08-10 22:41:52 1576

原创 git-lfs 离线安装

解压之后,有一个 git-lfs,放到系统执行目录下,比方说 /usr/bin,整个不动的话是通用的。拉取: 将原本的 git 换成 git lfs,大小都拉。测试:git lfs --version。下载一个,不要太新,也不要太旧。

2022-08-10 22:39:53 448

原创 PyCharm 离线安装第三方库

6、现在知道为什么不要下载 whl 了吗?如果有依赖包,用 whl 直接死那里了。5、打开 pycharm,import,运行。如果报错,回到第一步,安装依赖包。4、cmd 打开终端,进去,python setup.py install。2、不要下载 whl。...

2022-08-10 22:37:53 2610

原创 k8s 配置存储之 Configmap & secret

这篇比较轻松,因为我这会儿的时间被称之为“碎片时间”。

2022-07-25 21:58:21 1052 3

原创 [Apipost和Apifox哪个更好用?看这篇就够了!]

很多人搞不清楚Apipost和Apifox到底有什么区别,以下为真实体验,各位可以根据自身情况参考一下,有什么不足之处还请各位大佬多多指教。这块可以直接看他们的官网,个人感觉两款产品从功能和定位上来说,没啥明显区别,国内API工具做的好的也就是Apipost和Apifox了,虽然像Eolink和Swagger之类也还可以,但角色定位比较单一,个人感觉不如这两款功能强大。后端、前端、测试同时在线编辑,内容实时同步。API文档、API调试、APIMock、API自动化测试。.........

2022-07-24 11:08:47 1075

原创 ansible-playbook 可用参数

代码】ansible-playbook可用参数。

2022-07-24 10:34:35 491

原创 k8s 存储卷之 PV & PVC

由于kubernetes支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用户使用, kubernetes引入PV和PVC两种资源对象。- PV(Persistent Volume)是持久化卷的意思,是对底层的共享存储的一种抽象。一般情况下PV由kubernetes管理员进行创建和配置,它与底层具体的共享存储技术有关,并通过插件完成与共享存储的对接。- PVC(Persistent Volume Claim)是持久卷声明的意思,是用户对于存储需求的一种声明。换句

2022-07-22 19:49:06 1365 3

原创 k8s 存储卷之简单存储

EmptyDir是在Pod被分配到Node时创建的,它的初始内容为空,并且无须指定宿主机上对应的目录文件,因为kubernetes会自动分配一个目录,当Pod销毁时,EmptyDir中的数据也会被永久删除。NFS是一个网络文件存储系统,可以搭建一台NFS服务器,然后将Pod中的存储直接连接到NFS系统上,这样的话,无论Pod在节点上怎么转移,只要Node跟NFS的对接没问题,数据就可以成功访问。2、在每个node节点上都安装下nfs,这样的目的是为了node节点可以驱动nfs设备。...

2022-07-22 19:39:20 434

原创 Kubernetes 部署策略

在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了。选择正确的部署策略是要依赖于我们的业务需求的,下面我们列出了一些可能会使用到的策略:- 重建(recreate):停止旧版本部署新版本- 滚动更新(rolling-update):一个接一个地以滚动更新方式发布新版本- 蓝绿(blue/green):新版本与旧版本一起存在,然后切换流量- 金丝雀(canary):将新版本面向一部分用户发布,然后继续全量发布- A/B

2022-07-22 19:35:45 887

原创 K8s 资源更新机制详解

看了上述的介绍,大家应该对K8s更新机制有了一个初步的了解了。接下来想一想,既然K8s提供了两种更新方式,我们在不同的场景下怎么选择update或patch来使用呢?如果要更新的字段只有我们自己会修改(比如我们有一些自定义标签,并写了operator来管理),则使用patch是最简单的方式;如果要更新的字段可能会被其他方修改(比如我们修改的replicas字段,可能有一些其他组件比如HPA也会做修改),则建议使用update来更新,避免出现互相覆盖。https。...

2022-07-20 21:21:19 2021

原创 Apipost :一款值得使用的利器

至此,通过对比我们不难发现apipost是一款具有强大功能的一体化协作性工具,但ApiPost的强大并不限于此,在团队管理、协同管理、项目管理的多个方面都表现的很优秀,如果你还没有用过,建议尝试一下,相信用过之后,一定会爱上!https。...

2022-07-19 23:18:23 646

原创 Deployment 原理

所有的 Deployment 对象都是由 Kubernetes 集群中的 `DeploymentController` 进行管理,DeploymentController 会在启动时通过 Informer 监听三种不同资源的通知,Pod、ReplicaSet 和 Deployment,这三种资源的变动都会触发 DeploymentController 中的回调。...

2022-07-17 13:21:00 1734 5

提示
确定要删除当前文章?
取消 删除