M上去学习
码龄4年
关注
提问 私信
  • 博客:41,513
    41,513
    总访问量
  • 92
    原创
  • 841,822
    排名
  • 805
    粉丝
  • 10
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
  • 加入CSDN时间: 2021-03-24
博客简介:

m0_56509725的博客

查看详细资料
个人成就
  • 获得12次点赞
  • 内容获得1次评论
  • 获得47次收藏
  • 代码片获得669次分享
创作历程
  • 92篇
    2023年
成就勋章
兴趣领域 设置
  • 云平台
    云计算百度云腾讯云阿里云华为云CSDN开发云
  • 运维
    linux运维
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

K8s-Traefik Ingress Controller

traefik 本身设计的就能够实时跟 kubernetes api 交互,感知后端 service,pod 等的变化,自动更新配置并重载。deployment 可以更方便的伸缩,但是不能确定有哪些 Node 在运行 traefik 所以不能确定的知道后端 ip。daemonset 能确定有哪些 Node 在运行 traefik,所以可以确定的知道后端 ip,但是不能方便的伸缩。//访问 Traefik UI,浏览器访问 http://Nodeip:NodePort/dashboard/
原创
发布博客 2023.11.14 ·
499 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

k8s 对外服务之 Ingress

ingress-controller并不是k8s自带的组件,实际上ingress-controller只是一个统称,用户可以选择不同的ingress-controller实现,目前,由k8s维护的ingress-controller只有google云的GCE与ingress-nginx两个,其他还有很多第三方维护的ingress-controller,具体可以参考官方文档。在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,对于集群外的应用是不可见的。
原创
发布博客 2023.11.14 ·
565 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

k8s 配置资源管理

●kubernetes.io/service-account-token:由 Kubernetes 自动创建,用来访问 APIServer 的 Secret,Pod 会默认使用这个 Secret 与 APIServer 通信, 并且会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中;在数据卷里面使用 ConfigMap,就是将文件填入数据卷,在这个文件中,键就是文件名,键值就是文件内容。●作为挂载到一个或多个容器上的卷 中的文件。
原创
发布博客 2023.11.09 ·
497 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

k8s-Pod控制器

而在 deployment中pod模板中创建的存储卷是一个共享的存储卷,多个pod使用同一个存储卷,而statefulset定义中的每一个pod都不能使用同一个存储卷,由此基于pod模板创建pod是不适应的,这就需要引入volumeClainTemplate,当在使用statefulset创建pod时,会自动生成一个PVC,从而请求绑定一个PV,从而有自己专用的存储卷。当节点挂了,重建之后的标识符是不变的,每一个节点的节点名称是不能改变的。当有 Node 加入集群时,也会为他们新增一个 Pod。
原创
发布博客 2023.11.08 ·
482 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

k8s持久化存储PV、PVC

Retain就是保留现场,K8S集群什么也不做,等待用户手动去处理PV里的数据,处理完后,再手动删除PV。上面介绍的PV和PVC模式是需要运维人员先创建好PV,然后开发人员定义好PVC进行一对一的Bond,但是如果PVC请求成千上万,那么就需要创建成千上万的PV,对于运维人员来说维护成本很高,Kubernetes提供一种自动创建PV的机制,叫StorageClass,它的作用就是创建PV的模板。-------------------- emptyDir存储卷 --------------------
原创
发布博客 2023.11.08 ·
338 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Kubernetes 亲和性 反亲和性 污点 容忍及维护驱逐

但我们可以在 Pod 上设置容忍(Tolerations),意思是设置了容忍的 Pod 将可以容忍污点的存在,可以被调度到存在污点的 Node 上。使用 kubectl taint 命令可以给某个 Node 节点设置污点,Node 被设置上污点之后就和 Pod 之间存在了一种相斥的关系,可以让 Node 拒绝 Pod 的调度执行,甚至将 Node 已经存在的 Pod 驱逐出去。(1)调度到某台 node 上。//将 Node 标记为不可调度的状态,这样就不会让新创建的 Pod 在此 Node 上运行。
原创
发布博客 2023.11.08 ·
2461 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

List-Watch集群调度

原因很简单,假设这个时候 kubectl 发命令,要扩充 Pod 副本数量,那么上面的流程又会触发一遍,kubelet 会根据最新的 Pod 的部署情况调整 Node 的资源。12、kubelet 是在 Node 上面运行的进程,它也通过 List-Watch 的方式监听(Watch,通过https的6443端口)APIServer 发送的 Pod 更新的事件。1、Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。
原创
发布博客 2023.11.01 ·
159 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

pod进阶--02

2、Running:pod已经与node绑定了(调度成功),而且pod中所有的container已经创建出来,至少有一个容器在运行中,或者容器的进程正在启动或者重启状态。但如果长时间处于Waiting状态,container会有一个字段reason表明它所处的状态和原因,如果这个原因很容易能标识这个容器再也无法启动起来时,例如ContainerCannotRun,整个服务启动就会迅速返回。4、Failed:pod中的所有容器都被terminated,至少一个container是非正常终止的。
原创
发布博客 2023.11.01 ·
86 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

k8s---pod进阶

举例PS:在买硬盘的时候,操作系统报的数量要比产品标出或商家号称的小一些,主要原因是标出的是以 MB、GB为单位的,1GB 就是1,000,000,000Byte,而操作系统是以2进制为处理单位的,因此检查硬盘容量时是以MiB、GiB为单位,1GiB=2^30=1,073,741,824,相比较而言,1GiB要比1GB多出1,073,741,824-1,000,000,000=73,741,824Byte,所以检测实际结果要比标出的少一些。最常见的可设定资源是 CPU 和内存大小,以及其他类型的资源。
原创
发布博客 2023.10.31 ·
417 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

kubeadm方式部署单节点kubernetes环境

----------------------------- 部署 Dashboard -------------------------------------------------- 所有节点安装kubeadm,kubelet和kubectl -------------------------------------------------- 环境准备 ------------------------------########### 内核参数优化方案 ##########
原创
发布博客 2023.10.26 ·
352 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

K8s 部署 CNI 网络组件+k8s 多master集群部署+负载均衡

目前比较常用的CNI网络组件是flannel和calico,flannel的功能比较简单,不具备复杂的网络策略配置能力,calico是比较出色的网络管理插件,但具备复杂网络配置能力的同时,往往意味着本身的配置比较复杂,所以相对而言,比较小而简单的集群使用flannel,考虑到日后扩容,未来网络可能需要加入更多设备,配置更多网络策略,则使用calico更好。------------------------------ 部署 CNI 网络组件 ------------------------------
原创
发布博客 2023.10.25 ·
2005 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

二进制部署 Kubernetes(master和node)

etcd内部采用raft协议作为一致性算法,etcd是go语言编写的。------------------------------ 部署 Master 组件 ------------------------------------------------------------ 部署 docker引擎 ------------------------------------------------------------ 部署 etcd 集群 ------------------------------
原创
发布博客 2023.10.23 ·
143 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Kubernetes概述及其组件/核心组件

从 Master 节点获取自己节点上 Pod 的期望状态(比如运行什么容器、运行的副本数量、网络或者存储如何配置等), 直接跟容器引擎交互实现容器的生命周期管理,如果自己节点上 Pod 的状态与期望状态不一致,则调用对应的容器平台接口(即 docker 的接口)达到这个状态。在K8S的集群里,虽然每个Pod会被分配一个单独的IP地址,但由于Pod是有生命周期的(它们可以被创建,而且销毁之后不会再启动),随时可能会因为业务的变更,导致这个 IP 地址也会随着 Pod 的销毁而消失。K8S 的存储服务。
原创
发布博客 2023.10.23 ·
152 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Ansible 的脚本 --- playbook 剧本

Jinja是基于Python的模板引擎。(4)在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用不到的目录可以创建为空目录,也可以不创建。此目录应当包含一个 main.yml 文件,用于定义此角色的任务列表,此文件可以使用 include 包含其它的位于此目录的 task 文件。在Ansible中,提供的唯一一个通用的条件判断是when指令,当when指令的值为true时,则该任务执行,否则不执行该任务。
原创
发布博客 2023.10.17 ·
553 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ansible

Ansible其中一个比较鲜明的特性是Agentless,即无Agent的存在,它就像普通命令一样,并非C/S软件,也只需在某个作为控制节点的主机上安装一次Ansible即可,通常它基于ssh连接来控制远程主机,远程主机上不需要安装Ansible或其它额外的服务。Ansible是基于模块工作的,它只是提供了一种运行框架,它本身没有完成任务的能力,真正执行操作的是Ansible的模块, 比如copy模块用于拷贝文件到远程主机上,service模块用于管理服务的启动、停止、重启等。
原创
发布博客 2023.10.13 ·
782 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Docker--harbor私有仓库部署与管理

然后运行 prepare 脚本来填充配置;------------------------------------2、 Harbor 简介 ------------------------------------------------------------------------ 维护管理Harbor ------------------------------------------------------ 1、搭建本地私有仓库 ------------------------------
原创
发布博客 2023.10.11 ·
400 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

docker compose和consul(服务注册与发现)

后端服务A-N可以把当前自己的网络位置注册到服务发现模块,服务发现就以K-V的方式记录下来,K一般是服务名,V就是IP:PORT。docker-compose 可以简化docker容器的管理,使得多个容器之间的部署,连接变得更加简单、可靠,同时还能够实现服务的自动扩展和容器的定期更新等功能,此外还支持设置各种容器之间的依赖关系。------------------------------------ consul 部署 ------------------------------------
原创
发布博客 2023.10.10 ·
528 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

dockerfile lnmp 搭建wordpress、docker-compose搭建wordpress

创建Docker网络:mynetwork 子网:172.18.0.0/16 选项:com.docker.network.bridge.name=docker1。#如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。写完相对应的Dockerfile文件后编写docker-compose.yml文件。使用标签"nginx:lnmp"构建Docker镜像。同上:在相应的目录内编写Dockerfile文件!格式:docker pull 仓库名称[:标签]
原创
发布博客 2023.10.09 ·
987 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Docker 的数据管理与Dockerfile 镜像的创建

但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。在Docker镜像的最底层是bootfs,这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。(5)镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件,只是这个文件在 Docker 容器中不可见了。
原创
发布博客 2023.10.06 ·
1013 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Docker基本管理

这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为docker容器是否正在运行的依据,如果docker容器中 pid = 1 的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉。--------------------------------资源控制---------------------------------------------------
原创
发布博客 2023.10.05 ·
269 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多