CKA学习笔记
文章平均质量分 90
K8S相关学习笔记
风车带走过往
这个作者很懒,什么都没留下…
展开
-
Docker Compose初识
它是一个用于定义和运行多容器 的应用程序工具工程、服务、容器Docker Compose 将所管理的容器分为三层,分别是工程(project)、服务(service)、容器(container)Docker Compose 运行目录下的所有文件(docker-compose.yml)组成一个工程,一个工程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖,一个服务可包括多个容器实例下载安装包sudo curl -L https://github.com/docker/compose/rel原创 2021-08-11 15:52:00 · 100 阅读 · 0 评论 -
Alpine Linux 使用简介Docker常用操作系统
目录Alpine简要介绍Alpine本地安装Alpine在Docker下运行Docker下的运行作为Docker容器的基础镜像Alpine的配置和使用网络相关文件更新国内源软件包管理工具apk的基本使用开启SSH服务安装nginxAlpine简要介绍Alpine Linux 网站首页注明“Small!Simple!Secure!Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc an原创 2021-12-13 10:45:04 · 1986 阅读 · 0 评论 -
学习笔记 k8s常用kubectl命令
请注意,备份 etcd 数据是一个敏感的操作,建议在执行备份和恢复之前详细了解 etcd 的配置和集群状态。此外,确保备份是定期进行的,以便在需要时能够迅速恢复数据。你可以通过查看 etcd 的配置文件或系统服务来确认具体的数据目录。一个集群上下文(Context)是一组集群、用户和命名空间的组合,用于标识 kubectl 操作的目标。当CPU利用率超过70%时,HPA将尝试增加Pod的数量,但最多不超过10个,最少不少于1个。Deployment 实现pod的扩容。切换到这个新创建的上下文。原创 2023-12-27 17:48:31 · 865 阅读 · 0 评论 -
学习笔记三十六:通过Ingress-nginx实现灰度发布
与前面 Header 类似,不过使用 Cookie 就无法自定义 value 了,这里以模拟灰度成都地域用户为例,仅将带有名为 user_from_cd 的 cookie 的请求转发给当前 Canary Ingress。链接:https://pan.baidu.com/s/10BU9qNqiAjfQfb9ZyVh1cQ?可以看到,只有 header Region 为 cd 或 sz 的请求才由 v2 版本服务响应。可以看到,大概只有十分之一的几率由 v2 版本的服务响应,符合 10% 服务权重的设置。原创 2023-11-30 17:59:42 · 1136 阅读 · 0 评论 -
学习笔记三十五:Ingress-controller高可用
链接:https://pan.baidu.com/s/1BP1Vr0IUxkMYqrP-MDs8vQ?链接:https://pan.baidu.com/s/1nNx9ZDHCu1stqtV7qo6bJA?链接:https://pan.baidu.com/s/18AU47-mvEMeqFS9IGUQURw?链接:https://pan.baidu.com/s/1UE81sqHEELqPQhB6lx5xEQ?参考:https://github.com/kubernetes/ingress-nginx。原创 2023-11-30 16:06:14 · 1271 阅读 · 0 评论 -
学习笔记三十四:Ingress和 Ingress Controller概述
Ingress官网定义:Ingress可以把进入到集群内部的请求转发到集群中的一些服务上,从而可以把服务映射到集群外部。Ingress 能把集群内Service 配置成外网能够访问的 URL,流量负载均衡,提供基于域名访问的虚拟主机等。Ingress简单的理解就是你原来需要改Nginx配置,然后配置各种域名对应哪个 Service,现在把这个动作抽象出来,变成一个 Ingress 对象,你可以用 yaml 创建,每次不要去改Nginx 了,直接改yaml然后创建/更新就行了;原创 2023-11-03 15:03:41 · 575 阅读 · 0 评论 -
学习笔记三十三:准入控制
LimitRanger准入控制器是k8s上一个内置的准入控制器,LimitRange是k8s上的一个标准资源,它主要用来定义在某个名称空间下限制pod或pod里的容器对k8s上的cpu和内存资源使用;ResourceQuota准入控制器是k8s上内置的准入控制器,默认该控制器是启用的状态,它主要作用是用来限制一个名称空间下的资源的使用,它能防止在一个名称空间下的pod被过多创建时,导致过多占用k8s资源,简单讲它是用来在名称空间级别限制用户的资源使用。创建resourcequota资源。原创 2023-11-02 15:10:10 · 810 阅读 · 0 评论 -
学习笔记三十二:RBAC认证授权策略
在Kubernetes中,所有资源对象都是通过API进行操作,他们保存在etcd里。而对etcd的操作我们需要通过访问 kube-apiserver 来实现,上面的Service Account其实就是APIServer的认证过程,而授权的机制是通过RBAC:基于角色的访问控制实现。Role。原创 2023-11-02 15:03:19 · 281 阅读 · 0 评论 -
学习笔记三十一:k8s安全管理:认证、授权、准入控制概述SA介绍
认证基本介绍:kubernetes主要通过APIserver对外提供服务,那么就需要对访问apiserver的用户做认证,如果任何人都能访问apiserver,那么就可以随意在k8s集群部署资源,这是非常危险的,也容易被黑客攻击渗透,所以需要我们对访问k8s系统的apiserver的用户进行认证,确保是合法的符合要求的用户。授权基本介绍:认证通过后仅代表它是一个被apiserver信任的用户,能访问apiserver,但是用户是否拥有删除资源的权限, 需要进行授权操作,常见的授权方式有rbac授权。原创 2023-11-02 14:30:17 · 765 阅读 · 0 评论 -
学习笔记三十:K8S配置管理中心Secret实现加密数据配置管理
Configmap一般是用来存放明文数据的,如配置文件,对于一些敏感数据,如密码、私钥等数据时,要用secret类型。Secret解决了密码、token、秘钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret可以以Volume或者环境变量的方式使用。要使用 secret,pod 需要引用 secret。原创 2023-11-02 11:43:14 · 675 阅读 · 0 评论 -
学习笔记二十九:K8S配置管理中心Configmap实现微服务配置管理
Configmap是k8s中的资源对象,用于保存非机密性的配置的,数据可以用key/value键值对的形式保存,也可通过文件的形式保存。原创 2023-11-02 11:31:45 · 892 阅读 · 0 评论 -
学习笔记二十八:K8S控制器Daemonset入门到企业实战应用
DaemonSet控制器能够确保k8s集群所有的节点都运行一个相同的pod副本,当向k8s集群中增加node节点时,这个node节点也会自动创建一个pod副本,当node节点从集群移除,这些pod也会自动删除;删除Daemonset也会删除它们创建的pod。原创 2023-11-01 15:41:40 · 407 阅读 · 0 评论 -
学习笔记二十七:K8S控制器Statefulset入门到企业实战应用
FIELDS:apiVersion #定义statefulset资源需要使用的api版本kind #定义的资源类型metadata #元数据spec #定义容器相关的信息FIELDS:podManagementPolicy #pod管理策略replicas #副本数revisionHistoryLimit #保留的历史版本。原创 2023-11-01 15:25:33 · 660 阅读 · 0 评论 -
学习笔记二十六:storageclass存储类动态生成存储
PV的属性 ,比如存储的大小、类型等;创建这种PV需要使用到的存储插件,比如Ceph、NFS等有了这两部分信息,Kubernetes就能够根据用户提交的PVC,找到对应的StorageClass,然后Kubernetes就会调用 StorageClass声明的存储插件,创建出需要的PV。查看定义的storageclass需要的字段sa的全称是serviceaccountserviceaccount是为了方便Pod里面的进程调用Kubernetes API或其他外部服务而设计的。原创 2023-11-01 15:01:49 · 467 阅读 · 0 评论 -
学习笔记二十五:持久化存储
hostPath Volume使得容器可以使用宿主机的文件系统进行存储,hostpath(宿主机路径):节点级别的存储卷,在pod被删除,这个存储卷还是存在的,不会被删除,所以只要同一个pod被调度到同一个节点上来,在pod被删除重新被调度到这个节点之后,对应的数据依然是存在的。因为Pod是有生命周期的,如果pod不挂载数据卷,那pod被删除或重启后这些数据会随之消失,如果想要长久的保留这些数据就要用到pod数据持久化存储。PV是容量插件,如Volumes,其生命周期独立于使用PV的任何单个pod。原创 2023-10-30 10:37:03 · 170 阅读 · 0 评论 -
学习笔记二十四:K8S四层代理Service
可以看下面的图:Pod network(pod 网络),创建的Pod具有的IP地址Node Network和Pod network这两种网络地址是我们实实在在配置的,其中节点网络地址是配置在节点接口之上,而pod网络地址是配置在pod资源之上的,因此这些地址都是配置在某些设备之上的,这些设备可能是硬件,也可能是软件模拟的Cluster Network(集群地址,也称为service network),这个地址是虚拟的地址(virtual ip),没有配置在某个接口上,只是出现在service的原创 2023-10-24 17:19:07 · 527 阅读 · 1 评论 -
学习笔记二十三:Deployment入门到企业实战应用
Deployment是kubernetes中最常用的资源对象,为ReplicaSet和Pod的创建提供了一种声明式的定义方法,在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态,通过定义一个Deployment控制器会创建一个新的ReplicaSet控制器,通过ReplicaSet创建pod,删除Deployment控制器,也会删除Deployment控制器下对应的ReplicaSet控制器和pod资源.原创 2023-10-24 16:45:17 · 453 阅读 · 0 评论 -
学习笔记二十二:K8s控制器Replicaset
ReplicaSet是kubernetes中的一种副本控制器,简称rs,主要作用是控制由其管理的pod,使pod副本的数量始终维持在预设的个数。它的主要作用就是保证一定数量的Pod能够在集群中正常运行,它会持续监听这些Pod的运行状态,在Pod发生故障时重启pod,pod数量减少时重新运行新的 Pod副本。原创 2023-10-24 15:52:54 · 366 阅读 · 0 评论 -
学习笔记二十一:Pod容器健康探测
有了存活性探针能保证程序在运行中如果挂掉能够自动重启,但是还有个经常遇到的问题,比如说,在Kubernetes 中启动Pod,显示明明Pod已经启动成功,且能访问里面的端口,但是却返回错误信息。这里用一个 Springboot 项目,设置 ReadinessProbe 探测 SpringBoot 项目的 8081 端口下的 /actuator/health 接口,如果探测成功则代表内部程序以及启动,就开放对外提供接口访问,否则内部应用没有成功启动,暂不对外提供访问,直到就绪探针探测成功。原创 2023-10-24 15:31:53 · 175 阅读 · 0 评论 -
学习笔记二十:Pod生命周期-启动钩子、停止钩子
Readinessprobe(就绪性检测):判断容器是否准备就绪并对外提供服务,将容器设置为不可用,不接受service转发的请求。Livenessprobe(存活性探测):判断容器是否处于runnning状态,根据重启策略决定是否重启容器。HTTPGetAction:通过向容器IP地址的某指定端口的path发起HTTP GET请求。ExecAction:在容器中执行一个命令,并根据返回的状态码进行诊断,只有返回0为成功。TCPSocketAction:通过与容器的某TCP端口尝试建立连接。原创 2023-09-06 16:19:10 · 438 阅读 · 0 评论 -
学习笔记十九:Pod常见的状态和重启策略
未知状态,所谓pod是什么状态是apiserver和运行在pod节点的kubelet进行通信获取状态信息的,如果节点之上的kubelet本身出故障,那么apiserver就连不上kubelet,得不到信息了,就会看Unknown,通常是由于与pod所在的node节点通信错误。2、我们在请求创建pod时,条件不满足,调度没有完成,没有任何一个节点能满足调度条件,已经创建了pod但是没有适合它运行的节点叫做挂起,调度没有完成。查看pod状态:发现正常停止容器里的tomcat服务,pod正常运行,容器没有重启。原创 2023-08-16 15:04:54 · 803 阅读 · 0 评论 -
学习笔记十八:污点、容忍度
还是显示pending,因为我们使用的是equal(等值匹配),所以key和value,effect必须和node节点定义的污点完全匹配才可以,把上面配置effect: "NoExecute"变成effect: “NoSchedule”;可以看到都被调度到k8snode1上了,因为k8snode2这个节点打了污点,而我们在创建pod的时候没有容忍度,所以k8snode2上不会有pod调度上去的。上面就可以调度到k8snode2上了,因为在pod中定义的容忍度能容忍node节点上的污点。原创 2023-08-16 14:52:14 · 942 阅读 · 0 评论 -
学习笔记十七:node节点选择器,亲和性
查看默认名称空间有哪些pod,把看到的pod删除,让默认名称空间没有pod创建的pod必须与拥有app=myapp标签的pod在一个节点上kind: Podmetadata:labels:spec:kind: Podmetadata:labels:tier: dbspec:affinity:第一个pod调度到哪,第二个pod也调度到哪,这就是pod节点亲和性删除测试podkind: Podmetadata:labels:spec:kind: Pod。原创 2023-08-16 14:38:18 · 396 阅读 · 0 评论 -
学习笔记十六:命名空间和标签
Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。这些虚拟集群被称为命名空间。命名空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间,例如,可以为test、devlopment、production环境分别创建各自的命名空间。原创 2023-08-16 10:56:09 · 172 阅读 · 0 评论 -
学习笔记十五:基于YAML文件运行POD应用
KIND: Pod# metadata是对象,下面可以有多个字段FIELDS:# annotations是注解,map类型表示对应的值是key-value键值对,表示 key和value都是String类型的用Annotation来记录的信息包括:build信息、release信息、Docker镜像信息等,例如时间戳、release id 号、镜像 hash 值、docker registry地址等;日志库、监控库、分析库等资源库的地址信息;原创 2023-08-15 15:42:43 · 448 阅读 · 0 评论 -
学习笔记十四:K8S最小调度单元POD概述
K8s官方文档:https://kubernetes.io/K8s中文官方文档: https://kubernetes.io/zh/K8s Github地址:https://github.com/kubernetes/kubernetesPod资源对应的官方文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/原创 2023-08-15 15:06:47 · 1088 阅读 · 0 评论 -
学习笔记十三:云服务器通过Kubeadm安装k8s1.25,供后续试验用
k8s_1.25.0.tar.gz链接:https://pan.baidu.com/s/1ytLFwRB3oHxTGu1DPG9YIg?链接:https://pan.baidu.com/s/17MW_un5N1-3w-yJOSNUYhw?链接:https://pan.baidu.com/s/1MzhaKeNdaHB7gwvhPTCMOg?链接:https://pan.baidu.com/s/1HdG5Zv3LThn4H5n6-bOxDQ?podSubnet(pod网段) 10.244.0.0/16。原创 2023-07-28 15:50:07 · 789 阅读 · 0 评论 -
学习笔记十二:安装k8s可视化UI界面dashboard
port是集群内的pod互相通信用的端口类型,比如nginx访问mysql,而mysql是不需要让客户访问到的,port是service的的端口。在google浏览器中,在上图出现的页面任意位置,直接键盘敲入这11个字符:thisisunsafe,可以直接跳过安全报错进入页面。注:表单中创建pod时没有创建nodeport的选项,会自动创建在30000+以上的端口。nodeport是集群外流量访问集群内服务的端口,比如客户访问nginx,apache,打开kubernetes的dashboard界面。原创 2023-03-29 15:16:58 · 2069 阅读 · 2 评论 -
学习笔记十一:Kubeadm安装K8S单master节点测试环境集群V1.20.6
Swap是交换分区,如果机器内存不够,会使用swap分区,但是swap分区的性能较低,k8s设计的时候为了能提升性能,默认是不允许使用交换分区的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。根据我们自己的需求修改配置,比如修改 imageRepository 的值,kube-proxy 的模式为 ipvs,初始化节点的时候需要指定cgroupDriver为systemd。原创 2023-03-23 21:57:56 · 606 阅读 · 0 评论 -
Kubeadm生成的k8s证书内容说明以及延长证书过期时间
kubeadm 部署的 Kubernetes 集群是以 pod 的方式运行 etcd 服务的, 在该 pod 的定义中, 配置了 Liveness 探活探针。原创 2023-03-23 21:54:42 · 1608 阅读 · 0 评论 -
kubernetes网络组件-Calico
官方提供的calico.yaml模板里,默认打开了ip-ip功能,该功能会在node上创建一个设备tunl0,容器的网络数据会经过该设备被封装一个ip头再转发。Off表示关闭ipip。把一个IP数据包又套在一个IP包里,即把IP层封装到IP层的一个 tunnel,它的作用其实基本上就相当于一个基于IP层的网桥,一般来说,普通的网桥是基于mac层的,根本不需要IP,而这个ipip则是通过两端的路由做一个tunnel,把两个本来不通的网络通过点对点连接起来;Daemonset配置。原创 2023-03-23 21:53:35 · 511 阅读 · 0 评论 -
学习笔记十一:kubeadm安装生产环境多master节点k8s高可用集群
Swap是交换分区,如果机器内存不够,会使用swap分区,但是swap分区的性能较低,k8s设计的时候为了能提升性能,默认是不允许使用交换分区的。kubeadm是官方提供的开源工具,是一个开源项目,用于快速搭建kubernetes集群,目前是比较方便和推荐使用的。Kubeadm初始化k8s,所有的组件都是以pod形式运行的,具备故障自恢复能力。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。原创 2023-03-20 22:41:47 · 1677 阅读 · 0 评论 -
学习笔记十:K8S核心组件介绍
k8s概述原创 2023-03-20 16:40:02 · 798 阅读 · 0 评论 -
学习笔记九:docker私有镜像仓库harbor
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。原创 2023-03-17 17:19:52 · 918 阅读 · 0 评论 -
学习笔记八:docker资源配额
Docker通过cgroup来控制容器使用的资源限制,可以对docker限制的资源包括CPU、内存、磁盘原创 2023-03-17 15:06:46 · 1147 阅读 · 0 评论 -
学习笔记七:docker容器互联
Docker网络container模式是指,创建新容器的时候,通过–net container参数,指定其和已经存在的某个容器共享一个 Network Namespace。因此就不会拥有自己独立的 IP,而是共享左边容器的 IP 172.17.0.2,端口范围等网络资源,两个容器的进程通过 lo 网卡设备通信。启动一个test5容器,–link做链接,那么当我们重新启动test3容器时,就算ip变了,也没关系,我们可以在test5上ping别名webtest。原创 2023-03-16 18:36:52 · 448 阅读 · 0 评论 -
学习笔记六:Docker容器的数据管理
数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或者多个容器提供访问,数据卷设计的目的,在于数据的永久存储,它完全独立于容器的生存周期,因此,docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理,同一个数据卷可以只支持多个容器的访问。原创 2023-03-16 17:36:47 · 321 阅读 · 0 评论 -
学习笔记五:dockerfile 构建生产环境镜像
dockerfile构建nginx镜像dockerfile构建tomcat镜像把Go代码基于dockerfile做成镜像把python代码基于dockerfile做成镜像原创 2023-03-09 22:18:55 · 331 阅读 · 0 评论 -
学习笔记四:dockerfile语法详解
dockerfile 语法详解原创 2023-03-07 17:24:12 · 792 阅读 · 0 评论 -
学习笔记三:容器,镜像相关操作,并部署nginx
容器,镜像相关操作,并部署nginx原创 2023-03-07 15:31:38 · 994 阅读 · 0 评论