实用教程丨使用K3s和MySQL运行Rancher 2.4 (3)

部署虚拟机。

az vm create \ --resource-group RancherK3sResourceGroup \ --name K3sNode1 \ --image UbuntuLTS \ --nics nic1 \ --admin-username ubuntu \ --generate-ssh-keys \ --custom-data cloud-init.txt az vm create \ --resource-group RancherK3sResourceGroup \ --name K3sNode2 \ --image UbuntuLTS \ --nics nic2 \ --admin-username ubuntu \ --generate-ssh-keys \ --custom-data cloud-init.txt 检查Kubernetes是否正在运行

作为VM配置的一部分,K3s应该已经安装完毕。让我们连接到第一个VM并确认K3s是否正在运行。

ssh ubuntu@<publicIPofNode1>

两个VM应该都在节点列表上。如果第一次没有成功,那么需要给它几分钟的时间来运行cloud-init脚本。它可能需要花费一些时间来部署Docker和K3s。

sudo k3s kubectl get nodes

输出为:

ubuntu@ip-172-31-60-194:~$ sudo k3s kubectl get nodes NAME STATUS ROLES AGE VERSION ip-172-31-60-194 Ready master 44m v1.17.2+k3s1 ip-172-31-63-88 Ready master 6m8s v1.17.2+k3s1

测试集群Pod的健康状态:

sudo k3s kubectl get pods --all-namespaces 保存并开始使用kubeconfig文件

在连接到我们其中之一的节点的同时,我们需要获取集群的kubeconfig内容。使用以下命令将内容输出到屏幕,然后将其复制到剪贴板。

sudo cat /etc/rancher/k3s/k3s.yaml

将其粘贴到文本编辑器中,以便我们可以进行更改,然后再将其添加到我们正在处理的Azure Cloud Shell会话中。

更新server:使用负载均衡器的外部URL。你可以使用xip.io服务为你提供可解析的完全限定域名。请参见下面的屏幕截图。

例如:

https://rancher..xip.io:6443>

实用教程丨使用K3s和MySQL运行Rancher 2.4

注意:需要将截屏中的示例替换为你的负载均衡器的公共IP。

现在,在/.kube文件夹中创建一个名为config的文件,并将更新的内容粘贴到该文件中。

首先,从node1开始解除连接。

exit

现在创建新的目录并编辑文件,粘贴到已经更新的内容中。

mkdir ~/.kube vi ~/.kube/config

检查kubectl是否正在工作并能否与集群交互。现在Kubectl和Helm已经在Azure Cloud Shell中安装完毕。

kubectl get pods --all-namespaces 安装Rancher

添加Rancher Helm Repo

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest

创建cattle-system命名空间

kubectl create namespace cattle-system

分别安装CustomResourceDefinition资源

kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.12/deploy/manifests/00-crds.yaml

为cert-manager创建命名空间

kubectl create namespace cert-manager

添加Jetstack Helm代码库

helm repo add jetstack https://charts.jetstack.io

更新你的本地Helm chart代码库缓存

helm repo update

安装cert-manager Helm chart

helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --version v0.12.0

检查Cert-Manager是否正在运行,确保所有的pod都正在运行。

kubectl get pods --namespace cert-manager

使用自签名证书安装Rancher。确保你使用Rancher Server的URL设置了主机名。在本文中,我们利用xip.io服务。在Rancher URL中使用Azure 负载均衡器的公共IP地址。

helm install rancher rancher-latest/rancher \ --namespace cattle-system \ --set hostname=rancher.<LoadBalancerPublicIP>.xip.io

等待Rancher部署……

kubectl -n cattle-system rollout status deploy/rancher

三个副本全部roll out之后,请点击Rancher server deployment的URL,如下所示:

实用教程丨使用K3s和MySQL运行Rancher 2.4

清 理

在Azure中创建资源会产生费用,因此请确保在完成操作后删除资源组。

az group delete --name RancherK3sResourceGroup 结 论

在本文中,我们提供了一种快速简便的方法使用Rancher对Azure中的容器化工作负载进行多集群管理。通过使用K3s,我们不仅能够非常快速地启动并运行,而且移除了etcd同时避免了在生产环境中运行它会产生的一些麻烦。通过使用Azure Cloud Shell,身份验证变得十分容易,并且可以“开箱即用”地使用我们所需的所有工具。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjwfs.html