当前位置: 首页 > news >正文

全网最详细k8s搭建部署

目录

Kubernetes的功能:

Kubernetes的特点:

1. 安装要求

2. 部署内容

1、系统环境准备

2、所有禁用swap和本地解析

3、仓库配置,所有安装docker

4、所有节点设定docker的资源管理模式为systemd

5、所有阶段复制harbor仓库中的证书并启动docker 

安装K8S部署工具

设置kubectl命令补齐功能

在所节点安装cri-docker

在master节点拉取K8S所需镜像


Kubernetes,简称K8s,是由Google在2014年开源的容器集群管理系统。它是基于Google内部使用的Borg系统多年经验开发而成的,旨在帮助用户轻松管理和部署容器化应用程序。Kubernetes具有高度可扩展、自动化和便携性,使其成为现代云原生应用的事实标准。

Kubernetes的功能:

  • 快速部署应用:通过声明式配置,Kubernetes可以快速地将应用程序部署到集群中。
  • 快速扩展应用:Kubernetes可以根据应用负载自动或手动进行横向扩展。
  • 无缝对接新的应用功能:通过滚动更新和回滚功能,Kubernetes能够确保服务的持续可用性。
  • 节省资源,优化硬件资源的使用:Kubernetes的高效调度机制能够最大化硬件资源的利用率。

Kubernetes的特点:

  • 可移植性:Kubernetes支持多种云平台和裸机环境,允许用户在公有云、私有云、混合云甚至多重云环境中无缝迁移和运行。
  • 可扩展性:Kubernetes的架构是模块化的,支持插件化和可组合性,允许用户根据需要添加或自定义功能。
  • 自动化:Kubernetes提供了自动化的部署、重启、复制和扩展/伸缩功能,极大地简化了运维工作。

1. 安装要求

在开始部署Kubernetes集群之前,以下条件必须得到满足:

  • 操作系统:所有节点需要运行CentOS 7.7或更高版本的64位操作系统。
  • 硬件配置
    • 内存:至少2GB RAM。
    • CPU:至少2个CPU核心。
    • 硬盘空间:至少30GB可用空间。
  • 网络配置:所有节点必须能够互相通信,且不需要NAT或端口映射。
  • 互联网访问:节点需要能够访问互联网,以便下载Docker镜像和Kubernetes组件。
  • swap分区:建议关闭swap分区,因为Kubernetes推荐在物理内存不足时进行Pod驱逐,而不是使用swap。

2. 部署内容

  • 软件版本:Kubernetes v1.16.2和Docker v19.03。
  • 部署步骤
    • 在所有节点上安装Docker和Kubernetes的核心组件,如kubeadm和kubelet。
    • 初始化集群并部署Kubernetes Master,这是集群的控制平面。
    • 部署容器网络插件,以实现Pod之间以及Pod与外部世界的通信。
    • 将Kubernetes Node加入到集群中,Node是执行应用程序的工作节点。

以下是详细的部署步骤:

1、系统环境准备

主机IP
k8s-master172.25.254.100
k8s-node1172.25.254.10
k8s-node2172.25.254.20
harbor172.25.254.254

2、所有禁用swap和本地解析

[root@k8s-node1 ~]# systemctl mask swap.target
Created symlink /etc/systemd/system/swap.target → /dev/null.
[root@k8s-node1 ~]# swapoff -a
[root@k8s-node1 ~]# vim /etc/fstab

vim /etc/hosts

3、仓库配置,所有安装docker

vim /etc/yum.repos.d/docker.repo

dnf install docker-ce -y

4、所有节点设定docker的资源管理模式为systemd

vim /etc/yum.repos.d/rhel9.repo

 

5、所有阶段复制harbor仓库中的证书并启动docker 


[root@k8s-hub certs]# for ip in 172.25.254.10 172.25.254.20 172.25.254.100; do
 scp -r 172.25.254.254:/etc/docker/certs.d/reg.cfy.org/ ${ip}:/etc/docker/certs.d/reg.cfy.org/
done

docker info

vim /root/harbor/harbor.yml

docker login reg.cfy.org

不知道为什么,一直不成功

从网页上输入网址可以登入进去

但输入域名就不行

docker拉取失败

6、安装K8S部署工具

#部署软件仓库,添加K8S源
vim /etc/yum.repos.d/k8s.repo
[k8s]
name=k8s
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm
gpgcheck=0

#安装软件
dnf install kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0 -y

7、设置kubectl命令补齐功能

dnf install bash-completion -y
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc

8、在所节点安装cri-docker

k8s从1.24版本开始移除了dockershim,所以需要安装cri-docker插件才能使用docker 软件下载:https://github.com/Mirantis/cri-dockerd

 dnf install libcgroup-0.41-19.el8.x86_64.rpm cri-dockerd-0.3.14-3.el8.x86_64.rpm -y

vim /lib/systemd/system/cri-docker.service

ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd://  --network-plugin=cni --pod-infra-container-image=reg.cfy.org/k8s/pause:3.9

systemctl daemon-reload
systemctl start cri-docker
ll /var/run/cri-dockerd.sock

9、在master节点拉取K8S所需镜像

#拉取k8s集群所需要的镜像

kubeadm config images pull \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.30.0 \
--cri-socket=unix:///var/run/cri-dockerd.sock

#上传镜像到harbor仓库

docker images | awk '/google/{ print $1":"$2}' \
| awk -F "/" '{system("docker tag "$0" reg.cfy.org/k8s/"$3)}'

docker images | awk '/k8s/{system("docker push "$1":"$2)}'


http://www.mrgr.cn/news/47389.html

相关文章:

  • [微服务]redis数据结构
  • CDA数据分析师一级经典错题知识点总结(5)
  • HTTP-响应协议
  • pandas与sql对应关系【帮助sql使用者快速上手pandas】
  • 运维安全中心(堡垒机)
  • 极狐GitLab 正式发布安全版本17.7.1、17.6.3、17.5.5
  • IPguard与Ping32敏感内容防护能力对比,两款知名防泄密软件对比
  • Qt和c++面试集合
  • 10.10 Qt定时器和Tcp通信
  • (八)Proteus仿真STM32单片机GPIO驱动数码管
  • LLM - 配置 ModelScope SWIFT 环境与 Qwen2-VL 模型推理 教程 (1)
  • Shell编程-什么是shell
  • 【含文档】基于Springboot+Android的校园论坛系统(含源码+数据库+lw)
  • 10.10 QT服务器与客户端
  • jfif怎么转换成jpg格式?值得推荐的几种图片格式转换方法
  • 7-基于国产化FT-M6678+JFM7K325T的6U CPCI信号处理卡
  • Buffer模块
  • 在Vue3中如何实现四种全局状态数据的统一管理?
  • 终于爆单了!做跨境亏久了才知道的选品经验!
  • 从 Reno TCP 到 Scalable TCP,HighSpeed TCP
  • 大数据新视界 --大数据大厂之大数据如何重塑金融风险管理:精准预测与防控
  • pdf合并成一个文件,揭秘四款好用软件!
  • 写一个代码:打印100~200之间的素数
  • SWAP分区
  • Hyper-V管理器连接到服务器出错。请检查虚拟机管理服务是否正在运行以及是否授权你连接到此服务器。
  • 【洛谷】P10499 开关问题 的题解