首页 > 系统相关 >CentOS7 规划搭建 kubernetes 集群

CentOS7 规划搭建 kubernetes 集群

时间:2023-06-05 15:31:35浏览次数:42  
标签:repo kubernetes 容器 -- CentOS7 etc yum 集群 com


前言

容器始于OS,OS就是它的土壤。操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序,并且为软件运行提供通用服务的系统软件。

容器这个技术,不是一个新技术,它其实早就有了,虽然最近这几年才火爆,但是容器完全是一个新瓶装旧酒的玩意,感兴趣的小伙伴们可以更深入去了解一下历史,如下图所示:

CentOS7  规划搭建 kubernetes 集群_docker

在我们想要接触了解 Kubernetes 之前,还是花一点时间来正真了解容器是什么? 毕竟,在不知道容器是什么的情况下谈论容器编排器(Kubernetes)是没有意义的!

下面是我们日常经常会用到的用品,就是最常见的一种器皿,一个用来便携的、安全存放你需要的所有食材的容器。

CentOS7  规划搭建 kubernetes 集群_docker_02

在计算机方面使用容器技术之前,业界的网红应该是虚拟化技术,虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化技术的代表,是 VMWare 和 OpenStack,虚拟机属于虚拟化技术。而 Docker 这样的容器技术,也是虚拟化技术,属于轻量级的虚拟化,正因为如此,容器技术受到了热烈的欢迎和追捧,正如前文所说,容器这技术最近这几年才火爆发展迅速。

CentOS7  规划搭建 kubernetes 集群_CentOS_03

现在我们大致了解了什么是容器了,也很容易知道它为什么深受欢迎,发展迅速了。

下面进入正题,也就是今天要分享的《CentOS7 规划搭建 kubernetes 集群》


系统平台

操作系统:CentOS Linux 7 (Core)

CentOS7  规划搭建 kubernetes 集群_docker_04

CentOS7  规划搭建 kubernetes 集群_docker_05

相关工具:MobaXterm、Visual Studio Code、Notepad++、VMware Pro、WPS Office。

CentOS7  规划搭建 kubernetes 集群_docker_06

集群平台规划如下

角色

OS

CPU

Memory

Disk

IP

Master

CentOS Linux 7

4 cores

4G

100G

192.168.59.133

Node1

CentOS Linux 7

4 cores

5G

100G

192.168.59.134

Node2

CentOS Linux 7

4 cores

5G

100G

192.168.59.135

三台 CentOS7 虚拟机 

CentOS7  规划搭建 kubernetes 集群_docker_07

三台虚拟机角色及IP规划

CentOS7  规划搭建 kubernetes 集群_Docker_08


安装要求

上面的集群平台规划完成之后,可以准备开始搭建集群了。

安装部署 kubernetes 集群需要满足以下几个必备条件:

✬一台或多台机器,操作系统 CentOS7.x-86_x64。(已满足)

✬硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多。(已满足)

✬可以访问互联网,需要拉取镜像,安装软件。(已满足)

✬禁止 swap 分区。(已满足)

各位可以看看是否都具备满足条件,都OK那就按下面的步骤进行操作。


安装操作步骤

1、配置免密登录

首先,三台服务器之间配置互信免密登录。

ssh-keygen -t rsa

使用 ssh-copy-id 复制公钥到所有服务器

ssh-copy-id k8snode1 、ssh-copy-id k8snode2


更换 yum 国内源,推荐配阿里源:
# wget -O/etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
--2023-05-26 19:45:15--  http://mirrors.aliyun.com/repo/Centos-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 140.207.236.230, 140.207.236.146, 140.207.236.232, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|140.207.236.230|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2523 (2.5K) [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’
100%[========================================================>] 2,523       --.-K/s   in 0.002s
2023-05-26 19:45:15 (344 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [2523/2523]

网易源:

# wget -O/etc/yum.repos.d/CentOS-Base163.repo  http://mirrors.163.com/.help/CentOS7-Base-163.repo
--2023-05-26 19:46:47--  http://mirrors.163.com/.help/CentOS7-Base-163.repo
Resolving mirrors.163.com (mirrors.163.com)... 101.71.33.11
Connecting to mirrors.163.com (mirrors.163.com)|101.71.33.11|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1572 (1.5K) [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base163.repo’
100%[==========================================================>] 1,572       --.-K/s   in 0.002s
2023-05-26 19:46:47 (794 KB/s) - ‘/etc/yum.repos.d/CentOS-Base163.repo’ saved [1572/1572]
清理yum缓存,并生成新的缓存。
yum clean all

yum makecache
更新yum源检查是否生效
yum update

若更新 yum 源不更新内核:直接在 yum 的命令后面加如下的参数。

yum --exclude=kernel* update

更新后的内核版本如下

Kernel: Linux 3.10.0-1160.90.1.el7.x86_64   Architecture: x86-64

上面的系统环境准备OK,就可以按下面步骤操作安装了。


2、按如下步骤执行
2.1、 关闭防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld

2.2、 关闭 selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config		#永久
setenforce 0	#临时方案

查看selinux状态
sestatus
getenforce

2.3、 关闭swap:
sed -i 's/.*swap.*/#&/' /etc/fstab		#注释掉 swap 这一行,永久关闭。
swapoff -a 	  #临时方案
free -lhgt		#查看分区空间

2.4、 修改主机名:
hostnamectl set-hostname <hostname>
hostnamectl set-hostname k8smaster
hostnamectl set-hostname k8snode1
hostnamectl set-hostname k8snode2

2.5、 在 master 主机添加 hosts 节点机上无需执行。
cat >> /etc/hosts << EOF
192.168.59.133 k8smaster
192.168.59.134 k8snode1
192.168.59.135 k8snode2
EOF

2.6、 将桥接的 IPv4 流量传递到 iptables 的链,所有节点服务器都要执行。
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

cat /etc/sysctl.d/k8s.conf  #查看配置参数
上面的参数配置正确,就可以执行下面的指令。
sysctl --system		#立即生效

2.7、 设置时间同步
yum install ntpdate -y
ntpdate time.windows.com
3、所有机器都安装 Docker/kubeadm/kubelet/kubectl
3.1、所有机器都需要安装 Docker/kubeadm/kubelet/kubectl
Kubernetes 默认 CRI (容器运行时)为 Docker 因此先安装 Docker服务。

3.2、 安装 Docker
执行以下命令来列出所有可用的 Docker 版本
yum list docker-ce --showduplicates | sort -r
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum install -y docker-ce docker-ce-cli http://containerd.io   #不指定版本,默认是安装最新版本。

#yum install -y docker-ce-18.06.1.ce-3.el7		#指定一个版本安装

3.3
cat > /etc/docker/daemon.json << EOF
{
        "exec-opts": ["native.cgroupdriver=systemd"],
        "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com","https://rrnv06ig.mirror.aliyuncs.com","https://reg-mirror.qiniu.com","https://docker.mirrors.ustc.edu.cn"]
}
EOF

3.4
systemctl status docker.service
systemctl daemon-reload && systemctl restart docker && systemctl enable docker

systemctl status containerd

3.5 添加阿里云 YUM 软件源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

3.6 安装 kubeadm、kubelet和kubectl

yum install -y kubelet-1.25.2 kubeadm-1.25.2 kubectl-1.25.2		#指定安装 1.25.2 版本。

yum install -y kubelet kubeadm kubectl		# 不指定版本,默认安装最新版本

3.7
systemctl enable kubelet	#设置成开机启动
systemctl start kubelet
kubelet --version

3.8
systemctl status kubelet | journalctl -xe
journalctl -u kubelet --no-pager 	#查看启动报错日志,--no-pager 参数可以一次性输出日志。
journalctl -xefu kubelet
4、部署kubernets Master

在 192.168.59.133  (Master) 节点上执行

kubeadm init --apiserver-advertise-address=192.168.59.133 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.25.2 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

CentOS7  规划搭建 kubernetes 集群_Docker_09

kubeadm config imgaes pull 拉取镜像,会有如下的提示信息,说明镜像拉取成功。

按上面的提示在进行设置

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl get nodes

加入 kubernetes Node

在 Node 服务器 192.168.59.134、192.168.59.135 节点上执行,向集群添加新节点。

执行  kubeadm join 命令:

kubeadm join 192.168.59.133:6443 --token 1zobjk.teg9wbpovoa3xkul --discovery-token-ca-cert-hash sha256:1dc06b47eec661408e7a3093e01b40d3436e7a7118509e6c0a274567a01b5964

默认 token 有效期为24小时,当过期之后,该 token 就不可用了。
这时就需要重新创建 token 了,执行如下:
kubeadm token create --print-join-command

CentOS7  规划搭建 kubernetes 集群_docker_10

可以看到 node 节点服务器都已加入 master 集群。

CentOS7  规划搭建 kubernetes 集群_Docker_11

可以查看 pod 信息

CentOS7  规划搭建 kubernetes 集群_Docker_12


CentOS7  规划搭建 kubernetes 集群_CentOS_13


可以看到文章之前的集群平台规划,三台服务器规划组成搭建的 kubernetes 集群就顺利搭建完成,希望对各位有所步骤,也希望各位同学,看过之后用发财的小手点个红心鼓励鼓励。














标签:repo,kubernetes,容器,--,CentOS7,etc,yum,集群,com
From: https://blog.51cto.com/wst021sh/6416607

相关文章

  • Kubernetes API
    KubernetesAPI(应用程序编程接口)是一组规则和协议,允许应用程序与Kubernetes集群进行交互和通信。它为开发人员提供了一种管理和控制Kubernetes环境中各种资源和组件的方式。KubernetesAPI遵循RESTful设计模式,意味着它使用诸如GET、POST、PUT和DELETE等HTTP方法来对资源执行操作......
  • shell一键部署集群初始化环境
    @目录脚本实现脚本测试用于一键部署集群(多节点)的环境初始化,如修改主机名,禁用防火墙、selinux、iptables,主机映射,节点相互免密,时间同步等ps:脚本需要下载except,chrony等软件包,确保centos源正常脚本实现#!/bin/bash#定义节点信息NODES=("192.168.200.80cluster01""192.168.......
  • 银河麒麟KylinV10安装FastDFS单机版与FastDFS集群搭建
    一、FastDFS介绍1.1.简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗......
  • 4.消息的性质和集群
    7.消息的性质7.1.消息可靠性消息的可靠性投递就是要保证消息投递过程中每一个环节都要成功,那么这肯定会牺牲一些性能,性能与可靠性是无法兼得的如果业务实时一致性要求不是特别高的场景,可以牺牲一些可靠性来换取性能。①代表消息从生产者发送到Exchange;②代表消息从Exchan......
  • postgresql 集群和同步以及企业解决方案
    pgpool-II入门教程[url]http://www.pgpool.net/docs/latest/tutorial-zh_cn.html[/url],集群教程[size=medium][color=red][b]方案1:pgpool[/b][/color][/size]pgpool:设置简单,实现SharedNothing的双机写入同步,及查询负载均衡。也可结合Slony实现双机异步复制,提高写数据性能。......
  • 02_容器编排技术 Kubernetes
    云原生容器编排技术Kubernetes面试题1、简述etcd及其特点?etcd是CoreOS团队发起的开源项目,是一个管理配置信息和服务发现(servicediscovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于Go语言实现。特点:简单:支持REST风格的HTTP+JSONAPI安全:支持......
  • kubernetes部署nexus
    1.NexusVolumecat>nexus-volume.yaml<<EOF---apiVersion:v1kind:PersistentVolumeClaimmetadata:name:nexus-data-pvcnamespace:kube-opsspec:accessModes:-ReadWriteMany#指定storageClass的名字,这里使用默认的standardstorageClassName......
  • kubernetes 部署SonarQube
    1.PostgreSQL参考博客:https://hanggi.me/post/kubernetes/k8s-postgresql1.1.配置PostgreSQL的ConfigMapcat>postgres-configmap.yaml<<EOFapiVersion:v1kind:ConfigMapmetadata:name:postgres-confignamespace:kube-opslabels:app:postgresd......
  • kafka跨集群发送消息
    1.场景集群B有一个应用要向集群A的kafka集群发送消息,但是集群A和集群B不是直接互通的,需要经过一层转发。 ......
  • 4、虚拟机单机、集群的克隆、删除脚本(以初始化好的虚拟机为模板)
    虚拟机克隆、删除脚本[root@ubunt~]#catclone.sh#!/bin/bash##./etc/init.d/functions(如果是ubuntu,注释此行)Red="\e[1;31m"Purple="\e[1;35m"Green="\e[1;32m"Blue="\e[1;36m"Yellow="\e[1;33m"End="\e[0m&......