云原生个锤子🔨
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链
  •   
  •   

动态扩容pvc

现象 镜像可以pull,但是push的时候出现500的异常: unexpected HTTP status: 500 Internal Server Error, progress=null 查看registry后端报错: time="2020-10-12T19:31:48+08:00" level=error msg="response completed wi

2020-12-27
K8S
K8S

聊聊 resolv.conf 中 search 和 ndots 配置

一、背景 Kubernetes 集群中,域名解析离不开 DNS 服务,在 Kubernetes v1.10 以前集群使用 kube-dns dns服务,后来在 Kubernetes v1.10+ 使用 Coredns 做为集群dns服务。 使用 Kubernetes 集群时,会发现 Pod /etc/resolv.conf 配置。具体如下: [root@k8s-10 ~]# docker

2020-12-18
K8S
K8S

k8s集群dns策略

POD里的DNS策略可以对每个pod进行设置,他支持四种策略default,ClusterFirst,ClusterFirstWithHostNet,None,如果dnsPolicy字段未设置,默认策略是"ClusterFirst"。 Default:该配置只能解析注册到互联网上的外部域名,无法解析集群内部域名,表示 Pod 里面的 DNS 配置继承了宿主机上的 DNS 配置。简单来说,就

2020-12-01
K8S
K8S

k8s独立分区测试

测试结论: 集群的etcd和kubelet使用单独分区时,根分区写满,对集群无影响,pod正常创建、删除。 当把/data分区写满时(因docker数据分区在/data分区),pod无法创建,本质还是因为/data/分区没有空间创建容器实例,因kubelet有rootfs容量过低驱逐机制,会导致imageGC/podGC等情况出现。 总结: kubelet因docker工作目录的容量使用过

2020-11-01
K8S
K8S

k8s 集群的容器启动顺序异常解决

一、背景 当服务器重启之后,基础组件coredns的服务还未正常启动,业务服务已经启动完成;此时的业务链接的service解析异常,导致服务启动异常;因此决定容器的启动顺序便极为关键 二、解决方案 在pod服务启动之前,对k8s的 apiserver的service进行curl检测一定次数,若不通则直接停止退出;若curl正常则继续业务启动 实现方法: 1、添加的k8s apiserve

2020-10-29
K8S
K8S

calico ipip&bgp性能测试

测试说明 网络一般情况下主要参考延迟、网络带宽,所以本次测试也主要测试calico不同的网络协议下,带宽和延迟的差异 测试分两阶段进行,分别测试"主机到pod"、"pod到pod"两种网络模型 测试工具选型 延迟与带宽测试:使用qperf进行测试,基于centos:7镜像重新构建qperf测试工具,在集群内部使用deployment部署多副本,使pod分别在多个node上分别,以便于测试

2020-10-01
K8S
K8S

pod容器开启pid限制

cgroup中对pid进行了隔离,通过更改docker/kubelet配置,可以限制pid总数,从而达到限制线程总数的目的。线程数限制与系统中多处配置有关,取最小值,参考stackoverflow上线程数的设置 docker,容器启动时设置 --pids-limit 参数,限制容器级别pid总数 kubelet,开启SupportPodPidsLimit特性,设置–pod-max-pids

2020-09-29
K8S
K8S

ping 127.0.0.1会出现时延很大

问题: 国产化uos操作系统,有时网络ping 127.0.0.1会出现时延很大的情况,时延在毫秒级别,有时甚至在10毫秒级别,经查该问题是现有iptables版本与kube-proxy存在兼容性问题,需要对现有iptables进行降级 降级步骤: 查看现有的iptables版本 root@k8s-10:~# iptables --version iptables v1.8.2 (nf_t

2020-09-01
Linux
Linux

df与du已使用空间不一致的原因及排查

问题发现: linux df -h 显示使用空间已满,用 du -sh 查看哪个文件夹占用空间比较大时显示只使用了26G 差距很大,例如: [root@ls-dj-test-4 /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 308G 308G 20K 100% /data [root@ls-dj-test-

2020-08-29
Linux
Linux

Linux查看Buffer&Cache被哪些进程占用

Buffer和Cache Buffer 是缓冲区,而 Cache 是缓存,两者都是数据在内存中的临时存储。 Buffer 是对磁盘数据的缓存,而 Cache 是文件数据的缓存,它们既会用在读请求中,也会用在写请求中。 磁盘是一个块设备,可以划分为不同的分区;在分区之上再创建文件系统,挂载到某个目录,之后才可以在这个目录中读写文件。 Linux 中“一切皆文件”,平时提到的“文件”

2020-08-23
K8S
K8S

K8S故障排查-Orphaned pod found, but volume paths are still present on disk

一、问题产生 在使用 Kubernetes 时,有时会遇到 Pod 状态一直处理 Terminating。Pod 一直没有正常退出,一般情况会使用命令 kubectl delete pods pod-name --force --grace-period=0 强制删除。 如果按照上面命令强制删除Pod,有一定概率会报 Orphaned pod found - but volume pa

2020-08-01
K8S
K8S

K8S cronjob清理es索引

apiVersion: batch/v1beta1 kind: CronJob metadata: name: delesindexjob spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers:

2020-07-29
K8S
K8S

Squid部署在K8S使用静态IP(静态IP有公网的访问)

前言 Build the image docker build -t docker.XXXX.com:15000/squid:v1.3 . then push to a repository and adjust the image name in squid-deployment.yaml as appropriate. We use a deployment to specify tha

2020-07-01
K8S
K8S

Docker磁盘镜像处理

根据docker官方给出的文档(Remove unused images:删除未使用的镜像): https://docs.docker.com/engine/reference/commandline/image_prune/ API 1.21+要使用此命令,客户端和守护进程API都必须至少是 1.21。 在客户端上使用 docker version 命令检查客户端和守护进程API版本。

2020-06-29
K8S
K8S

CKA真题解析(一)

基本上都是日常工作中经常用到的,但是真正的写写还有点手生。。 1、列出pod并排序 # 题目一般都是按名字排序 $ kubectl get pod --sort-by .metadata.name 2、找出pod中的错误日志 # 要求是把错误内容输出到某个文件中,可以粘贴,也可以直接重定向文件 $ kubectl logs mypod-798fcd9949-lk9rc | grep err

2020-05-03
K8S
K8S

K8S外网:SSH 登录 Node(pod)

在排查 Kubernetes 问题时,通常需要 SSH 登录到具体的 Node 上面查看 kubelet、docker、iptables 等的状态和日志。在使用云平台时,可以给相应的 VM 绑定一个公网 IP;而在物理机部署时,可以通过路由器上的端口映射来访问。但更简单的方法是使用 SSH Pod (不要忘记替换成你自己的 nodeName): # cat ssh.yaml apiVer

2020-05-01
K8S
K8S

K8S核心组件交互原理

API server作为集群的核心,负责各个功能模块之间的通信。集群中各个模块通过API server将信息存入etcd,当需要获取和操作这些数据时,则通过API server提供的REST接口来实现,从而实现各模块之间的信息交互。 常见的一个交互场景是kubelet与API server交互。每个node节点上的kubelet每隔一个时间周期,会调用一次API server的REST

2020-04-29
K8S
K8S

K8S_Port信息

port The port that the service is exposed on the service’s cluster ip (virsual ip). Port is the service port which is accessed by others with cluster ip. 即,这里的port表示:service暴露在cluster ip上的端口,<clu

2020-04-27
K8S
K8S

K8S集群核心组件异常排错

一、按照不同的核心组件异常后的影响和可能原因分析 kube-apiserver 无法启动会导致: 集群不可访问; 已有的 Pod 和服务正常运行(依赖于 Kubernetes API 的除外); etcd 集群异常会导致: kube-apiserver 无法正常读写集群状态,进而导致 Kubernetes API 访问出错; kubelet 无法周期性更新状态;

2020-04-25
K8S
K8S

Etcd v3备份与恢复

ETCD 简介 ETCD 是用于共享配置和服务发现的分布式,一致性的KV存储系统。ETCD是CoreOS公司发起的一个开源项目,授权协议为Apache。 ETCD 使用场景 ETCD 有很多使用场景,包括但不限于: 配置管理 服务注册于发现 选主 应用调度 分布式队列 分布式锁 ETCD 存储 k8s 所有数据信息 ETCD 是k8s集群极为重要的一块服务,存储了

2020-04-22
K8S
K8S ETCD
123456…9

搜索

Hexo Fluid
总访问量 次 总访客数 人
苏ICP备2021054542号