首页 > TAG信息列表 > Kubelet
K8s集群版本升级
升级管理节点: 1、查找最新版本号 yum list --showduplicates kubeadm 2、升级kubeadm yum install -y kubeadm-1.23.0-0 3、驱逐node上的pod,且不可调度 kubectl drain master.lab.example.com --ignore-daemonsets 4、检查集群是否可以升级,并获取可以升级的版本 kubeadm upgradekubernetes之镜像拉取策略;
各工作节点负责运行Pod对象,而Pod的核心功能用于运行容器,因此工作节点上必须配置容器引擎,如Dokcer、Containerd等,启动容器时,容器引擎将首先于本地查找指定的镜像文件,不存在的镜像则需要从指定的镜像仓库(Registry)下载至本地; kubernetes支持用户自定义镜像文件的获取方式策略,例kubelet 配置文件设置pod数量
查看kubelet进程 修改配置文件,添加 --max-pods=10 [root@node1 ~]# vim /lib/systemd/system/kubelet.service.d/10-kubeadm.conf # Note: This dropin only works with kubeadm and kubelet v1.11+ [Service] Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubek8s 1.2之k8s安装和搭建集群
1.实验,一台master主机和两台work主机搭建k8s集群 三台机器都需要开启虚拟化,master主机的内存和cpu数多点 master至少2核数,node节点至少1核数 以下操作是三台机器都需要操作相同步骤 分别在三台服务器 ssh-keygen ssh-copy-id work1 ssh-copy-id master 去/root/.ssh目录下有Kubernetes节点资源耗尽,导致Nodes节点状态NotReady
今天发现私有云上的Kubernetes cluster中的一个node似乎不工作了,连带的的应用也挂掉了,并且长时间没有恢复。在kubernetes上创建POD时,有个节点一直不能分配到POD,并且该节点上有些pod的状态为Pending。 首先,我查看集群中的所有Pods状态,发现node1和node3上的Pods均正常(runnikubernetes认证授权机制
kubernetes认证授权机制 Kubernetes过一系列机制来实现集群的安全机制,包括API Server的认证、授权、准入控制机制等。集群的安全性必须考虑以下的几个目标: 保证容器与其所在宿主机的隔离; 限制容器给基础设施及其他容器带来消极影响的能力; 最小权限原则,合理限制所记一次k8s问题处理 => 6443端口没有监听 => 证书过期处理
原始的问题是这样: The connection to the server 192.168.122.200:6443 was refused - did you specify the right host or port? lsof -i :6443 端口没有监听 master 的kubelet.service 是active的,docker容器api_server是down的 node的 kubelet.service 是 dead, docker容器二、K8s集群安装
1)kubeadm kubeadm是官方社区推出的一个用于快速部署kuberneters集群的工具。这个工具能通过两条指令完成一个kuberneters集群的部署 创建一个master节点 $ kuberneters init 将一个node节点加入到当前集群中 $ kubeadm join <Master节点的IP和端口> 2)前置要求 一台或多台机器,Anolis8使用kubeadm安装Kubernetes
一、环境准备 关闭防火墙、SELinux和交换分区 systemctl disable --now firewalld sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config swapoff -a 配置软件包仓库 # Docker 软件仓库 cat > /etc/yum.repos.d/docker-ce.repo << EOF [docker-ce-stable] name=DoCRI设计与工作原理
01-CRI 0.1. CRI 0.2. CRI设计与工作原理 0.2.1. RuntimeService 0.2.1.1. 容器声明周期的实现 0.2.1.2. 实现exec和logs接口 0.2.2. ImageService 0.3. 总结 0.1. CRI 在完成调度之后,kubernetes就需要负责将这个调度完成的Pod,在宿主机上创建出来,并把它所定义的各个容k8s监控集群资源利用率
Metrics Server 部署 先拉取yaml文件 wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml 修改yaml文件 containers: - name: metrics-server image: yanxinjiang/metrics-server:v0.3.7 #修改成国内镜像 imagePullPolicy:修改kubelet工作路径
1、修改配置文件/etc/default/kubelet (默认不存在该文件,需要新增创建) KUBELET_EXTRA_ARGS=--root-dir=/mnt/data/kubelet 2、重启kubelet service sudo systemctl restart kubelet 3、确认修改生效 ps -aux|grep kubelet 注:看到 “--root-dir=/mnt/data/kubelet”, 说明raspberrypi系统在加入k8s作为node节点时遇到的问题
新买的树莓派4b到货后就迫不及待的烧录上raspberrypi系统,将新派加入我的k8s集群,期间遇到了点小挫折,好歹也一个一个解决了; 一、kubelet版本不对导致无法加入k8s集群 在执行kubeadm join时,提示无法连接127.0.0.1:10248;去master节点上看了下这个端口对应的服k8s 生存探测就绪探测
k8s 生存探测就绪探测 1.1 探针处理程序和结果 探针是由kubelet对容器执行的定期诊断,要执行诊断,kubelet调用由容器实现的Handler,有三种类型的处理程序 ExecAction: 在容器内部执行指定命令,如果命令退出时返回码为0,则认为诊断成功 TCPSocketAction:对指定端口上的容器的Ip地址进行CentOS7 单机版使用kubeadm安装K8S
准备一台干干净净的服务器 准备环境 ----------------------------------------------------------------------------------------- 为了安全,先把SSH端口默认的22端口修改了 vi /etc/ssh/sshd_config 修改Port,在服务器的安全策略组中把修改后的端口加进去 重启SSHD服务 servic二进制安装K8S kubctl get node 返回No resources found
问题描述:node节点kubelet服务启动成功后,在集群master节点执行命令具体结果如下截图 原因:kubelet设置的cgroups和docker的不一致导致 修改docker的cgroup,在daemon.json文件中增加以下内容: vim /etc/docker/daemon.json "exec-opts": ["native.cgroupdriver=systemd"] 保存退Prometheus 四种metric类型
Prometheus的4种metrics(指标)类型: Counter Gauge Histogram Summary 四种指标类型的数据对象都是数字,如果要监控文本类的信息只能通过指标名称或者 label 来呈现,在 zabbix 一类的监控中指标类型本身支持 Log 和文本,当然在这里我们不是要讨论 Prometheus 的局限性,而是要看一看 ProKubernetes kubeadm部署k8s集群
kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理工具,可用于实现集群的部署、升级、降级及拆除。kubeadm部署Kubernetesk8s 启动kubelet时报错
运行journalctl -xefu kubelet 命令查看systemd日志 failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs" 错误原因:docker和k8s使用的cgroup不一致导致 解决办法: 修改二K8S
4.2 K8S超级完整安装配置 前言: 采坑 k8s有3种安装方式,如下所示: minikube:这是一个k8s集群模拟器,只有一个节点的集群,只为了测试使用,master和node都在一台机器上 直接使用带有容器功能的云平台安装:这个可以采用阿里云或者腾讯云服务器带有容器功能的,这个的优点就是可视化搭建,创建一个 k8s pod,背后发生了什么
本例使用 kubectl 创建、运行了一个 nginx pod: kubectl run nginx --image=nginx --restart=Never 通过 tcpdump 抓包、分析,得到的交互流程如下图所示: sequenceDiagram autonumber participant C as kubectl participant AS as kube-apiserver participant S as【转载】解决 failed to set bridge addr: “cni0“ already has an IP address different from 10.244.2.1/24
failed to set bridge addr: "cni0" already has an IP address different from 10.244.2.1/24 的解决方式 启动pod时,查看pod一直报如下的错误: Warning FailedCreatePodSandBox 3m18s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set每日复盘-kubelet 10255端口漏洞
工作 处理kubelet 10255漏洞 kubelet默认会开放10255只读端口,例如:ip:10255/pods,用于查询解点pods信息,但这些信息中会包含环境变量,健康探针,启动钩子等等,这些很多都是敏感信息,所以不能对外暴露该只读接口。 修复方案 1 参考官网 kubelet增加启动参数:--read-only-port=0 2 每台节资源预留 vs 驱逐 vs OOM
转载:https://www.kancloud.cn/pshizhsysu/kubernetes/2206258 Allocatable 资源预留 - 不设cgroup 资源预留 - 设置对应的cgroup 配置建议 总结 附录 参考 一 资源预留简介 kubelet中有几个参数,通过这几个参数可以为系统进程预留资源,不至于pod把计算资源耗尽,而导致系统操作都kubelet监控静态Pod
获取静态Pod路径 静态Pod路径默认是空。 当静态Pod路径是空时,路径会被设置成/etc/kubernetes/manifests。 检测周期 /var/lib/kubelet/config.yaml配置了FileCheckFrequency值是20s即List的间隔周期是20s。 List和Watch流程 doWatch函数的重试回退流程 主流程 pkg/kubelet/conf