1、k8s集群
2、CLI工具(helm,kubectl)
3、Ingress Controller
使用helm repo add
命令添加含有 Rancher Chart 的 Helm Chart 仓库。
请将命令中的<CHART_REPO>
,替换为latest
,stable
或alpha
。更多信息,请查看选择 Rancher 版本来选择最适合你的仓库。
latest
: 建议在尝试新功能时使用。stable
: 建议在生产环境中使用。(推荐)alpha
: 未来版本的实验性预览。注意:不支持从 Alpha 到 Alpha 之间的升级。
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest #国内用户,可以使用放在国内的 Rancher Chart 加速安装 helm repo add rancher-latest http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/latest
我们需要定义一个 Kubernetes Namespace,在 Namespace 中安装由 Chart 创建的资源。这个命名空间的名称为 cattle-system
kubectl create namespace cattle-system
仅在使用 Rancher 生成的证书 ingress.tls.source=rancher
或 Let's Encrypt 颁发的证书 ingress.tls.source=letsEncrypt
时才需要 cert-manager。
# 如果你手动安装了CRD,而不是在Helm安装命令中添加了`--set installCRDs=true`选项,你应该在升级Helm chart之前升级CRD资源。 kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.crds.yaml # 添加 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 \ --create-namespace \ --version v1.5.1
安装完 cert-manager 后,你可以通过检查 cert-manager 命名空间中正在运行的 Pod 来验证它是否已正确部署:
kubectl get pods --namespace cert-manager NAME READY STATUS RESTARTS AGE cert-manager-5c6866597-zw7kh 1/1 Running 0 2m cert-manager-cainjector-577f6d9fd7-tr77l 1/1 Running 0 2m cert-manager-webhook-787858fcdb-nlzsq 1/1 Running 0 2m
默认为 Rancher 生成自签名 CA,用于 cert-manager
颁发访问 Rancher Server 接口的证书。
因为 rancher
是 ingress.tls.source
的默认选项,所以在运行 helm install
命令时我们没有指定 ingress.tls.source
。
hostname
设置为解析到你的负载均衡器的 DNS 记录。Rancher HA 安装成功后,你需要通过这个域名来访问 Rancher Server。replicas
设置为 Rancher 部署所使用的副本数量。默认为 3;如果集群中的节点少于 3 个,你应该相应地减少副本数量。--version
标志,例如:--version 2.3.6
。--devel
选项。helm install rancher rancher-<CHART_REPO>/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set replicas=3
等待 Rancher 运行:
kubectl -n cattle-system rollout status deploy/rancher Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out
查看deploy和POD是否全部启动成功
kubectl -n cattle-system get deploy rancher
使用域名进行访问,需要配置本地hosts
rancher.my.org
访问之后会发现需要密码根据提示找密码如果找不到可以进行重置
KUBECONFIG=./kube_config_rancher-cluster.yml kubectl --kubeconfig $KUBECONFIG -n cattle-system exec $(kubectl --kubeconfig $KUBECONFIG -n cattle-system get pods -l app=rancher | grep '1/1' | head -1 | awk '{ print $1 }') -- reset-password