指定pod运行master,指定pod运行节点
kubernetes(k8s)集群超级详细超全安装部署手册
安装及配置 环境准备指定pod运行master:清理旧安装指定pod运行master:确保所有节点上无旧指定POD运行master的Kubernetes安装。主机名与时间同步:配置主机名并确保所有节点时间同步。禁用服务:禁用SELinux和Firewalld指定Pod运行master,关闭swap。网络配置:启用网桥过滤和地址转发。安装Docker:安装Docker并切换至国内镜像源以加速下载。
虚拟机配置:master使用桌面版Ubuntu 06,worker选择live-Server-amd64镜像。推荐硬件配置:master为2核cpu+8G内存,worker为2核CPU+4G内存。网络配置:为4台虚拟机分配IP,如k8s-master:215122,确保root用户权限和网络连通性。
部署metrics服务,用于监控集群性能。创建Dashboard,并通过node指定pod运行master的IP加端口进行访问。生成登录Token,用于访问Dashboard。通过以上步骤,您可以成功部署最新220版本的kubernetes集群。请确保在每个步骤中仔细检查配置和状态,以确保集群的稳定性和可靠性。
编辑`inventory/mycluster/group_vars/all/offline.yml`文件配置安装参数。 最后,执行部署命令,完成K8s集群的安装。至此,Kubernetes集群的部署完成。
云原生K8s集群及常用组件安装指南:基础环境搭建 在mac系统上安装Docker客户端:仅安装Docker客户端,利用minikube的Docker daemon server进行构建。minikube是一个在本地运行Kubernetes集群的工具,它支持多种addon,可以在其readme文档中查看详细信息。
安装dashboard时,推荐使用Kuboard。在K3s安装完成后,可访问Kuboard的控制面板,以进行Kubernetes管理。对于K8s集群的部署,以下为基本步骤: 首先,进行准备工作。确保系统满足最低硬件要求,并更新系统。 添加源,以便从官方仓库获取所需软件包。
(25)笔记:kubeadm搭建多master节点k8s高可用集群(4)
1、在搭建多master节点k8s高可用集群时指定pod运行master,首先需要把master1节点指定pod运行master的证书拷贝到master2和master3上指定pod运行master,具体操作如下:在master2上创建证书存放目录指定pod运行master,然后把master1节点的证书拷贝到master2上;在master3上创建证书存放目录,将master1节点的证书拷贝到master3上。
2、使用kubeadm搭建多master节点k8s高可用集群的关键步骤如下:证书拷贝:在master2和master3上分别创建证书存放目录。将master1节点的证书拷贝到master2和master3上。控制节点加入集群:在master2和master3上执行特定命令,加入到由master1初始化的k8s集群中。
3、参考《 使用Kubeadm搭建Kubernetes(11)集群 》在 master1 搭建一个单master节点的k8s集群。参考《 使用Kubeadm搭建Kubernetes(11)集群 》在 master2 和 master3 安装 docker、kubeadm 、 kubectl、flannel ,但不要执行 kubeadm init 。
4、两台master节点的配置均相同,配置中声明指定pod运行master了后端代理的两个master节点服务器,指定了haproxy运行的端口为16443等,因此16443端口为集群的入口 3 启动和检查 两台master都启动 检查端口 Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。
5、通过kubeadm搭建单master节点k8s集群的关键步骤包括:安装Docker:在所有节点上安装dockerce。确保Docker运行正常,状态为running。安装k8s组件:在master和node上安装kubeadm、kubelet、kubectl组件。这些组件是安装和配置k8s集群所必需的。导入k8s Docker镜像:在所有节点上离线导入k8s所需的Docker镜像。
6、kubernetes(k8s)提供二进制方式的高可用安装部署,兼容IPv4和IPv6双栈。配置IPv6以实现公网访问。若无IPv6环境或无意使用,只需不为服务器配置IPv6地址,不影响后续集群运行,保留IPv6支持以备扩展。强烈建议查看GitHub文档,以获取最新更新和解决方案。GitHub会及时更新文档,确保信息的准确性和时效性。
如何指定pod的运行节点?
1、方式二:通过指定NodeName。在Pod中配置nodeName字段,直接指派对应节点。示例如下:查看node名称。列出节点名称,例如k8s-master。在Pod中使用nodeName指定此节点。通过kubectl APPly创建Pod后,检查Pod是否调度至指定节点。使用nodeName选择节点方式存在局限性。方式三:亲和性和反亲和性。
2、假设以下场景:有三个Node,分别为1010109,创建Deployments来部署Tomcat应用,指定在107节点上创建Pod。解决方案 nodeName Pod.spec.nodeName将Pod直接调度到指定的Node节点上,会跳过Scheduler的调度策略,该匹配规则是强制匹配。
3、使用宿主机命令可以查看Pod内部的路由分配情况。通过路由信息,可以确定Pod所在的节点及其网关。Pod的监控机制——探针:LivenessProbe:监控容器运行状态,配置重启策略或直接重启挂掉的容器。ReadinessProbe:确认容器服务准备就绪,开始接收外部请求。
4、设置注解:vmultuscni.io/defaultnetwork设置为netcalico2。k8s.vcni.cncf.io/networks设置为netmacvlan,以指定Pod同时使用Calico和macvlan网络。注意事项: 在创建Pod时,需确保使用正确的注解格式,并且网络配置在Node节点上正确无误。
5、nodeName:强制将Pod调度到指定名称的节点。nodeSelector:将Pod调度到添加了特定标签的节点上。亲和性调度:NodeAffinity:提供了节点亲和性调度策略,用于替换NodeSelector,支持多种操作符,如In、NotIn、Exists、DoesNotExist、Gt、Lt等。
K8S学习(2)---Pod相关操作
Pod相关操作主要包括以下内容:Pod配置文件的编写:在编写YAML配置文件时,使用空格而非tab进行缩进,以避免产生错误。Pod的启动与查看:使用kubectl命令启动配置文件,可直接获取Pod的详细信息。运行kubectl命令以查看Pod当前状态,在理想网络环境下,仅需几分钟即可完成Pod的设置。
普通pod:最常见的pod类型,用于运行一个或多个容器。静态pod:一种特殊的pod类型,通常由kubelet直接在节点上管理,不通过K8S api服务器进行调度。pod的定义与创建:yaml文件:定义pod较为简单,通过编写yaml文件实现。yaml文件包含容器的配置信息,如镜像、端口、环境变量等。
在K8S环境中,pod是核心概念,每一个pod包含一个特殊根容器,即pause容器,该容器是K8S的一部分。pod内部可容纳多个容器,共享网络与存储资源。pause容器负责存储所有容器的状态,pod存在于节点中,通过二层网络通信。pod分为普通与静态两种类型。定义pod较为简单,通过编写yaml文件实现。
设置允许Pod调度到Master节点
在Pod定义中添加nodeSelector。创建Pod并检查状态指定pod运行master,验证其被调度至指定节点。方式二:通过指定NodeName。在Pod中配置nodeName字段指定pod运行master,直接指派对应节点。示例如下:查看node名称。列出节点名称指定pod运行master,例如k8s-master。在Pod中使用nodeName指定此节点。通过kubectl Apply创建Pod后,检查Pod是否调度至指定节点。
可通过kubectl describe nodes k8s-master131查看k8s-master131是不可被调度。如下图 取消不可调度 kubectl taint nodes k8s-master131 node-role.kubernetes.io/master:NoSchedule- 验证。关掉k8s-nodes节点。那么此节点指定pod运行master的pod就会被调度到master里恢复。
比如用户希望把 Master 节点保留给 Kubernetes 系统组件使用,或者把一组具有特殊资源预留给某些 POD,则污点就很有用了,POD 不会再被调度到 taint 标记过的节点。
容忍度( Toleration )是应用于 Pod 上的,允许(但并不要求)Pod 调度到带有与之匹配的污点的节点上。污点说白了就是不做普通的调度。
需要容忍 master 污点,确保 DaemonSet 资源 iptables 被调度到所有节点。 配置边端节点:添加边缘节点至集群,并安装 Docker v10 或更高版本以确保 KubeSphere 可以获取 Pod 指标。通过 KubeSphere 上复制的命令,确保边缘节点加入集群。
Pod.spec.nodeSelector通过kubernetes的label-selector机制选择节点,由调度器调度策略匹配label,而后调度Pod到目标节点,该匹配规则属于强制约束。
k8s排错-Google浏览器打不开k8s中dashboard
1、耐心等待新pod重新启动并运行后,进行测试以确认访问控制面板是否恢复正常。如果一切正常,您应能通过Google浏览器访问K8s集群的Dashboard了。
2、首先,需要下载安装版本为0的KubernetesDashboard控制台。配置访问端口:修改安装文件,添加nodeport参数,以便通过浏览器访问控制台。执行安装命令后,检查服务运行状态及自动选择的nodeport端口。为确保端口在重启后不会更改,需要再次修改文件,将nodeport参数固定。
3、在崩溃过程中,集群中的Pod大部分处于内存不足、停止并重启的状态,使得通过web界面的Kubeadmin dashboard管理变得低效。这时,寻找了一个高效管理工具——K9S,这是一款运行在命令行的管理工具,使用习惯与VIM类似,能快速查看集群状态,提升终端环境下的运维效率。
4、安装步骤包括下载yaml文件、修改Service,暴露dashboard服务端口,将其类型更改为NodePort,并指定端口为30010。接下来,创建dashboard并生成一个名为dashboard-admin的用户,角色设定为cluster-admin,以获取登录所需的token。新版本的kubernetes不再自动生成Secret存储token,需参考先前的文章进行手动管理。
5、创建配置文件 在K8S主节点的任意目录下,创建adminrole.yaml和recommended.yaml两个文件。 将对应的配置文件内容粘贴到这两个文件中。这些文件包含了部署dashboard所需的角色绑定、服务账户、角色以及dashboard的部署、服务等配置信息。