K8S
文章平均质量分 91
努力成为更好的自己!
这个手刹不太灵儿
始终相信美好的事情会发生
展开
-
【Kubernetes】Pod生命周期、初始化容器、主容器
spec字段下有个initContainers字段(初始化容器),Init容器就是做初始化工作的容器。可以有一个或多个,如果多个按照定义的顺序依次执行,先执行初始化容器1,再执行初始化容器2等,等初始化容器执行完具体操作之后初始化容器就退出了,只有所有的初始化容器执行完后,主容器才启动。原创 2024-05-16 17:59:11 · 837 阅读 · 0 评论 -
【Kubernetes】污点、容忍度、亲和性、调度和重启策略
标签其实就一对 key/value ,被关联到对象上,比如Pod,标签的使用我们倾向于能够表示对象的特殊特点,就是一眼就看出了这个Pod是干什么的标签可以用来划分特定的对象(比如版本,服务类型等),标签可以在创建一个对象的时候直接定义,也可以在后期随时修改,每一个对象可以拥有多个标签,但是,key值必须是唯一的。创建标签之后也可以方便我们对资源进行分组管理。如果对pod打标签,之后就可以使用标签来查看、删除指定的pod。在k8s中,大部分资源都可以打标签。原创 2024-05-15 11:57:19 · 772 阅读 · 0 评论 -
【Kubernetes】在k8s1.24及以上版本基于containerd容器运行时测试pod从harbor拉取镜像
因为每个节点的docker都配置了herbor的仓库地址(/etc/docker/daemon.json 中设置的)访问harbor(https://10.32.1.147/ 账号admin密码Harbor12345)查看。修改config.toml配置文件里的harbor的ip地址,变成自己真实环境的harbor的ip。把资料里提供的config.toml文件传到 /etc/containerd/目录下。在安装harbor的主机上,vim /etc/docker/daemon.json。原创 2024-02-05 13:51:06 · 1053 阅读 · 0 评论 -
【Kubernetes】七层代理Ingress
官网定义Ingress可以把进入到集群内部的请求转发到集群中的一些服务上,从而可以把服务映射到集群外部。Ingress能把集群内Service配置成外网能够访问的URL、流量负载均衡,提供基于域名访问的虚拟主机等。简单理解原来需要修改nginx配置,然后配置各种域名对应哪个service,现在把这个动作抽象出来,变成一个Ingress对象,你可以用yaml创建,每次不要去改nginx了,直接改yaml然后创建/更新就行了。Ingress总结。原创 2024-01-25 17:27:15 · 803 阅读 · 0 评论 -
【Kubernetes】认证授权RBAC (二)
以上配置清单表示,在quota名称空间下运行的pod数量不能超过6个,所有pod的cpu资源下限总和不能大于2个核心,内存资源下限总和不能大于2G,cpu上限资源总和不能大于4个核心,内存上限总和不能超过10G,apps群组下的deployments控制器不能超过6个, pvc个数不能超过6个;同样的逻辑,LimitRanger可以限制一个pod使用资源的上下限,它还可以限制pod中的容器的资源上下限,比限制pod更加精准;不管是针对pod还是pod里的容器,它始终只是限制单个pod资源使用。原创 2024-01-07 18:46:20 · 952 阅读 · 0 评论 -
【Kubernetes】认证授权RBAC (一)
kubernetes主要通过APIserver对外提供服务,那么就需要对访问apiserver的用户做认证。如果任何人都能访问apiserver,那么就可以随意在k8s集群部署资源,这是非常危险的,也容易被黑客攻击渗透。所以需要我们对访问的k8s系统apiserver的用户进行认证,确保是合法的、符合要求的用户认证通过后仅代表它是一个被apiserver信任的用户,能访问apierver,但是用户是否拥有删除资源的权限,需要进行授权操作,常见的授权方式有rbac授权。原创 2024-01-06 22:08:15 · 1004 阅读 · 0 评论 -
【Kubernetes】配置管理中心Secret
上面我们学习的Configmap一般是用来存放明文数据的,如配置文件,对于一些敏感数据,如密码、私钥等数据时,要用secret类型。原创 2024-01-02 19:31:11 · 920 阅读 · 0 评论 -
【Kubernetes】配置管理中心Configmap
Configmap是k8s中的资源对象,用于保存非机密性的配置的,数据可以用key/value键值对的形式保存,也可通过文件的形式保存。原创 2024-01-02 18:20:25 · 1144 阅读 · 0 评论 -
【Kubernetes】控制器Daemonset
DaemonSet控制器能够确保k8s集群所有的节点都运行一个相同的pod副本当向k8s集群中增加node节点时,这个node节点也会自动创建一个pod副本当node节点从集群移除,这些pod也会自动删除;删除Daemonset也会删除它们创建的pod。FIELDS:apiVersion <string> # 当前资源使用的api版本,跟VERSION: apps/v1保持一致kind <string> # 资源类型,跟KIND: DaemonSet保持一致。原创 2023-12-31 02:23:40 · 883 阅读 · 0 评论 -
【Kubernetes】控制器Statefulset
FIELDS:apiVersion < string > # 定义资源需要使用的api版本 kind < string > # 定义资源类型 metadata < Object > # 定义元数据 spec < Object > # 定义容器相关的信息FIELDS:podManagementPolicy # POD管理策略replicas # 副本数revisionHistoryLimit # 保留的历史版本。原创 2023-12-24 23:20:23 · 1362 阅读 · 0 评论 -
【Kubernetes】存储类StorageClass
之前介绍的PV和PVC模式都是需要先创建好PV,然后定义好PVC和pv进行一对一的Bond,但是如果PVC请求成千上万,那么就需要创建成千上万的PV,对于运维人员来说维护成本很高,Kubernetes提供一种自动创建PV的机制,叫,它的作用就是创建PV的模板。k8s集群管理员通过创建storageclass可以动态生成一个存储卷pv供k8s pvc使用。每个StorageClass都包含字段provisioner,parameters和reclaimPolicy。原创 2023-12-12 00:11:30 · 2084 阅读 · 0 评论 -
【Kubernetes】持久化存储emptyDir/hostPath/nfs/PVC
PersistentVolume(PV)是群集中的一块存储,由管理员配置或使用存储类动态配置。它是集群中的资源,就像pod是k8s集群资源一样。PV是容量插件,如Volumes,其生命周期独立于使用PV的任何单个pod。PersistentVolumeClaim(PVC)是一个持久化存储卷,我们在创建pod时可以定义这个类型的存储卷。它类似于一个pod。Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。原创 2023-12-10 23:13:24 · 974 阅读 · 0 评论 -
【Kubernetes】四层代理Service
service是一个固定接入层,客户端可以通过访问service的ip和端口访问到service关联的后端pod。这个service工作依赖于在kubernetes集群之上部署的一个附件,就是kubernetes的dns服务(不同kubernetes版本的dns默认使用的也是不一样的,1.11之前的版本使用的是kubeDNs,较新的版本使用的是coredns)原创 2023-12-10 14:01:24 · 967 阅读 · 0 评论 -
【Kubernetes】kubeadm安装k8s1.25.0高可用集群
是否启用IPIP模式。把一个IP数据包又套在一个IP包里,即把IP层封装到IP层的一个 tunnel,它的作用其实基本上就相当于一个基于IP层的网桥,一般来说,普通的网桥是基于mac层的,根本不需要IP,而这个ipip则是通过两端的路由做一个tunnel,把两个本来不通的网络通过点对点连接起来;:获取Node IP地址的方式,默认使用第1个网络接口的IP地址,对于安装了多块网卡的Node,可以使用正则表达式选择正确的网卡,例如"interface=eth.*"表示选择名称以eth开头的网卡的IP地址。原创 2023-12-06 13:46:01 · 1586 阅读 · 0 评论 -
【Kubernetes】可视化UI界面Dashboard
创建credentials需要使用上面的kubernetes-dashboard-token-dxqqq对应的token信息。切换context的current-context是dashboard-admin@kubernetes。找到带有token的kubernetes-dashboard-token-dxqqq。记住token后面的值,把下面的token值复制到浏览器token登陆处即可登陆。将课件中的镜像上传到工作节点,我的工作节点是node01和node02。原创 2023-12-05 12:46:50 · 1555 阅读 · 0 评论 -
k8s部署Jenkins
1. 容器跑起来之后,jenkins目录是/var/jenkins_home 2. 存储卷用的是hostPath,这里面我们指定pod调度到master 3. 在master上创建目录:`mkdir /data_jenkins` 创建名称空间:`kubectl create ns jenkins` 4. jenkins在容器中的uid是1000,赋予其宿主机上目录的权限:chown -R 1000:1000 /data_jenkins 5. `ll / |grep jenkin原创 2023-02-03 11:23:46 · 305 阅读 · 0 评论 -
K8S_pod状态-策略-启动-多容器-类型
多msater的k8s集群控制器pod启动流程pod调度策略命令 kubectl describe pod k8s-nginx-6d779d947c-vm5nwkubectl execkubectl scale原创 2022-04-13 03:21:57 · 2113 阅读 · 0 评论 -
K8S_compose-组件-环境部署
容器运行时:docker、containerd、rkt、coreOSoci容器规范之前学习的容器编排工具:compose—》使用prometheus去监控容器—》prometheus+cadvisor+rediscompose在启动容器使用yml文件(docker-compose.yml)—》ansible里的playbook。概念Kubernetes,也称为K8s,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。它将组成应用程序的容器分组成逻辑单元,以便于管理和发现。 Kuberne原创 2022-04-13 03:11:35 · 2935 阅读 · 0 评论 -
k8s部署mysql
k8s里启动mysql,单节点的mysql1.在master节点上创建mysql的pod,副本数量1个2.创建服务,发布mysql3.访问测试,随便访问k8s集群里的任何一台宿主机都可以访问到暴露的MySQL服务1.在master节点上创建mysql的pod,副本数量1个[root@master mysql-yml]# systemctl restart docker.service[root@master mysql-yml]# systemctl restart kubelet.service原创 2022-05-18 10:24:05 · 459 阅读 · 0 评论