kubernetes centos集群?kubernetes

其实kubernetes centos集群的问题并不复杂,但是又很多的朋友都不太了解kubernetes,因此呢,今天小编就来为大家分享kubernetes centos集群的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

Centos7 k8s 集群 - Rook Ceph 安装

要安装 Centos7 k8s集群并整合 Rook Ceph,首先确保环境具备以下基础配置:安装的 Rook/ceph版本为:ceph:v15.2.11和 rook:1.6.3。此版本组合要求使用裸盘创建集群,避免通过目录创建。

直接添加 sdb硬盘到宿主机,无需进行格式化。确保该硬盘未被其他系统使用。

安装 Rook并下载 Rook operator.yaml和 cluster.yaml。针对国内网络环境,修改 Rook CSI镜像地址,替换为阿里云镜像仓库的镜像路径,以保证访问速度。

对 cluster.yaml进行两处关键配置调整。调整完成后,部署系统,待所有容器运行状态变为'running',方可进行下一步。

使用部署的 Rook创建 Ceph集群。完成创建后,通过查看 pod状态,确认集群部署情况。关注 osd-x容器启动,这是集群安装成功的标志。

安装 Ceph客户端工具后,待容器运行,即可执行相关命令进行 Ceph集群管理。

最后,进行 Rook-CEPH相关资源的清理操作,包括删除 Operator和相关的 Kubernetes资源。此外,删除节点机器上的数据,并擦除节点机器硬盘上的数据,确保无残留信息。

此过程需细心操作,确保每一步的正确性和完整性,以保证 Rook Ceph在 Centos7 k8s集群中的稳定运行。

Centos7.6部署k8s v1.16.4高可用集群(主备模式)

部署环境与版本概述:

本文使用7台服务器构建Kubernetes集群,包括3台控制平面节点(control plane)、3台工作节点(work)与1台客户端(client)。集群版本为Kubernetes v1.16.4。

采用kubeadm方式搭建主备模式下的高可用集群。主备模式的核心是确保集群的各关键组件如API Server、Scheduler、Controller Manager等的高可用性。

部署准备工作包括:

修改主机名与hosts文件以确保名称唯一性。

禁用swap分区,以避免资源冲突。

内核参数调整,特别是设置`bridge-nf-call-iptables=1`,这需要br_netfilter模块支持。

设置kubernetes源以加速安装过程。

配置免密码登录,便于控制节点间的交互。

Docker安装确保集群的容器化环境稳定运行,包括安装依赖、设置源、安装Docker CE、配置加速器等。

keepalived的安装与配置用于管理VIP(虚拟IP),确保在控制平面节点宕机时,VIP能够自动迁移到其他可用节点。

在部署Kubernetes组件之前,需要检查Docker版本是否兼容集群版本。安装kubelet、kubeadm和kubectl,以及下载所需的Kubernetes组件和Docker镜像。

初始化Master节点时,需配置kubeadm.conf文件,执行初始化命令,并记录控制平面加入命令。工作节点的加入通过Master节点生成的命令实现。

集群高可用测试包括观察组件在控制平面节点宕机时的行为,以验证VIP漂移和集群功能的连续性。测试结果表明,当控制平面节点发生故障时,集群能够自动调整,确保服务的连续性和可用性。

本文提供完整的部署脚本和配置文件,为 CentOS 7.6集群部署 K8s v1.16.4高可用集群提供全面指导。

超全K8s集群构建指南,建议收藏

1.什么是kubernetes

Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

2. kubernetes核心组件说明

Kubernetes集群中主要存在两种类型的节点,分别是 master节点,以及 minion节点。

Minion节点是实际运行 Docker容器的节点,负责和节点上运行的 Docker进行交互,并且提供了代理功能。

Master节点负责对外提供一系列管理集群的 API接口,并且通过和 Minion节点交互来实现对集群的操作管理。

apiserver:用户和 kubernetes集群交互的入口,封装了核心对象的增删改查操作,提供了 RESTFul风格的 API接口,通过 etcd来实现持久化并维护对象的一致性。

scheduler:负责集群资源的调度和管理,例如当有 pod异常退出需要重新分配机器时,scheduler通过一定的调度算法从而找到最合适的节点。

controller-manager:主要是用于保证 replicationController定义的复制数量和实际运行的 pod数量一致,另外还保证了从 service到 pod的映射关系总是最新的。

kubelet:运行在 minion节点,负责和节点上的 Docker交互,例如启停容器,监控运行状态等。

proxy:运行在 minion节点,负责为 pod提供代理功能,会定期从 etcd获取 service信息,并根据 service信息通过修改 iptables来实现流量转发(最初的版本是直接通过程序提供转发功能,效率较低。),将流量转发到要访问的 pod所在的节点上去。

etcd:key-value键值存储数据库,用来存储kubernetes的信息的。

flannel:Flannel是 CoreOS团队针对 Kubernetes设计的一个覆盖网络(Overlay Network)工具,需要另外下载部署。

我们知道当我们启动 Docker后会有一个用于和容器进行交互的 IP地址,如果不去管理的话可能这个 IP地址在各个机器上是一样的,并且仅限于在本机上进行通信,无法访问到其他机器上的 Docker容器。

Flannel的目的就是为集群中的所有节点重新规划 IP地址的使用规则,从而使得不同节点上的容器能够获得同属一个内网且不重复的 IP地址,并让属于不同节点上的容器能够直接通过内网 IP通信。

3. Kubernetes的核心概念

Pod

运行于Node节点上,若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通。

Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。

Replication Controller

Replication Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。

集群中副本的数量大于指定数量,则会停止指定数量之外的多余容器数量,反之,则会启动少于指定数量个数的容器,保证数量不变。

Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心。

Service

Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。

Service提供了一个统一的服务访问入口以及服务代理和发现机制,用户不需要了解后台Pod是如何运行。

Label

Kubernetes中的任意API对象都是通过Label进行标识,Label的实质是一系列的K/V键值对。Label是Replication Controller和Service运行的基础,二者通过Label来进行关联Node上运行的Pod。

Node

Node是Kubernetes集群架构中运行Pod的服务节点(或agent)。

Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。

4.前置条件设置

三台Centos7系统的虚拟机(1个master+2个node),三台机器上的防火墙,SELINUX全部关掉。我的实验坏境可以上网,默认的YUM源就可以用。

5.部署规划

192.168.10.1# master节点(etcd,kubernetes-master)

192.168.10.2# node1节点(etcd,kubernetes-node,docker,flannel)

192.168.10.3# node2节点(etcd,kubernetes-node,docker,flannel)

6.开始安装

step1:在master上安装

yum install kubernetes-master etcd flannel-y

step2:在node上安装

yum install kubernetes-node etcd flannel-y

step3:etcd集群配置

在master节点上编辑etcd配置文件

在node1节点上编辑etcd配置文件

在node2节点上编辑etcd配置文件

到此etcd集群就部署完了,然后每个节点上启动

systemctl start etcd

step4:验证

step6:启动Master上的三个服务

step7:kubernetes node安装

node2节点重复上述操作

step8:分别启动kubernetes node服务

7.网络配置

因为kubernetes集群中网络部分是插件形式安装的,我们这里选用flannel

上述安装步骤已经install了

为flannel创建分配的网络

8.执行kubectl命令检查

在master上执行下面,检查kubernetes的状态

9.常用排错命令如下

阅读剩余
THE END