注意!我们并不需要去过多学习Containerd,它只坐位k8s的容器运行时,它是由k8s来管理的,我们只需要管理k8s就可以了Containerd有个命名空间的概念(k8s默认的命名空间是k8s.io) 我建议单独一台机器使用docker,用docker来管理下载镜像上传镜像,containerd只负责导入到k8.io命名空间里面给k8s使用就可以了,并不需要使用containerd来做过多操
Kubelet配置调优:如何快速解决K8s节点"Too many pods"问题环境为 ARM架构 + KylinV10系统 + Kubernetes 1.30.1当创建Pod的时候,发现大量的Pod无法在Node上运行,出现Pending状态配置调整步骤优化test nginx-1-5759675f65-z4jg8 0/1 Pen
Containerd配置容器镜像仓库(公共加速镜像仓库和私有仓库)最近入手了一台arm架构机器,装了KylinV10系统,安装了单节点的Kubernetes用的版本是1.30.1,用的容器运行时是Containerd,因为和Docker操作略有不同,但是和Docker的仓库地址是通用的,也就是它可以用Docker搭建的Harbor仓库的镜像,也可以用Docker的镜像配置他的加速仓库一、公共镜像加
GitHub Action自动化同步Docker Hub镜像至阿里云(ARM/x86全适配利用GitHub+阿里云解决Docker镜像无法拉取要求:首先要有GitHub账号和阿里云账号(不需要去购买任何服务)GitHub登不上去的话使用下面这个地址(国内镜像)kkgithub.com使用大神开源的项目https://github.com/tech-shrimp/docker_image_pushe
联通云7CKP平台CSK(K8s)创建Deployment 0/1失败解决方法因为之前部署的工具里面网络排查命令不全,自己下载了netshoot镜像,然后自己添加了一些网络排查的工具写了deploymentyaml文件guoguo@9-会服yaml文件$ cat netshoot.yaml apiVersion: apps/v1 kind: Deployment metadata: name
备份etcd1.备份创建备份目录 mkdir -p /data/etcd_backup/backup 备份etcd数据 ETCDCTL_API=3 etcdctl snapshot save /data/etcd_backup/backup/snap-etcd-backup-$(date +%F-%H-%M-%S).db \ --endpoints=https://192.168.1.64:2
k8s常用的网络模型Calicocalico Pod 跨界点通信 在两个node下 分别启动两个不同的pod两个不同节点的Pod报文是通过IPIP协议,IPIP协议:把pod 的ip信息封装到了node的ip报文里面,到达目标node,然后解包最终到达目标pod比如node1 ip为10.10.10.1 node1上的pod1 ip为11.11.11.1node2 ip为10.10.10.2
Prometheus和Grafana持久化存储之前部署的数据是在临时的存储目录里面,当pod重启或者被删除后,数据也就没了 对于Prometheus监控来说根据需求保存1周或者1个月,但是一定要持久化存储一、配置Prometheus数据持久化查看之前创建的nfs动态存储root@guoguo-M5-Pro:~# kubectl get storageclasses.storage.k8s.io N
因为我们是二进制安装的coreDNS需要调整一下1.查看coreDNS暴漏的prometheus端口号/metrics[root@k8s-master1 data]# kubectl edit pod -n kube-system node-local-dns-4jck7 #随便找个dns的pod进去看下 搜索关键字 metrics ...... ...... ports: -
使用Prometheus监控二进制部署的etcd一、配置监控etcdetcd和其他的不太一样,他是https的 需要证书 略微麻烦一些我的etcd集群是单独部署在三台服务器上的172.17.20.104 etcd1.guoguo.com 172.17.20.105 etcd2.guoguo.com 172.17.20.106 etcd3.guoguo.com我们需要使用自签证书来访问e
使用prometheus来监控ingress-nginxingress-nginx配置了metrics通过标签去查看ingress的podroot@guoguo-M5-Pro:/apps/k8s/prometheus# kubectl get pods -n kube-system -l app=ingress-nginx -owide NAME
因为我们是二进制安装的k8s需要手动配置scheduler和controller-manager直接edit修改 [root@k8s-master1 ~]# kubectl -n monitoring edit servicemonitors.monitoring.coreos.com kube-controller-manager ...... ...... - action: drop
新创建的prometheus 都会遇到一个权限的报错现在promehtues ui 页面是看不到 监控项的查看报错root@guoguo-M5-Pro:/apps/k8s/prometheus/servicemonitor# kubectl -n monitoring logs prometheus-k8s-0 -c prometheus ...... ...... level=error ts
Kubernetes收集日志方案使用Volume挂载通过配置Pod的YAML文件,将宿主机上的目录挂载到Pod中,使Pod中的日志直接写入到宿主机的目录中,从而实现日志的本地保存。这种方法通常使用HostPath或PersistentVolume(PV)和PersistentVolumeClaim(PVC)来实现。Volume挂载方案如果使用Volume挂载方案将日志写入宿主机目录,那么即使Pod
RBAC角色访问控制策略在k8s上控制访问权限,Role-based access control (RBAC) - 基于角色(Role)的访问控制,(RBAC)是一种基于组织中用户的角色来调节控制对 计算机或网络资源的访问的方法。RBAC里面的几种资源关系图,下面将用下面的资源来演示生产中经典的RBAC应用|--- Role --- RoleBinding #只在指
在k8s上跑个一次性任务或者定时任务不知道怎么写yaml 查看帮助root@guoguo-M5-Pro:~# kubectl create job -h Create a job with the specified name. Examples: # Create a job kubectl create job my-job --image=busybox #最简单的例子 没有写
一、netshoot介绍开源的容器工具箱 https://github.com/nicolaka/netshoot ,它是一个Docker + Kubernetes网络故障排除瑞士军刀容器一点都不为过,我们可以使用这个工具或者参考这个开源项目打造属于自己的容器yaml文件格式apiVersion: apps/v1 kind: Deployment metadata: labels:
root@guoguo-M5-Pro:~# kubectl explain pod.spec.containers.volumeMounts.subPath KIND: Pod VERSION: v1 FIELD: subPath <string> DESCRIPTION: Path within the volume from which the co
安装kubectl命令工具macOSHomebrew安装命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" Homebrew卸载命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw
使用Prometheus监控二进制部署的etcdetcd和其他的不太一样,他是https的 需要证书 略微麻烦一些我的etcd集群是单独部署在三台服务器上的172.17.20.104 etcd1.guoguo.com 172.17.20.105 etcd2.guoguo.com 172.17.20.106 etcd3.guoguo.com我们需要使用自签证书来访问etcd的metric
生产上如果对k8s服务日志没有那么看重,或者小集群没有必要使用EFK这类方式收集日志,可以直接将日志存到宿主主机目录下,通过配置Pod的YAML文件,将宿主机上的目录挂载到Pod中,使Pod中的日志直接写入到宿主机的目录中,从而实现日志的本地保存。这种方法通常使用HostPath或PersistentVolume(PV)和PersistentVolumeClaim(PVC)来实现。Volume挂载
Prometheus由多个组件组成, 最主要的三个组件Prometheus server(采集存储)/Alert manager(报警)/Grafana(展示) Prometheus server: TSDBTSDB:需要后端存储TSDB(时序数据库) 时序数据库,这种数据库类型叫时序数据库,横轴数轴。  
这里拿mysql举例在harbor主机下载个mysql镜像然后上传到harbor仓库。然后创建svc deploymentroot@k8s-master1:/apps/mysql# cat svc-deployument-mysql.yaml apiVersion: v1 kind: Service metadata: name: mysql-svc spec: type: Cluster
监控告警平台Zabbix、PrometheusCI/CD平台Jenkins+gitlab+sq+啊人工CD+tekton自动化运维平台监控告警是个非常重要的平台Prometheusprometheus有很多组件组成上图中间部分Prometheus server 就是我们所安装运行的Prometheus服务,这个Prometheus本身需要后端的存储:TSDBPrometheus本身是一种数据库,
ingress文档https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/service-resources/ingress-v1/我们之前从k8s集群外部访问Pod,通过Service的类型NodePort的ip加端口号访问的就是我们装了kube-proxy的组件的节点上,都会在node节点上有个pod端口号,通过node节点加pod端
Helm基础应用helm是个包管理工具,类似Linux操作系统。Ubuntu的apt或者centos yum的包管理工具,helm就是u我们给k8s集群加了一个对应的仓库,然后用helm命令行装软件包,通过helm命令装,他会直接装在你的k8s集群里面去,helm属于一个k8s集群的包管理工具15年年底发布的,目前三个三个版本v1 v2 v3 ,v1 和v2 已经很少用了,直接用v3helm概念:
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号