目录
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-master | 172.25.254.100 |
k8s-node1 | 172.25.254.10 |
k8s-node2 | 172.25.254.20 |
harbor | 172.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)}'