kubernetes
文章平均质量分 59
她的名字叫李承利
天道酬勤
展开
-
Ingress暴露服务的方式
同样用deployment模式部署ingres-controller,并创建对应的服务 ,但是type为NodePort,这样,ingress就会暴露在集群节点ip的特定端口上。由于nodeport暴露的端口是随机器口,一般会在前面再搭建一套负载均衡器来转发请求。用DaemonSet结合nodeselector来部署ingress-controller到特定的node上,然后使用HostNetwork直接把该pod与宿主机node的网络打通,直接使用宿主机的80/433端口就能访问服务。原创 2022-11-22 11:56:08 · 1397 阅读 · 0 评论 -
部署k8s集群:
为此,Mirantis和Docker联合创建了cri-dockerd项目,用于为Docker Engine提供一个能够支持到CRI规范的垫片,从而能够让Kubernetes基于CRI控制Docker。7. 配置ipvs功能:在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块。只在master1上执行,因为master1当前是集群的leader。原创 2022-11-21 17:11:46 · 1421 阅读 · 0 评论 -
Prometheus邮件告警
【代码】Prometheus邮件告警。原创 2022-11-20 12:19:53 · 733 阅读 · 0 评论 -
可视化图形工具Grafana
选择prometheus资源当如Dashboard。6. 访问Grafana,原创 2022-11-19 17:38:51 · 247 阅读 · 0 评论 -
Prometheus监控案例
【代码】Prometheus监控案例。原创 2022-11-19 16:51:16 · 491 阅读 · 0 评论 -
部署Prometheus
【代码】部署Prometheus。原创 2022-11-19 16:04:59 · 249 阅读 · 1 评论 -
部署Dashboard
【代码】部署Dashboard。原创 2022-11-19 11:20:09 · 213 阅读 · 0 评论 -
k8s-pod控制器介绍
比如有一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。其实HPA与之前的Deployment—样,也属于一种Kubernetes资源对象,它通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性地调整目标Pod的副本数,这是HPA的实现原理。原创 2022-10-08 15:00:08 · 380 阅读 · 0 评论 -
k8s实战入门
在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。它的作用就是在资源上添加标识,用来对它们进行区分和选择。2>. 创建并运行pod:kubernetes中没有提供单独运行pod的命令,都是通过pod控制器来实现的。一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上去。原创 2022-10-06 20:53:37 · 556 阅读 · 0 评论 -
pod配置
容器中的程序要运行,肯定是要占用一定资源的,比如cpu和内存等,如果不对某个客器的资源做限制,那么它就可能纯掉大量资源,导致其它容器无法运行。针对这种情况,kubernetes提供了对内存和cpu的资源进行配额的机制,这种机制主要通过resources选项实现,他有两个子选项∶。这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是Flannel。2>. 在上面的属性中,spec是接下来研究的重点,它的常见子属性有∶。原创 2022-10-06 18:08:42 · 1618 阅读 · 0 评论 -
k8s-资源管理
kubectl的运行是需要进行配置的,它的配置文件是"$HOME/.kube",如果想要在Worker节点运行此命令,需要将Master上的".kube"文件复制到Worker节点上,即在Master节点上执行下面操作。总结:命令式对象配置的方式造作资源,可以简单地认为:命令+yaml配置文件(配置文件中是命令需要的各种参数)。创建/更新资源:使用声明式对象配置 kubectl apply -f xxx.yaml。4. 声明式对象配置:声明式对象配置跟命令式对象配置很相似,但是他只有一个命令apply。原创 2022-10-05 20:09:42 · 1562 阅读 · 0 评论 -
k8s-docker方式创建集群
注意:加入集群是需要添加: " --cri-socket unix:///var/run/cri-dockerd.sock "。以下操作不明确声明,在三个节点上都要执行。4. 添加Worker节点,6. 验证集群是否部署成功,也可以只在Matser执行。5. 安装网络插件,3. 集群初始化,只在Master执行。只在Worker执行。只在Matser执行。原创 2022-10-05 15:30:02 · 452 阅读 · 0 评论 -
k8s-containerd方式创建集群
7>. CNI插件问题:默认情况下containerd也会有一个cni文件,但是我们已经安装Flannel了,我们需要使用Flannel的cni件,需要将containerd里面的cni 配置文件进行注释,否则2个配置会产生冲突,因为如果这个目录中有多个cni 配置文件,kubelet 将会使用接文件名的字典顺序排列的第一个作为配置文件,所以前而默认选择使用的是containerd-net这个插件。3>. Master节点执行以下命令,这些命令在初始化时都会有提示,直接复制即可。原创 2022-10-04 21:41:44 · 582 阅读 · 0 评论 -
k8s基础环境部署
6. 配置ipvs功能:在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块。9. 配置kubelet的cgroup:为了实现docker使用的cgroupdriver与kubelet使用cgroup的一致性,建议使用以下文件内容。4>. 关闭三个节点的防火墙并且禁用selinux。2>. 配置三个节点的hosts解析。3>. 配置三个节点的时间同步。原创 2022-10-04 20:28:09 · 1269 阅读 · 0 评论 -
Containerd容器数据持久化存储,命名空间共享,与docker的集成
2. 与其它Containerd容器共享命名空间:由于 Containerd 也有 namespaces 的概念,对于上层编排系统的支持,ctr 客户端 主要区分了 3 个命名空间分别是。通过docker创建容器并运行容器后,通过" ctr ns -f "会发现新增了一个docker的命名空间。k8s.io(k8s命名空间)、moby(docker命名空间)和default(默认的命名空间)原创 2022-09-17 16:49:33 · 594 阅读 · 0 评论 -
Containerd 的镜像和容器管理
注意:直接导入镜像可能会出现类似"ctr: content digest sha256:xxxxxxx not found"的错误,因此在拉取和导出镜像时,都要指定" --all-platforms "参数再导入镜像。5. 启动静态容器,启动task,即表时在容器中运行了进程,即为动态容器。3. 查看任务列表:当容器运行起来的时候才会产生任务。原创 2022-09-17 15:55:27 · 3893 阅读 · 0 评论 -
CentOS二进制安装Containerd
3. 运行命令并验证:containerd 相比于docker,多了namespace概念,每个image和container都会在各自的namespaq下可见,目前k8s会使用k8s.io作为命名空间∶ctr ns Is 可以查看命名空间。1. 去网址上下载runc软件包:https://github.com/opencontainers/runc/releases。1>. 第一种是containerd-xxx,这种包用于单机测试没问题,不包runC,需要提前安装。原创 2022-09-17 12:10:32 · 1151 阅读 · 0 评论