河曲智叟 发表于 2025-2-15 10:15:07

Kubernetes (K8S) 集群架构与搭建方式详情

简介

Kubernetes(K8S)是一个开源的容器编排平台,用于自动化应用步伐的部署、扩展和管理。本文将介绍K8S的常见集群架构和搭建方式,并详细阐明如何基于Minikube搭建单节点K8S集群以及部署第一个K8S应用。
K8S常见集群架构和搭建方式

集群范例


[*] 单master-Node集群

[*] 一主多从,推荐测试情况利用。
[*] 服务器要求:至少2台2核4G以上的云服务器。

[*] 多master-Node集群

[*] 多主多从(高可用集群),推荐生产情况利用。
[*] 服务器要求:至少4台2核4G以上的云服务器。

[*] 单节点K8S集群

[*] 单个节点。
[*] 服务器要求:至少一台2核4G以上的云服务器。

https://i-blog.csdnimg.cn/direct/0964273208d84f5da1cdaa13522a0f2c.png
https://i-blog.csdnimg.cn/direct/17290c4bc6e64794a7103adf54192910.png

K8S搭建方式


[*] kubeadm搭建(推荐)

[*] 提供kubeadm init和kubeadm join命令,用于快速搭建K8S集群。

[*] 二进制包搭建

[*] 从GitHub下载发行版的二进制包,手动部署每个组件,构成Kubernetes集群。
[*] 可以相识底层,但步调繁琐,坑较多。

[*] Minikube搭建

[*] 轻量化的Kubernetes集群,适用于开辟者和学习者。
[*] 利用个人PC的假造化情况快速构建启动单节点K8S。

云服务器阐明

        本地假造机大概其他系统,存在各种系统版本、内核参数调整、swap分区、网络标题等,为了避免兼容性标题,发起统一利用阿里云Linux CentOS 7.8。如果多节点集群搭建,可以利用阿里云的按量付费选择多台ECS服务器。
基于Minikube搭建单节点K8S集群

简介

Minikube是一种轻量化的Kubernetes集群,适用于开辟者和学习者快速构建启动单节点K8S。
机器准备: 阿里云 CentOS 7.x,2核4G。

安装步调


[*] 安装Docker
# 1.先安装yml
yum install -y yum-utils device-mapper-persistent-data lvm2
# 2.设置阿里云镜像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 3.查看可安装的docker版本
yum list docker-ce --showduplicates | sort -r

#4. 安装docker
yum -y install docker-ce-20.10.10-3.el7

#5. 查看docker版本
docker -v

#配置开机自启动
systemctl enable docker.service

#6. 启动docker
systemctl start docker


#7. 查看docker 启动状态
systemctl status docker
[*] 配置镜像源
cat > /etc/yum.repos.d/kubernetes.repo << EOF

name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
[*] 安装kubectl
yum install -y kubectl-1.18.0
[*] 安装minikube
curl -LO https://storage.googleapis.com/minikube/releases/v1.18.1/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
[*] 查抄minikube安装是否成功
minikube version
[*] 启动minikube
minikube start --image-mirror-country='cn'--driver=docker --force --kubernetes-version=1.18.1 --registry-mirror=https://registry.docker-cn.com

[*] 检察集群信息
kubectl cluster-info
快速部署第一个K8S应用

检察K8S集群信息

kubectl cluster-info 检察节点信息

kubectl get node 检察内部组件

kubectl get pod -A 部署第一个K8S应用-Nginx,并通过公网IP访问


[*] 创建deployment(Pod控制器的一种, 直接删除pod后,会自动创建新的,必要删除deployment)
kubectl create deployment xdclass-nginx --image=nginx:1.23.0


[*] 对比Docker部署
docker run --name xdclass-nginx -p 8080:80 -d nginx:1.23.0
[*] 检察deployment和pod
kubectl get deployment,pod,svc
[*] 暴露80端口
kubectl expose deployment xdclass-nginx --port=80 --type=NodePort
[*] 转发端口(Mini Kube暂时)
kubectl port-forward --address 0.0.0.0 service/xdclass-nginx 80:80

解释:
kubectl port-forward 转发一个本地端口到 Pod 端口,不会返回数据,需要打开另一个终端来继续这个练习
注意事项



[*] Minikube的搭建与Kubeadm有所不同。
[*] NodePort不能通过IP+端口直接访问,必要通过Minikube service(内网访问)和端口转发(公网访问)。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Kubernetes (K8S) 集群架构与搭建方式详情