自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

看,未来的博客

我的博客,最精简

  • 博客(563)
  • 资源 (9)
  • 收藏
  • 关注

原创 k8s 资源管理之 deployment

在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于Pod的管理,确保Pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建Pod。在kubernetes中Pod控制器的种类有很多,Deployment 是最常用的那种。Deployment 分两篇来写,这一篇主要是实操部分,下一篇是原理部分。...

2022-07-17 13:15:23 3360 3

原创 Pod 生命周期与重启策略

1、用户通过kubectl或其他api客户端提交需要创建的pod信息给apiServer。2、apiServer开始生成pod对象的信息,并将信息存入etcd,然后返回确认信息至客户端。3、apiServer开始反映etcd中的pod对象的变化,其它组件使用watch机制来跟踪检查apiServer上的变动。4、scheduler发现有新的pod对象要创建,开始为Pod分配主机并将结果信息更新至apiServer。5、node节点上的kubelet发现有pod调度过来,尝试调用docker启动容器,

2022-07-13 19:09:50 1534 3

原创 Kubernetes 部署策略

在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了。选择正确的部署策略是要依赖于我们的业务需求的,下面我们列出了一些可能会使用到的策略:策略定义为Recreate的Deployment,会终止所有正在运行的实例,然后用较新的版本来重新创建它们。...

2022-07-12 20:34:19 522

原创 pod 调度详解:亲和、污点和容忍

一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做呢?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式:在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计...

2022-07-12 09:45:00 407

原创 k8s 资源管理之 Label 与 Selector

Label是kubernetes的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择。● Label的特点:○ 一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等。○ 一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上去。○ Label通常在资源对象定义时确定,当然也可以在对象创建后动态的添加或删除。(文中资源默认衔接前两篇 “Pod 讲解” 中的资源)让我们给这个 nginx pod 打上

2022-07-11 23:57:27 1101

原创 k8s 资源管理 前导篇

kubernetes中所有的内容都抽象为资源,可以通过下面的命令进行查看:● 经常使用的资源如下所示:● ① 集群级别资源:● ② Pod资源:● ③ Pod资源控制器:● ④ 服务发现资源:● ⑤ 存储资源:● ⑥ 配置资源:kubectl 是 Kubernetes 的命令行工具(CLI),是 Kubernetes 用户和管理员必备的管理工具。在管理工具界面使用kubectl语法运行如下命令:(1)comand:指定要对资源执行的操作,例如 create、get、describe 和 delete

2022-07-08 15:47:19 281

原创 k8s 资源管理之 Pod

导读:● Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。● Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。那么,为什么需要 Pod?...

2022-07-08 09:15:32 561 4

原创 目标:不排斥 yaml 语法。争取快速上手

这三年,除了 Makefile,我就没碰过这么怪的语法。当然 Makefile 我是果断放弃了,因为我会写 CMake 嘿嘿。怪也得上手啊,马上就要用的东西了。先通读一下语法吧,反正不多,一会儿拿 Python 来演示一下可能会感觉世界都明朗了吧(不得不说,Python 真是个好东西)...

2022-07-07 11:30:24 807

原创 kubeadm 安装 k8s 集群(版本自选)

导读:k8s 的出现,是解决了什么市场痛点?互联网早期,企业将服务直接部署在物理机上;后来由于一系列变化,经历了虚拟化部署,开始了 容器部署之路,Docker 无疑是其中的佼佼者。注:安装过程中遇到问题可以在后台回复 “咨询“,我来看报错日志、...

2022-07-07 00:18:44 1190 1

原创 谈谈 Docker 镜像多阶段构建

导读:通常情况下,构建镜像通常会采用两种方式:1. 将全部组件及其依赖库的编译、测试、打包等流程封装进一个 Docker镜像中。采用这种方式往往忽略了以下这些问题: - Dockefile 特别长,可维护性降低。 - 镜像的层次多,体积大,部署时间长。 - 源代码存在泄漏的风险。2. 分散到多个 Dockerfile。事先在一个 Dockerfile 将项目及其依赖库编译测试打包好后,再将其拷贝到运行环境中,这种方式需要我们编写两个 Dockerfile......

2022-07-03 20:53:13 959 6

原创 【问题解决】[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz‘ failed wite

报错:[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz’ failed with error: Get “http://localhost:10248/healthz”: dial tcp [::1]:10248: connect: connection refused.原因:执行初始化安装命令kubeadm init …报错故障:[etcd] Creating static Pod man

2022-07-01 23:28:25 15346 8

原创 Docker 进阶之镜像分层详解

导读:可以想象,像 ubuntu等基础镜像,体积必然不小。那么,思考以下几个问题:- 我们基于同一个镜像(ubuntu 18.4)启动了两个容器,会占用两倍磁盘空间吗?- 我们在容器内修改或者新建了某个文件,要修改原镜像吗?- 我们基于某镜像(ubuntu 18.04)新建一个镜像(myubuntu),需要将原镜像文件全部拷贝到新镜像中吗?首先,让我们尝试思考下,如果我们去做,该如何高效的解决这些问题?- 方案一,...- 方案二,...- 方案三,......

2022-06-29 10:10:03 2614 4

原创 Docker 进阶之 Dockerfile 详解

Dockerfile的优点:- 能够自由灵活的与宿主机联系,比如,某些配置文件在宿主机验证并使用过后很好用,那么,可以将文件copy到镜像中,add 远程主机的配置文件到镜像中,定义onbuild动作等等各种灵活的功能。- dockerfile本身就是一个比较详细的构建文档,有这个文档就可以清楚的知道新构建的镜像经历了怎样的变化。没有黑箱操作的困扰,后期维护更加方便。......

2022-06-28 11:16:38 1786

原创 问题解决:虚拟机无法复制粘贴文件

看了我的方案,你会后悔跟着网上其他人重装 vm-tools

2022-06-26 14:14:21 11551 3

原创 【问题解决】虚拟机配置静态ip

1、vim /etc/sysconfig/network-scripts/ifcfg-ens33这里的文件名可能会略有不同,ifconfig 看一下。2、修改样本:3、重启网络服务器

2022-06-23 16:11:46 155

原创 【问题解决】The connection to the server localhost:8080 was refused

原因:kubernetes master没有与本机绑定,集群初始化的时候没有绑定,此时设置在本机的环境变量即可解决问题。具体根据情况,此处记录linux设置该环境变量方式一:编辑文件设置方式二:直接追加文件内容...

2022-06-23 16:02:38 1158 2

原创 Docker 入门,学明白这一篇就够啦

...Docker 之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案-----系统平滑移植,容器虚拟化技术。...容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。...每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。......

2022-06-23 15:51:03 1278 1

原创 问题解决:虚拟机centos7无法正常启动:XFS (vda3): Corruption of in-memory data detected. Shutting doum filesystem

系统开机即进入救援模式,报错如下:Generating “/run/initramfs/rdsosreport.txt”Entering emergency mode. Exit the shell to continue.Tupe “journalctl” to view sustem logs.You might want to save “/run/initramfs/rdsosreport.txt” to a USB stick or /boot after mounting them and at

2022-06-22 10:37:42 1033

原创 未来已来:云原生时代

...云上的战争,才刚刚开始。作为一名开发者,我们要如何成为云原生时代的弄潮儿?跑步入场,跑步入场,跑步入场啊!!!...

2022-06-21 15:57:42 828 1

原创 Go 字符串操作

字符串是不可变值类型,内部用指针指向 UTF-8 字节数组。输出结果:使用 “ ` “ 定义不做转义处理的原始字符串,支持跨行输出结果:跨行拼接字符串连接跨行字符串时,”+” 必须在上一行末尾,否则导致编译错误输出结果:子串切片串依然指向原字节数组,仅修改了指针和度属性。输出结果:修改字符串是说了不能直接修改,但是没说不能修改呀?!!要修改字符串,可先将其转换成 []rune 或 []byte,完成后再转换为 string。无论哪种转换,都会重新分配内存,并复制字节数组。输

2022-06-18 22:24:58 501 1

原创 Go 输入输出

fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。Print系列函数会将内容输出到系统的标准输出,区别在于Print函数直接输出内容,Printf函数支持格式化输出字符串,Println函数会在输出内容的结尾添加一个换行符。Sprint 系列Sprint系列函数会把传入的数据生成并返回一个字符串。Scan 系列Go语言fmt包下有fmt.Scan、fmt.Scanf、fmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用

2022-06-18 21:41:25 334

原创 go channel 管道

协程是并发编程的基础,而管道(channel)则是并发中协程之间沟通的桥梁,很多时候我们启动一个协程去执行完一个操作,执行操作之后我们需要返回结果,或者多个协程之间需要相互协作。channel 方向 ...

2022-06-18 15:56:23 153

原创 【Go】资源竟态检测工具:race detetor

试了一下,简直牛逼。鉴于处于快速入门阶段,就不去挖底层原理了,等面铺开了再深入。用一个有点并发经验的人都能看出来的例子,累加:不上锁时是这样的:接下来让我们看看 race detetor 的表现:懂得都懂,真正项目里的资源竟态隐藏的都很深,一爆出来那死伤是难以估量的。...

2022-06-18 14:33:52 212

原创 Go defer 的一些注意事项

其实go说的很清楚,我们一起来看看go spec如何说的也就是说函数正常执行,由于闭包用到的变量 i 在执行的时候已经变成4,所以输出全都是4.这个大家用的都很频繁,但是go语言编程举了一个可能一不小心会犯错的例子.这个输出并不会像我们预计的输出c b a,而是输出c c c可是按照前面的go spec中的说明,应该输出c b a才对啊.那我们换一种方式来调用一下.这个时候输出的就是c b a当然,如果你不想多写一个函数,也很简单,可以像下面这样,同样会输出c b a看似多此一举的声明结论

2022-06-18 10:54:31 173

原创 go 字符串修改

string底层就是一个byte的数组,因此,也可以进行切片操作。输出结果:修改英文字符串string本身是不可变的,因此要改变string中字符。需要如下操作:

2022-06-17 20:11:50 283

原创 Go 语言入门三部曲(三):能用 Go 写“生产-消费者”模型

到最后一篇了,让我们再回顾一下这三篇的设定。第一篇打基础,第二篇学以致用,查缺补漏,第三篇是我认为的 Go 语言能打的部分:协程 的应用。我对 Go 的理解没那么深,能让我一个小白对 Go 感兴趣,一是云原生工作需要,二就是它能轻易的调动协程。不然它还真不能把我的目光从 C++ 身上挪过去一点。...

2022-06-17 16:07:40 240

原创 Go 语言入门三部曲(二):能用 Go 语言写管理系统

草草写了个 ATM,颇有收获。数据层我就不写了,毕竟最后一个暑假了,我也想去歇歇。没什么需求分析,管理系统写来写去也就那些功能还能玩出花儿来么哈哈。每个项目里总要有个 main 入口嘛。ui.go所有界面都在里面了。麻雀虽小,还是跟业务层解耦了。worker.go业务层面,“命令 + 门面” 这套手法是越来越熟了哈。这里面本该连接数据层的地方我全用注释了。...

2022-06-17 10:42:17 261

原创 go 语言调试

1、2、3、c

2022-06-16 16:46:13 156 1

原创 问题解决:Go 多文件编程

我们不一样

2022-06-16 10:27:27 936

原创 Go 语言入门三部曲(一):能看懂 Go 语言

0、能看完这篇却没动手

2022-06-14 21:59:14 664

原创 Calico on Kubernetes

由于两台物理机的容器网段不同,我们完全可以将两台物理机配置成为路由器,并按照容器的网段配置路由表。在物理机A中,我们可以这样配置:要想访问网段172.17.9.0/24,下一跳是192.168.100.101,也即到物理机B上去。这样在容器A中访问容器B,当包到达物理机A的时候,就能够匹配到这条路由规则,并将包发给下一跳的路由器,也即发给物理机B。在物理机B上也有路由规则,要访问172.17.9.0/24,从docker0的网卡进去即可。当容器B返回结果的时候,在物理机B上,可以做类似的配置:要想访问网

2022-06-13 10:08:17 437 1

原创 关于 MySQL 修改密码失败

修改语句无效(版本问题)注意上述语句已经失效了,新版为:其实我就纳闷儿了,我半年前写毕设的时候用的还是上面那条命令的更早的,是 修改user 表的。三个月前写 docker 部署 MySQL主从的时候用的是上面的命令。今天上面的命令就不行了,就要用下面的命令了。改的这么快吗?难道更新一下版本就要改几条命令?注:我从两年半前第一次学MySQL用的就是 MySQL8,我寻思着都是一个大版本啊搞什么啊?得出结论:适当的用用旧版本....

2022-06-11 21:48:25 396 2

原创 关于我的 “二进制部署 kubernetes 集群” 的体验

关于这个事情,终于是告一段落了。如果从安装开始算,大概花了有将近二十个小时吧,是一个很漫长的工作。如果从起意做到现在,那真的太长了。在这次安装的过程中,我对 kubernetes 有了一个更深的理解,我觉得就算把这个东西作为一个毕设他的工作量都不为过了。当然,理解还比较浅薄,我不同意我找到的资料是浅薄的,是我在这段时间里面太激进了,没有很好的去吃透,只是到达“懂了”,然后就下一 part,要我复述是不可能的。但是现在我部署完了,我回过头来,还有一个月的时间给我慢慢的去理解、消化、扩张。我承认这次部署有“赌”

2022-06-11 17:32:14 452

原创 kubernetes 二进制安装(v1.20.15)(九)收尾:部署几个仪表盘

组件已成功创建,但是还不能从外部进行访问,为了能一见dashboard的芳容,我们需要改造一下svc的类型。在浏览器中访问 https://ip:31054打开页面之后,你会发现需要登陆。部署MetricsServer从 v1.8 开始,资源使用情况的监控可以通过 Metrics API的形式获取,具体的组件为Metrics Server,用来替换之前的heapster,heapster从1.11开始逐渐...

2022-06-11 16:55:33 390

原创 kubernetes 二进制安装(v1.20.15)(八)部署 网络插件

先新建个文件夹:/opt/TLS/k8s/yml前面讲部件的时候没有专门对 calico 进行分析,后面会补上。calico.yaml,自己在网上也可以找,找不到也可以直接用我的(私信,或者到我的资源里面找)然后等个几分钟,查看状态:部署 coredns前面分析组件的时候把 coredns 也给忘了,后面也得补上。coredns.yaml:这份 yaml 是有点小问题的,大家可以自行解决一下,不难,连我都能解决,何况你们嘛。部署:过个几分钟再看:Over,接下来我们再整几个仪表盘,我上一个

2022-06-11 16:25:21 580 3

原创 Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container..

我依稀记得之前遇到过这个问题,我确定是解决了,但是我不知道为什么我没有记录。这会儿我知道我为什么没有记录了:

2022-06-11 14:56:22 6538 3

原创 Kubernetes TLS bootstrapping

众所周知 TLS 的作用就是对通讯加密,防止中间人窃听;同时如果证书不信任的话根本就无法与 apiserver建立连接,更不用提有没有权限向 apiserver 请求指定内容。在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。当集群开启了 TLS 认证后,每个节点的 kubelet 组件都要使用由 apiserver 使用的...

2022-06-11 11:09:45 706

原创 kubernetes 二进制安装(v1.20.15)(七)加塞一个工作节点

这里我再说一遍 TLS Bootstrapping:算了下一篇吧,这里之所以要删除这两个文件,是因为要从 master 的 apiserver 重新生成,如果有东西在那边,会导致一些莫名其妙的后果,比方说 kubelet 起来了,但是从master 上扫描不到 node。如果有想重新安装 kubelet,记得要将那两个地方清理一下,不然会很有意思…注:bootstrap.kubeconfig 那里面是 master 的地址。...

2022-06-10 21:47:50 562

原创 kubernetes 二进制安装(v1.20.15)(六)部署WorkNode节点

注1:因为本机资源的限制,我们可以让Master Node上兼任Worker Node角色。注2:本篇不在 k8s-node1 上作为,下一篇就知道了。分发文件核对文件部署kubelet创建配置文件配置参数文件创建管理文件创建kubeconfig文件这里要注意,如果前面是自行生成的 token,这里要做相应的修改:分发文件这里要注意,拓展新节点的时候要把文件分发过去...

2022-06-10 16:46:25 645

原创 PKI/TLS瑞士军刀之cfssl

CFSSL是CloudFlare公司提供的PKI/TLS工具,是一组使用Go语言开发的开源工具。CloudFlare公司的主营业务之一就是提供网络安全服务,在开源CFSSL的时候就宣称他们所有的TLS证书都使用了CFSSL工具。证书的管理涉及很多方面比如证书链,对于很多运维管理者来说都是很繁琐的事情,CFSSL的目标之一就是为了解决证书管理在性能、兼容性以及安全性的问题。CA(Certification Authority)证书,指的是权威机构给我们颁发的证书。密钥就是用来加解密用的文件或者字符串。密钥在非

2022-06-10 15:34:28 581

calico.yaml

博客附属文件 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2022-06-11

main_menu.zip

将该文件,替换进去,目前没发现不良反应。

2020-06-15

C++函数手册+(LibraryFunctions).zip

https://blog.csdn.net/qq_43762191/article/details/106320590

2020-05-24

背包九讲,动态规划扛把子

背包九讲,动态规划扛把子

2020-05-20

shm共享内存 - 动态链接库

教程:https://blog.csdn.net/qq_43762191/article/details/106236093

2020-05-20

DB.zip 数据库(sqlite3动态链接库)

如果不会用,可以跟我说一声,我的博客教程:https://blog.csdn.net/qq_43762191/article/details/106232671

2020-05-20

线程池动态链接库.zip

如果不会操作,https://blog.csdn.net/qq_43762191 联系我。 。。。。。。。。。。。。。。。。。。。。。

2020-05-16

标准基本对话框所需静态函数.xls

标准基本对话框所需静态函数.xls

2020-01-18

Sqlite3.zip

直接解压,拉出可执行文件就好。配置文件已自带。

2019-11-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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