简介
Kubernetes(K8S)是一个开源的容器编排平台,用于自动化应用步伐的部署、扩展和管理。本文将介绍K8S的常见集群架构和搭建方式,并详细阐明如何基于Minikube搭建单节点K8S集群以及部署第一个K8S应用。
K8S常见集群架构和搭建方式
集群范例
- 单master-Node集群
- 一主多从,推荐测试情况利用。
- 服务器要求:至少2台2核4G以上的云服务器。
- 多master-Node集群
- 多主多从(高可用集群),推荐生产情况利用。
- 服务器要求:至少4台2核4G以上的云服务器。
- 单节点K8S集群
- 单个节点。
- 服务器要求:至少一台2核4G以上的云服务器。
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
- [kubernetes]
- 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
- minikube start --image-mirror-country='cn' --driver=docker --force --kubernetes-version=1.18.1 --registry-mirror=https://registry.docker-cn.com
复制代码 - 检察集群信息
快速部署第一个K8S应用
检察K8S集群信息
检察节点信息
检察内部组件
部署第一个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企服之家,中国第一个企服评测及商务社交产业平台。 |