准备k8s集群镜像一、在安装kubernetes集群之前,必须要提前准备好集群需要的镜像,所需平面镜像可以通过下面命令查看kubeadmconfigimageslist二、由于网络原因registry.k8s.io这个镜像仓库源访问不了,就需要变通一下切换镜像仓库地址为阿里云的地址,并打上镜像标签kubeadminit|Kubernetes三、更换镜像方法步骤变更为阿里镜像地址:registry.cn-hangzhou.aliyuncs.com/google_containers把所需要的镜像定义为一个数组从数组中循环去取对应的镜像名,拼接上阿里镜像地址,然后进行下载下载完成后,打上标签然后删
目录:(1)k8s指南-概述(2)k8s指南-架构(3)k8s指南-工作负载(1)(4)k8s指南-工作负载(2)(5)k8s指南-工作负载(3)(6)k8s指南-工作负载(4)(7)k8s指南-Service(8)k8s指南-Ingress(9)k8s指南-DNS与服务发现(10)K8S指南-平滑升级与自动扩缩容在k8s集群中,虽然每个pod都会被分配一个单独的ip地址,但由于pod是有生命周期的,一旦pod被销毁,其对应的ip地址就会消失。如果在某地方需要用到这个ip,那就会出问题。Service就是用来解决这个问题的。在k8s中,Service是一种抽象概念,它定义了一组逻辑pod和访问
我们不应该期望k8sPod是健壮的,而是要假设Pod中的容器很可能因为各种原因发生故障而死掉。Deployment等Controller会通过动态的创建和销毁Pod来保证应用整体的健壮性。换句话说,Pod是脆弱的,但应用是健壮的。 每个Pod都有自己的IP地址,当Controller用新的Pod替代发生故障的Pod时,新Pod会分配新的IP地址,这就产生了一个问题:如果一组Pod对外提供服务,它们的IP很有可能发生变化,那么客户端如何找到并访问这个服务呢?答案就是Service。一、创建ServiceK8sService从逻辑上代表一组Pod,具体是哪些Pod则是由lab
k8s1.26+containerd安装1.机器iphostname192.168.137.133k8smaster192.168.137.132k8snode1192.168.137.134k8snode22.下载所需二进制包#1.下载kubernetes1.26.+的二进制包#github二进制包下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.mdcurl-L-okubernetes-server-linux-amd64.tar.gzhttps://dl.k8s.io/v1
天行健,君子以自强不息;地势坤,君子以厚德载物。每个人都有惰性,但不断学习是好好生活的根本,共勉!文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。文章目录Dashboard配置1.安装dashboard2.dashboard端口设置及获取2.1type类型2.2获取端口号3.创建dashboard访问账号4.获取dashboard的访问token5.访问dashboard5.1端口查看5.2ip查看5.3访问地址k8s搭建文章:k8s搭建(一、k8s环境配置与docker安装)k8s搭建(二、k8s组件安装)k8s搭建(三、k8s从节点创建)k8s搭建(四、k8s集群创建)k
文章目录引言什么是NodeSelector?NodeSelector的基本结构NodeSelector的使用方法1.定义NodeSelector2.应用NodeSelector3.验证NodeSelector实际应用示例结论引言Kubernetes(K8s)是一款用于容器编排的开源平台,其强大的调度系统能够智能地将容器化应用程序部署到集群中的节点。NodeSelector是Kubernetes调度器的一个重要特性,它允许开发者通过标签(Labels)来指定Pod应该调度到哪些节点上。本文将深入探讨NodeSelector的概念、用法,并通过详细的示例演示如何在实际场景中应用NodeSelect
要完全无残留地卸载Kubernetes(k8s)集群从Ubuntu或类似基于Debian的系统中,可以遵循以下步骤。请注意,在操作前请确保备份所有重要数据,并仔细检查命令以适应您当前的环境。1、停止并清理所有运行中的Kubernetes组件和服务:使用kubeadm工具来清理集群:sudokubeadmreset--force2、删除所有Kubernetes相关的systemd单元文件:sudorm-rf/etc/systemd/system/kubelet.service.dsudosystemctldaemon-reload3、停止并移除容器运行时(如Docker或containerd)相
目录PodKubernetes网络模型同一Pod上的容器之间进行通信同一Node上的不同Pod之间进行通信不同Node上的Pod之间进行通信Service参考Pod首先来回顾一下Pod:Pod是用于构建应用程序的最小可部署对象。单个Pod代表集群中正在运行的工作负载,并封装一个或多个Docker容器、任何所需的存储以及唯一的IP地址。Kubernetes网络模型集群中每一个Pod都会获得自己的、独一无二的IP地址。一个Pod里的一组容器共享相同的IP地址。Kubernetes强制要求所有网络设施都满足以下基本要求(从而排除了有意隔离网络的策略):Pod能够与所有其他节点上的Pod通信,且不需要
前言随着云原生和微服务架构的快速发展,Kubernetes和Docker已经成为了两个重要的技术。但是有小伙伴通常对这两个技术的关系产生疑惑:既然有了docker,为什么又出来一个k8s?它俩之间是竞品的关系吗?傻傻分不清。学习一门技术我们要学会类比,这里我给你们打个比方:将Kubernetes与Docker的关系类比为SpringMVC与Servlet或MyBatis与JDBC的关系。Docker像是Servlet或JDBC,提供了基础的容器化技术。而Kubernetes类似于SpringMVC或MyBatis,相当于框架,它在基础技术之上提供了更丰富的功能,如自动化部署、扩缩容、服务发现与
pod运行一段时间后,内存持续增长,甚至oom的情况.动机容器化过程中,我们经常会发现kubernetes集群内pod的内存使用率会不停持续增长,加多少内存吃多少内存,如果对cgroup内存的构成不是很清楚的情况下,单纯看监控看不出什么问题。经过一番查阅,目前总结出大致有2种导致这种情况的场景。内存泄露io缓存案例分析我们先从内存泄露分析,刚好手头有个pod也是这种情况。内存泄露进入对应的pod内部。我们先看看它用了多少内存,prometheus也是取这个值做为容器的内存使用率的。#cat/sys/fs/cgroup/memory/memory.usage_in_bytes4192538624