自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 openstack-存储服务 8

分离云硬盘后可进行删除操作(需要先删除快照,负责无法直接删除云硬盘)操作完后再次连接上云主机,同时也可以连接其他云主机,存储资源不变。云主机内在线拉伸云硬盘: xfs_growfs /dev/vdb。使用demo用户创建云硬盘并于云主机建立连接。在与云主机分离后云硬盘可以做扩展或快照等操作。首先,在安装和配置块存储服务之前,必须。创建数据库、服务证书和API端点。启动组件并设置开机自启。修改nova配置文件。

2024-04-26 13:53:16 72

原创 openstack-镜像封装 7

再克隆两台主机并且安装图形化组件和虚拟化组件。根下创建一个目录,虚拟化管理器新添加一个路径。进入图形化界面并安装一个虚拟化管理器。清理创建云主机时安装的组件。使用普通用户创建云主机。压缩发送到httpd。

2024-04-24 21:53:31 220

原创 openstack-图形管理 6

重启配置过的服务并设置自启开启路由服务。配置Linuxbridge(桥接)管理员登录仪表盘设置启动外部网络。配置layer-3代理(路由)控制节点开启开启仪表盘禁用选项。重启web服务及会话存储服务。demo用户创建网络。如何访问到这个云主机。

2024-04-20 22:29:46 155

原创 openstack-云主机 5

重启计算服务并设置linuxbridge开机自启。创建服务实体并为其创建三个endpoint。配置Linuxbridge代理。配置linuxbridge代理。创建neutron用户。为计算节点配置网络服务。

2024-04-15 23:08:52 217

原创 openstack-计算服务 4

重新开启一台虚机,打开虚拟化,添加双网卡。安装软件包并修改配置文件。检测主机是否支持虚拟化。查看状态以及日志文件。修改解析并配置好网络。

2024-04-14 18:48:48 134

原创 openstack-镜像服务 3

创建glance用户并创建服务实体及api端点。设置开机自启并查看日志目录。创建glacnce数据库。安装glance软件包。使用测试镜像验证服务。

2024-04-13 23:04:37 233

原创 openstack-认证服务 2

Nova-计算服务;Neutron-网络服务;Swift-对象存储服务;Cinder-块存储服务;Glance-镜像服务Keystone-认证服务;Horizon-UI服务;Ceilometer-监控服务;由于普通用户没有操作用户的权限,因此在需要操作用户时需要切回admin管理员身份。创建环境变量脚本,为客户端操作加载合适的的凭证。为了安全性,需要关闭临时令牌,去请求认证令牌。控制节点,计算节点,网络节点,存储节点。初始化fernet keys。整个OpenStack是由。创建认证服务的API端点。

2024-04-09 20:16:05 326

原创 openstack-云平台部署 1

OpenStack是一个云操作系统,它控制整个数据中心的计算、存储和网络资源的大型池,所有这些都通过具有通用身份验证机制的api进行管理和配置。OpenStack在除了标准的基础设施即服务功能外,其他组件还提供编排、故障管理和服务管理等服务,以确保用户应用程序的高可用性。OpenStack还提供了一个仪表板,允许管理员控制,同时允许用户通过web界面提供资源。安装RabbitMQ组件并进行相关配置。安装memcached并进行相关配置。安装openstack客户端。openstack简介。

2024-04-01 19:34:21 307

原创 CI/CD实战-jenkins结合ansible 7

在ansible主机以jenkins身份配置ssh免密到所有测试机。给测试主机创建用户并设置密码添加权限,另一台同理。在jenkins上断开并删除docker1节点。jenkins新建参数化项目playbook。下载httpd但不启动,用于复制配置文件。重新给master添加构建任务。停掉其上后面的docker。

2024-03-28 21:03:00 520

原创 CI/CD实战-jenkins流水线 6

新建流水线项目docker_image_build。现最新版本没有该问题的出现。安装ssh agent插件。新建的用户就没有任何权限。生成一个token并保存。保存构建并查看阶段视图。下载后从插件管理安装。复制脚本并做相应修改。

2024-03-26 19:29:14 360

原创 CI/CD实战-jenkins结合docker 5

由于gitlib和jenkins设置了实时推送触发,因此此时gitlab会主动触发jenkins构建任务。在server1上提交Dockerfile。在server3上安装docker-ce。新建实验虚拟机并安装docker-ce。在jenkins安装docker插件。在docker主机要下载git工具。系统配置,添加凭据,添加ssh主机。添加harbor仓库的解析。jenins安装ssh插件。登录harbor私有仓库。使用ssh插件交付任务。修改内核参数并开启服务。查看镜像是否创建成功。

2024-03-25 12:55:45 387

原创 CI/CI实战-jenkis结合gitlab 4

在jenkins配置管理中添加节点并配置从节点。在jenkins节点上安装docker-ce。关闭master节点的构建任务数。gitlab的实时触发。新建节点server3。安装gitlab插件。

2024-03-23 20:19:38 391

原创 CI/CD实战-jenkins部署 3

不新建用户,使用admin账号登录。创建中添加gitlab认证凭据。在gitlab中上传公钥。

2024-03-21 11:56:44 510

原创 CI/CD实战-gitlab代码仓库 2

实验虚拟机最小需求:4g内存,4核cpu。

2024-03-17 12:17:39 618

原创 CI/CD实战-git工具使用 1

Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。git官网文档:https://git-scm.com/book/zh/v2。已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。build/ //忽略任何目录下名为 build 的文件夹。注:.git/目录被误删除或修改的话无法被回复,慎操作。/test //只忽略当前目录下的test文件。已修改表示修改了文件,但还没保存到数据库中。.* //忽略所有隐藏文件。

2024-03-16 18:51:44 678

原创 k8s-Istio服务网络 27

ServiceEntry:将外部服务接入到服务注册中,让Istio中自动发现的服务能够访问和路由到这些手 动加入的服务。Gateway:提供外部服务访问接口,可发布任意内部端口的服务,供外部访问。测试完后,当reviews:v3 微服务稳定时,可以通过应用Virtual Service规则将100%的流量路由reviews:v3。VirtualService:最核心的配置接口,定义指定服务的所有路由规则。来自名为 Jason 的用户的所有流量将被路由到服务 reviews:v2。Istio与k8s的区别。

2024-03-13 20:23:39 571

原创 k8s-高可用etcd集群 26

reset掉k8s2,k8s3,k8s4节点。将etcd二进制命令从容器拷贝到本机。重新启动kubelet服务。清理完网络插件后重启。添加master节点。

2024-03-12 15:55:35 613

原创 k8s-生产级的k8s高可用(2) 25

负载均衡,允许down掉其中一个节点,再次拉起后自动加入集群。(由于有etc,所以不允许down掉两个节点)k8s2、k8s3、k8s4在配置前需要重置节点(reset)在上一章已完成。安装containerd、kubelet、kubeadm、kubectl。由于之前部署过docker,因此containerd默认已安装。禁用所有节点docker和cri-docker服务。拷贝containerd的配置文件并重启服务。配置其他节点并启动containerd服务。加载内核模块(所有集群节点执行)

2024-03-09 19:26:17 651

原创 k8s-生产级的k8s高可用(1) 24

实验至少需要三个master(控制节点),一个可以使外部可以访问到master的load balancer(负载均衡)以及一个或多个外部节点worker(也要部署高可用)。pacemaker有个服务级的高可用,可以自动修复一些事件。启动pcsd服务并设置用户名和密码。测试完后停掉haproxy服务。前端监控要访问vip地址。设置开机自启并进行校验。节点认证随后添加节点。

2024-03-08 11:11:07 554

原创 k8s-prometheus应用监控 23

很显然每个pod上分配的指标很均衡,所以指标线有一定的重合,五分钟后会自动回收。由Prometheus采集到的的指标返回到了k8s进行查看,会自动进行弹缩。没有就绪是因为节点内存不够用,在扩容和去除点控制节点的污点用于调度后恢复。注:部署集群需要消耗较大的内存,需要提前扩容各节点的内存量至少达到4g。添加监控nginx服务实验示例。导入监控的hpa并编辑。

2024-03-04 21:01:19 511

原创 k8s-prometheus监控部署 22

官方监控模板:https://grafana.com/grafana/dashboards。新建项目仓库并上传部署prometheus所需的镜像。修改svc访问方式为LoadBalancer。访问prometheus监控页面。访问grafana监控页面。

2024-03-03 17:09:32 451

原创 k8s-kubeapps图形化管理 21

由于kubeapps不读取hosts解析,因此需要添加本地仓库域名解析(dns解析)上传到本地仓库后可使用图形化部署。更改context为全局模式。每隔十分钟会自动进行刷新。

2024-03-02 15:50:03 565

原创 k8s-kubeapps部署 20

下载最新版本的kubeapps并修改其values.yaml文件。访问http://192.168.182.102。修改svc暴露方式为LoadBalancer。使用创建的token进行登录web页面。展示所有的使用helm部署的应用。授权并获取token。

2024-02-25 18:41:13 579 4

原创 k8s-helm部署应用 19

以上就是使用helm部署应用的标准化的实现。创建namespace并部署应用。预先配置好外部的NFS服务器。清除之前的metrics部署。添加下载ingress。

2024-02-24 20:39:20 699

原创 k8s-heml联动harbor 18

helm plugin install https://github.com/chartmuseum/helm-push (在线安装,要求网速要快或者提供科学上网)通过helm将整个k8s的应用的部署变成了一种标准化操作,将yaml文件及复杂度全部进行封装,使其操作变得更加友好,更加符合普通用户的需求。将打包的heml包上传到harbor仓库进行管理。创建一个公开的项目来接收传送的heml包。

2024-02-23 17:36:20 710

原创 k8s-heml管理 17

对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。是用来封装 Kubernetes 原生应用程序的一系列。,主要用来管理 Charts,类似Linux系统的。对于应用发布者而言,可以通过 Helm。Helm是Kubernetes 应用的。添加第三方repo源。

2024-02-22 23:29:57 584

原创 k8s-hpa控制器 16

hpa可通过metrics-server所提供pod的cpu或者内存的负载情况,从而动态拉伸控制器的副本数,从而达到后端的自动弹缩。在结束压力测试后,默认等待5分钟冷去时间后,pod将会被自动回收。触发hpa扩容pod。

2024-02-21 21:50:00 620

原创 k8s-资源限制与监控 15

容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了MetricsServer之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。limitrage是给所有的pod都加上range,自定义限制的pod也需要在limitrange定义的区间内,超出资源限制调度就会失败。request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能 运行Pod。创建的pod必须定义资源限制,否则会报错。上传镜像到harbor。

2024-02-10 21:21:38 965

原创 k8s-认证授权 14

(3)通常情况下,集群的用户账户可能会从企业数据库进行同步,其创建需要特殊权限,并且涉 及到复杂的业务流程。认证方式现共有8种,可以启用一种或多种认证方式,只要有一种认证方式通过,就不再 进行其它方式的认证。其名称在集群各 namespace 中都是全局唯一的,未来的用户资源不 会做 namespace 隔离, 服务账户是 namespace 隔离的。用于拦截请求的一种方式,运行在认证、授权之后,是权限认证链上的最后一环,对请求 API资源对象进行修改和校验。(1)用户账户是针对人而言的。

2024-01-21 16:19:20 634

原创 k8s-调度 13

Taints(污点)是Node的一个属性,设置了Taints后,所以Kubernetes是不会将Pod调 度到这个Node上的,于是Kubernetes就给Pod设置了个属性Tolerations(容忍),只要 Pod能够容忍Node上的污点,那么Kubernetes就会忽略Node上的污点,就能够(不是必须)把Pod调度过去。podAffinity 主要解决POD可以和哪些POD部署在同一个拓扑域中的问题(拓扑域用主机标签实现,可以是单个主机,也可以是多个主机组成的 cluster、zone等。

2024-01-11 17:54:56 1134

原创 k8s-statefulset控制器 12

Pod被删除后重建,重建Pod的网络标识也不会改变,Pod的拓扑状态按照Pod的“名字+编号”的方 式固定下来,并且为每个Pod提供了一个固定且唯一的访问入口,即Pod对应的DNS记录。StatefulSet给所有的Pod进行了编号,编号规则是:$(statefulset名称)-$(序号),从0开始。MySQL 示例部署包含一个 ConfigMap、两个 Service 与一个 StatefulSet。应用实例必须按照某种顺序启动,新创建的Pod必须和原来Pod的网络标识一样。在nfs输出目录添加测试页。

2024-01-10 18:19:23 547

原创 k8s-存储 11

对于支持删除操作的PV卷,删除操作会从Kubernetes中移除PV对象,还有对应的外 部存储(如AWS EBS,GCE PD,Azure Disk,或者Cinder volume)。当 Pod 指定到某个节点上时,首先创建的是一个 emptyDir 卷,并且只要 Pod 在该节点上运行,卷就一直存在。因此,卷比 Pod 中 运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留。也许更重要的是,Kubernetes 可以支持许多类型的卷,Pod 也能同时使用任意数量的卷。Pod 中的每个容器必须。

2024-01-09 15:54:45 1332

原创 k8s-cni网络 10

数据包到达另一边开始解包,发现有flannel.1会交给这边的lflannel.1这个设备来进行解包,最后通过网桥直接进行转发。删除flannel插件,包括所有节点上的flannel配置文件,避免冲突。,另一边在封装常规的以太网头部的时候,需要对端的ip和mac;在同一个节点上的pod 流量通过cni网桥可以直接进行转发;数据包通过flannel(隧道) 知道另一边的mac地址。在给测试pod添加上指定标签后就可以进行访问。如果只能访问到一个节点,就需要重启一下。,就可以拿到另一边的ip地址,然后。

2023-12-28 22:42:06 711

原创 k8s-ingress特性 9

版本的升级迭代,之前利用控制器进行滚动更新,在升级过程中无法做到快速回滚。进入域名时,会自动重定向到hostname.html。多次访问会访问到不同svc里的pod。--ingress的重定向。rewrite重定向。

2023-12-19 17:35:31 288

原创 k8s-ingress 8

访问域名就是访问到vip,访问vip就是访问到控制器,访问控制器就是访问到控制器的pod;当前的LoadBalancer类型有一个外部地址,只要将外部地址添加进域名解析上就可以进行访问。当集群外的资源往集群内迁移时,地址并不稳定,访问域名或者访问方式等会产生变化;上传镜像(在harbor仓库先新建一个ingress-nginx项目)通过一个外部的vip地址访问到集群内的多个service。搜索ingress-nginx,拉取镜像。适合重定向到集群的不同的业务域。进入dockerhub官网。

2023-12-13 18:35:52 209

原创 k8s-service 7

kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的 iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU 资源;通信必须要有proxy,如果是跨节点网络通信还需要flannel节点,然后再结合每个节点上的iptables,从而实现负载均衡。lvs内核调度,算法更强大,性能更好,可以减少在刷iptables所带来的cpu消耗。默认使用iptables,调度iptables算法是随机的,推荐使用lvs。

2023-12-07 15:40:16 269

原创 k8s-daemonset、job、cronjob控制器 6

crondjob控制器创建job控制器,job控制器创建pod;该pod是由job控制器所创建的,是一次性的,相当于定时任务;每分钟自动创建一个,超过三个就会删除一个旧的。需要使用perl镜像,仓库没有,进行拉取上传。控制节点上不能进行部署,有污点。创建Daemonset控制器。(一个节点部署一个)

2023-11-29 20:25:12 439

原创 k8s-deployment控制器 5

定义的副本数量已经写到了etcd 里,整个信息已经持久化到了etcd 里面,该控制器会不断地到etcd里获取变更,不断地和当前的状态和etcd里的设定的状态做比对,如果有差异,代码将会自驱动完成更新;即使对其进行删除,也会自动创建,所创建出来的标签和之前的pod保持一致。创建新版本的方式:首先由feployment来创建rs,再由rs来创建设定数量的副本,当要进行升级时,deployment会新建一个rs,停用掉之前的rs,rs会将之前创建的pos副本回收,然后再由新的rs将pod副本重新创建出来。

2023-11-27 18:39:21 554

原创 k8s-pod生命周期 4

在打开myapp容器之前,首先通过init容器检测集群内的解析是否到位,如果解析没有到位,后续的容器不会启动 ,直到解析到位,环境就绪;容器在开启svc解析成功后,init容器退出,主容器运行。pod 由pod 镜像来提供,在pod 生命周期里容器主要分为两种:初始化容器和主容器。初始化容器一定要成功运行并退出,当初始化容器运行退出完了之后主容器开始和运行。一旦存活探针报错,就认为该pod不存活,就会不断重启pod内的容器。主容器开始运行的时候,有两个探针:存活探针和就绪探针。就绪探针失败,容器未就绪。

2023-11-23 22:07:24 841

原创 k8s-pod管理 3

pod是可以创建和管理k8s 计算的最小可部署单元,一个pod 代表着集群中运行的一个进程,每个pod 都有一个唯一的ip。在同一个pod内有两个容器,这两个容器是共享网络栈的,它们可以通过localhost来进行访问。services将自动发现有多少副本,并将启动的健康的pod加入到负载均衡列表。集群通过namespace来做的逻辑隔离,默认操作的资源都指向default。该端口映射仅限于在k8s4这个节点上,也仅限于在该节点可以进行访问;查看创建的pod的详情信息。如果定义的值不同,就为。

2023-11-21 17:14:47 73

空空如也

空空如也

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

TA关注的人

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