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 工具来简化这个过程