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

简介

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

K8S常见集群架构和搭建方式

集群类型

  1. 单master-Node集群

    • 一主多从,推荐测试环境使用。

    • 服务器要求:至少2台2核4G以上的云服务器。

  2. 多master-Node集群

    • 多主多从(高可用集群),推荐生产环境使用。

    • 服务器要求:至少4台2核4G以上的云服务器。

  3. 单节点K8S集群

    • 单个节点。

    • 服务器要求:至少一台2核4G以上的云服务器。

K8S搭建方式

  1. kubeadm搭建(推荐)

    • 提供kubeadm initkubeadm join命令,用于快速搭建K8S集群。

  2. 二进制包搭建

    • 从GitHub下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。

    • 可以了解底层,但步骤繁琐,坑较多。

  3. Minikube搭建

    • 轻量化的Kubernetes集群,适用于开发者和学习者。

    • 使用个人PC的虚拟化环境快速构建启动单节点K8S。

云服务器说明

        本地虚拟机或者其他系统,存在各种系统版本、内核参数调整、swap分区、网络问题等,为了避免兼容性问题,建议统一使用阿里云Linux CentOS 7.8。如果多节点集群搭建,可以使用阿里云的按量付费选择多台ECS服务器。

基于Minikube搭建单节点K8S集群

简介

Minikube是一种轻量化的Kubernetes集群,适用于开发者和学习者快速构建启动单节点K8S。

机器准备: 阿里云 CentOS 7.x,2核4G。

安装步骤

  1. 安装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
  2. 配置镜像源

    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
  3. 安装kubectl

    yum install -y kubectl-1.18.0
  4. 安装minikube

    curl -LO https://storage.googleapis.com/minikube/releases/v1.18.1/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
  5. 检查minikube安装是否成功

    minikube version
  6. 启动minikube

    minikube start --image-mirror-country='cn'  --driver=docker --force --kubernetes-version=1.18.1 --registry-mirror=https://registry.docker-cn.com
    
  7. 查看集群信息

    kubectl cluster-info

快速部署第一个K8S应用

查看K8S集群信息

kubectl cluster-info

查看节点信息

kubectl get node

查看内部组件

kubectl get pod -A

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

  1. 创建deployment(Pod控制器的一种, 直接删除pod后,会自动创建新的,需要删除deployment

    kubectl create deployment xdclass-nginx --image=nginx:1.23.0
    
    
  2. 对比Docker部署

    docker run --name xdclass-nginx -p 8080:80 -d nginx:1.23.0
  3. 查看deployment和pod

    kubectl get deployment,pod,svc
  4. 暴露80端口

    kubectl expose deployment xdclass-nginx --port=80 --type=NodePort
  5. 转发端口(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(内网访问)和端口转发(公网访问)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值