1. Kubernetes简介

Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一种高效的方式来管理容器化应用程序的整个生命周期,从部署到扩展再到更新。

2. Kubernetes集群架构

Kubernetes集群由以下主要组件构成:

  • Master节点:负责集群的整体管理和维护,包括API服务器、调度器、控制器管理器等。
  • Worker节点:负责运行容器化应用程序,接收Master节点的指令并执行。
  • Pod:Kubernetes中的最小部署单元,可以包含一个或多个容器。

2.1 Master节点组件

  • API服务器:集群的入口点,提供集群管理的所有API。
  • 调度器:负责将Pod分配到合适的Worker节点上。
  • 控制器管理器:负责管理集群中的各种资源,如副本集、服务、配置等。

2.2 Worker节点组件

  • Kubelet:负责与Master节点通信,并在本地管理Pod。
  • Kube-proxy:负责为服务提供网络代理和负载均衡。

3. Kubernetes集群搭建

3.1 使用Minikube搭建集群

Minikube是一个易于使用的Kubernetes集群,适合本地开发和测试。以下是使用Minikube搭建集群的步骤:

  1. 安装Minikube。
  2. 使用以下命令启动Minikube集群:
   minikube start
  1. 查看集群状态:
   kubectl cluster-info
  1. 运行一个简单的Pod:
   kubectl run hello-node --image=agnhost:2.39 -- /agnhost netexec --http-port=8080
  1. 暴露Pod:
   kubectl expose deployment hello-node --type=LoadBalancer --port=8080
  1. 查看Service:
   kubectl get services

3.2 使用kubeadm搭建集群

kubeadm是一个用于创建和管理Kubernetes集群的工具。以下是使用kubeadm搭建集群的步骤:

    准备服务器:

    • 3台服务器(虚拟机)。
    • 操作系统:CentOS 7。
    • Docker:20。
    • Kubernetes:1.23.6。

    关闭防火墙:

   systemctl stop firewalld
   systemctl disable firewalld
  1. 安装kubeadm、kubelet和kubectl:
   sudo yum install -y kubeadm kubelet kubectl
  1. 初始化Master节点:
   kubeadm init --pod-network-cidr=10.244.0.0/16
  1. 配置kubectl:
   mkdir -p $HOME/.kube
   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
   sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 部署网络插件(如Calico):
   kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  1. 部署一个简单的Pod:
   kubectl run hello-node --image=agnhost:2.39 -- /agnhost netexec --http-port=8080
  1. 暴露Pod:
   kubectl expose deployment hello-node --type=LoadBalancer --port=8080
  1. 查看Service:
   kubectl get services

4. 总结

本文介绍了如何轻松掌握K8s集群创建,从入门到实战全解析。通过使用Minikube和kubeadm,您可以快速搭建一个Kubernetes集群,并运行容器化应用程序。希望本文能对您有所帮助!