本文将介绍在高可用K3s Kubernetes集群上安装Rancher 2.4的过程并针对MySQL利用Microsoft Azure数据库的优势,该数据库消除了对etcd的依赖,并为我们提供了Azure在这一服务中的所有其他功能。
在本文中,你将了解到只使用Azure Cloud Shell如何部署基础架构以支持此方式。使用Cloud Shell的好处是零基础架构即可上手——仅需访问Azure门户即可。并且许多所需的CLI功能已经预先安装好,从而大大减少了完成安装所需的工作量。
你部署完成基础架构后,你将了解如何使用K3s在一个Kubernetes集群上部署Rancher 2.4。在Rancher 2.4中,我们已经添加了新的部署支持模式:在两个节点上的Rancher 2.4运行带有外部数据库的K3s。使用这一模式的好处之一是我们可以将节点视为短暂的。由于K3s支持外部MySQL数据库,因此我们可以做到这一点。
K3s是一个轻量的Kubernetes发行版,它比Rancher Kubernetes Engine(RKE)更先进,并且具有以下增强功能:
嵌入式SQLite数据库替换了etcd,成为默认的数据存储,它还支持外部数据存储,例如PostgreSQL、MySQL和etcd。(本文中我们将使用MySQL)
我们添加了简单但功能强大的“开箱即用”的功能,例如本地存储程序、服务负载均衡器、Helm controller以及Traefik controller。
所有Kubernetes控制平面组件的操作都封装在单个二进制文件和进程中。这使K3s可以自动化和管理复杂的集群操作,例如分发证书。
我们移除了in-tree云提供程序和存储插件
我们已将外部依赖性降到最低(仅需要现代内核和cgroup挂载)。K3s软件包需要依赖项,包括:Containerd、Flannel、CoreDNS和主机实用程序(iptables、socat等)
如果你是第一次尝试使用Rancher,可以考虑这种部署模式。这很有可能在之后成为部署Rancher的首选方法,提前了解总是好的——尤其是在Azure运行数据中心时。
前期准备为了完成以下内容,你需要提前准备:
Microsoft账号:Microsoft的登录凭证。可以是你的Azure Active Directory凭据,也可以是普通的Outlook账户。
访问一个Azure订阅:可以是免费试用/随用随付/也可以是企业订阅(https://azure.microsoft.com/en-us/free/ )
访问Azure门户( )
架 构以下图片展示了将要在Azure中创建的资源:
这两个节点将放在单个子网(subnet)中的自己的vNet上。这些将在Azure负载平衡器的前面。MySQL数据库将从外部的vNet提供,vNet由Microsoft托管。然后通过连接到子网的单个网络安全组(NSG)保护节点。
Azure Cloud Shell我们将只使用Azure Cloud Shell来配置在Azure中的K3s上运行Rancher所需的所有元素。在门户中,单击右上角的“Azure Cloud Shell”按钮。该图标中有大于符号和下划线。
Azure网络 资源组在Azure中,所有资源需要归属于某个资源组,所以我们得先创建资源组。我们将设置默认区域和资源组,以确保我们所有的资源都会被创建到正确的位置。
请注意:我使用eastus2作为我的区域,但你可以根据自身需要进行更改。
az group create -l eastus2 -n RancherK3sResourceGroup az configure --defaults location=eastus2 group=RancherK3sResourceGroup Vnet、公共IP和网络安全组(NSG)这些命令完成后,将在资源组内部创建网络组件。其中包括带有默认子网的vNet,我们稍后将创建的两个虚拟机(VM)的两个公共IP,以及一个网络安全组(NSG)。
az network vnet create --resource-group RancherK3sResourceGroup --name RancherK3sVnet --subnet-name RancherK3sSubnet az network public-ip create --resource-group RancherK3sResourceGroup --name RancherK3sPublicIP1 --sku standard az network public-ip create --resource-group RancherK3sResourceGroup --name RancherK3sPublicIP2 --sku standard az network nsg create --resource-group RancherK3sResourceGroup --name RancherK3sNSG1 az network nsg rule create -g RancherK3sResourceGroup --nsg-name RancherK3sNSG1 -n NsgRuleSSH --priority 100 \ --source-address-prefixes '*' --source-port-ranges '*' \ --destination-address-prefixes '*' --destination-port-ranges 22 --access Allow \ --protocol Tcp --description "Allow SSH Access to all VMS." Azure负载均衡器我们在两个VM上安装K3s之后,我们需要一个负载均衡器来提供弹性并防止VM故障。
首先,为负载均衡器创建一个公共IP
az network public-ip create --resource-group RancherK3sResourceGroup --name RancherLBPublicIP --sku standard