首页 > 其他分享 >Kubernetes 集群搭建-搭建高可用集群

Kubernetes 集群搭建-搭建高可用集群

时间:2024-01-14 21:31:28浏览次数:26  
标签:Kubernetes sudo apt 集群 安装 节点 搭建

Kubernetes   集群搭建-搭建高可用集群(初始化和部署keepalived)

要搭建一个高可用的Kubernetes集群,你可以使用Keepalived来实现负载均衡和故障转移。Keepalived是一个开源的高可用解决方案,它可以确保在节点故障时自动切换到备用节点,从而保证服务的连续性。

以下是在搭建高可用Kubernetes集群中初始化和部署Keepalived的步骤:

  1. 在每个节点上安装Keepalived:
  • 在每个节点上运行以下命令来安装Keepalived:
sudo apt-get update
sudo apt-get install keepalived -y
  1. 配置Keepalived:
  • 在每个节点上创建并编辑Keepalived配置文件,例如/etc/keepalived/keepalived.conf。
  • 配置Keepalived的虚拟IP(VIP),该IP将用于负载均衡和故障转移。
  • 配置Keepalived的监控检查和故障转移策略,例如通过TCP端口检查Kubernetes API服务器的可用性,并在主节点故障时切换到备用节点。
  1. 启动Keepalived服务:
  • 在每个节点上启动Keepalived服务,并确保它在系统启动时自动启动。
  • 运行以下命令来启动Keepalived服务:
sudo systemctl start keepalived
sudo systemctl enable keepalived
  1. 测试Keepalived:
  • 使用以下命令检查Keepalived的状态:
sudo systemctl status keepalived
  • 在主节点上停止Keepalived服务,观察VIP是否自动切换到备用节点。
  • 使用ping或telnet测试VIP是否可访问。
  1. 配置其他组件:
  • 将Kubernetes的其他组件(如kube-apiserver、kube-controller-manager和kube-scheduler)配置为使用Keepalived的VIP进行通信。
  • 编辑这些组件的配置文件,将它们的绑定IP地址和端口设置为VIP地址和端口。

通过完成以上步骤,你可以在搭建的Kubernetes集群上实现负载均衡和故障转移功能。

Kubernetes -搭建高可用集群(部署haproxy和安装docker及其他组件)

要搭建一个高可用的Kubernetes集群,需要部署HAProxy来实现负载均衡,并安装docker和其他必要组件。下面是详细的步骤:

  1. 安装和配置HAProxy
  • 使用以下命令安装HAProxy:
sudo apt-get update
sudo apt-get install haproxy
  • 编辑/etc/haproxy/haproxy.cfg文件,配置HAProxy的监听端口和后端Kubernetes API服务器的IP地址和端口。以下是一个基本的配置示例:
global
    log /dev/log local0
    log /dev/log local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

defaults
    log global
    mode tcp
    option tcplog
    option dontlognull
    timeout connect 5000
    timeout client 50000
    timeout server 50000

frontend kubernetes-api
    bind *:6443
    default_backend kubernetes-api-servers

backend kubernetes-api-servers
    mode tcp
    balance roundrobin
    option tcp-check
    server master1 <master1_ip>:6443
    server master2 <master2_ip>:6443
  • 启动HAProxy并将其设置为开机自启动:
sudo systemctl start haproxy
sudo systemctl enable haproxy
  1. 安装Docker和其他组件
  • 使用以下命令安装Docker:
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl enable docker
sudo systemctl start docker
  • 安装其他必要的组件,如kubelet、kubeadm和kubectl。您可以根据Kubernetes版本的不同,在官方文档中找到相应的安装指南。
  1. 安装和配置Kubernetes
  • 使用kubeadm工具初始化Kubernetes控制平面:
sudo kubeadm init --control-plane-endpoint "<haproxy_ip>:6443" --upload-certs
  • 完成初始化后,根据kubeadm的输出,按照指示设置kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 将网络插件安装到集群中。根据您的选择,可以使用Flannel、Calico等插件。请参考官方文档中的安装指南。

至此,您已成功搭建了一个高可用的Kubernetes集群,通过HAProxy实现了负载均衡,并安装了docker和其他必要组件。

Kubernetes 集群搭建-搭建高可用集群(部署master1节点初始化)

在搭建 Kubernetes 高可用集群之前,我们需要先部署一个 Master 节点,然后再添加其他节点。以下是部署 Master1 节点的初始化步骤:

  1. 安装操作系统: 在 Master1 节点上安装一个支持 Kubernetes 的操作系统,例如 Ubuntu、CentOS 等。确保操作系统满足 Kubernetes 的最低要求。
  2. 安装 Docker: Kubernetes 需要运行在 Docker 上,因此我们需要在 Master1 节点上安装 Docker。可以通过以下命令来安装 Docker:
sudo apt-get update
sudo apt-get install -y docker.io
  1. 配置 Docker: 为了让 Kubernetes 正确地使用 Docker,我们需要修改 Docker 的配置文件。编辑 /etc/docker/daemon.json 文件,并添加以下内容:
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

保存文件后重启 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 安装 kubeadm、kubelet 和 kubectl: kubeadm 是 Kubernetes 的命令行工具,kubelet 是 Kubernetes 的主要组件之一,kubectl 是 Kubernetes 的命令行工具。可以通过以下命令来安装这些工具:
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
  1. 初始化 Master1 节点: 在 Master1 节点上运行以下命令来初始化 Kubernetes Master:
sudo kubeadm init --control-plane-endpoint <MASTER_IP> --upload-certs

<MASTER_IP> 是 Master1 节点的 IP 地址。初始化过程可能需要一些时间,完成后会输出一些信息,其中包含了加入集群所需的命令。

  1. 创建用户配置: 当初始化完成后,会输出一个类似于以下的命令,用于创建用户配置:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

运行这些命令,将用户配置复制到正确的位置。

  1. 安装网络插件: Kubernetes 集群需要一个网络插件来实现跨节点之间的网络通信。可以选择安装 Calico、Flannel 等网络插件。以下是安装 Calico 的步骤:
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
  1. 加入其他节点: 最后,我们需要将其他节点加入到集群中。在每个节点上运行 Master 初始化命令中输出的加入命令,例如:
sudo kubeadm join <MASTER_IP>:<MASTER_PORT> --token <TOKEN> --discovery-token-ca-cert-hash <HASH>

<MASTER_IP><MASTER_PORT> 是 Master1 节点的 IP 地址和端口号,<TOKEN> 是初始化命令中输出的令牌,<HASH> 是证书哈希值。

完成以上步骤后,Master1 节点的初始化就完成了。接下来可以继续搭建高可用集群,将其他 Master 节点加入到集群中。

Kubernetes 集群搭建-搭建高可用集群(部署master2和node节点)

要搭建高可用的 Kubernetes 集群,并部署 master2 和 node 节点,你需要按照以下步骤进行操作:

  1. 安装并配置 etcd(分布式键值存储系统):etcd 是 Kubernetes 的底层存储系统,用于保存集群的配置信息。你需要在 master 节点上安装 etcd,并配置其为集群模式。可以根据官方文档进行安装和配置。
  2. 安装并配置 Kubernetes master2 节点:在 master2 节点上安装 Kubernetes 的控制平面组件,包括 kube-apiserver、kube-controller-manager 和 kube-scheduler。你需要将这些组件配置为与 master 节点上的组件相同。可以参考官方文档进行安装和配置。
  3. 配置高可用的 etcd 和 Kubernetes 控制平面:在 master 和 master2 节点上,你需要将 etcd 和控制平面组件配置为高可用模式。这可以通过使用负载均衡器(如 Keepalived)和启用多个实例来实现。确保这些节点之间的通信是可靠的。
  4. 部署 node 节点:在 node 节点上安装 Kubernetes 的工作节点组件,包括 kubelet 和 kube-proxy。使用 kubeadm 工具来简化这个过程


标签:Kubernetes,sudo,apt,集群,安装,节点,搭建
From: https://blog.51cto.com/u_7050893/9242511

相关文章

  • 人人都会Kubernetes(一):告别手写K8s yaml,运维效率提升500%
    1.Kubernetes的普及和重要性随着云计算的迅速发展,容器化技术已成为构建和运行分布式应用程序的关键。而Kubernetes作为容器编排领域的佼佼者,已经成为了云原生应用的标准。它不仅简化了应用程序的部署和管理,而且为开发者和运维人员提供了一套全面的工具集,从容器编排、自动扩缩容、......
  • Vue 3 + TypeScript + Vite + Element-Plus + Router + Axios + Pinia项目搭建(内含完
    Vue3+TypeScript+Vite+Element-Plus+Router+Axios+Pinia项目搭建(内含完整架构)安装Vue3+ts+vitenpminitvite@latest选择y,新建项目名称,选择vue,选择vue-ts下载完成后执行以下命令行cd新建的项目名称npminpmrundev安装Element-Plusnpminstallelement-plus-......
  • k8s搭建部署(超详细)
    简介Kubernetes是Google2014年创建管理的,是Google10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。通过Kubernetes你可以:快速部署应用快速扩展应用无缝对接新的应用功能节省资源,......
  • 部署k8s集群(k8s集群搭建详细实践版)
    1、部署k8s的两种方式:目前生产部署Kubernetes集群主要有两种方式:kubeadmKubeadm是一个K8s部署工具,提供kubeadminit和kubeadmjoin,用于快速部署Kubernetes集群。二进制包从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。本实验采用kubeadm的方式搭......
  • 【云原生 • Kubernetes】k8s功能特性、k8s集群架构介绍
     序言你只管努力,其他交给时间,时间会证明一切。文章标记颜色说明:黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点Kubernetes(k8s)是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下k8s日志查看相关方法希望这篇文章......
  • spark 3.x idea linux远程开发环境搭建
    依赖包jdk8或11都行,不要到jdk17jdk17第一个问题是jdk内部类默认不允许反射,很多配置要改。scala2.13scala2.13版本是为scala3.0版本准备的,改进挺多。可通过scala编程(第四版)学习。hadoop3.2.1因为windowshadoopwinutils当前最新仅仅到3.2.1,所以最好是相......
  • Kubernetes Headless服务
    1、概述HeadlessServices是一种特殊的service,其spec:clusterIP表示为None,这样在实际运行时就不会被分配ClusterIP,也被称为无头服务,通过DNS解析提供服务发现。与普通服务不同的是HeadlessServices不提供负载均衡功能,每个Pod都有唯一的DNS记录,直接映射到其IP地址,适用于有状态应用......
  • K8s核心技术-集群安全机制(概述),(RBAC实现鉴权)
    K8s核心技术-集群安全机制(概述)Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。在Kubernetes集群中,安全是一个非常重要的考虑因素。集群安全机制旨在保护集群中的资源和敏感信息,防止未经授权的访问和恶意行为。集群安全机制包括以下方面:认证(Authe......
  • 从零开始的源码搭建:详解连锁餐饮行业中的点餐小程序开发
    时下,点餐小程序成为了许多餐饮企业引入的一种创新工具,不仅方便了顾客的用餐体验,同时也提高了餐厅的运营效率。本文将详细探讨如何从零开始搭建一个源码,并深入解析连锁餐饮行业中的点餐小程序开发过程。 一、需求分析与规划在开始源码搭建之前,首先需要明确点餐小程序的具体需求。这......
  • Kubernetes Controller(Deployment)-发布应用
    Kubernetes控制器(Deployment)是一个用于发布和管理应用程序的核心组件。它提供了一种声明式的方式来定义应用程序的期望状态,并确保系统自动地将当前状态与期望状态保持一致。通过使用Deployment,您可以定义应用程序的副本数、应用程序部署的容器镜像、应用程序的依赖关系等等。一旦......