文章目录
实践环境
Kubernetes
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:58:53Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:51:04Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
前期准备
Kubernetes
本文基于已有的 Kubernetes 集群进行,如需快速搭建 Kubernetes 集群,可以参考之前的文章:
基于 kubeadm 搭建 v1.18.6 的 Kubernetes 可以使用 https://hub.docker.com/u/teslacn 仓库中的镜像。
可以在 kubeadm 配置imageRepository: teslacn
Helm 3
Helm 3 与 Helm 2 存在一定差异,本文基于 Helm 3.2.4 进行。
根据自己环境的架构在 官方版本发布页 选择对应的下载链接
GitHub Release 下载可能较慢,此处直接提供本人的文件:
https://wuweijie.oss-cn-shenzhen.aliyuncs.com/resources/helm-v3.2.4-linux-amd64.tar.gz
解压后得到一个文件夹,将里面的可执行文件挪到 $PATH
下面,例如 /usr/local/bin
,然后试试:
开始搭建 Rancher
添加 Helm 仓库
选择版本对应仓库:
版本 | 添加仓库命令 | 说明 |
---|---|---|
latest | helm repo add rancher-latest https://releases.rancher.com/server-charts/latest | 最新版 Rancher。 |
stable | helm repo add rancher-stable https://releases.rancher.com/server-charts/stable | 生产环境推荐。稳定的、相对较老的版本。 |
alpha | helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha | 不适用于生产环境。Alpha 版本可以提前预览功能。 |
本次环境用于个人开发,此处选择最新版本。
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
创建 Namespace
官方建议使用 cattle-system
作为 Namespace:
kubectl create namespace cattle-system
SSL 相关
由于不是正式环境,此处直接使用默认配置,基于 cert-manager:
# Install the CustomResourceDefinition resources separately
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.0/cert-manager.crds.yaml
# **Important:**
# If you are running Kubernetes v1.15 or below, you
# will need to add the `--validate=false` flag to your
# kubectl apply command, or else you will receive a
# validation error relating to the
# x-kubernetes-preserve-unknown-fields field in
# cert-manager’s CustomResourceDefinition resources.
# This is a benign error and occurs due to the way kubectl
# performs resource validation.
# Create the namespace for cert-manager
kubectl create namespace cert-manager
# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io
# Update your local Helm chart repository cache
helm repo update
# Install the cert-manager Helm chart
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--version v0.15.0
如果当前网络条件 pull cert-manager 相关的 image 比较困难,可以使用 teslacn 的仓库,目前提供了 v0.15.0
。
docker pull teslacn/cert-manager-cainjector:v0.15.0
docker pull teslacn/cert-manager-controller:v0.15.0
docker pull teslacn/cert-manager-webhook:v0.15.0
安装完后可以看到:
Helm 安装 Rancher
根据之前选择的 Rancher 版本,指定 Namespace 与 Hostname,安装 Rancher:
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.local.wwj.icu
如果后续需要升级,建议记下 --set
所用到的属性。
此时查看 pods 可以看到正在创建 Rancher 的 Pod,稍等一会就进入 Running 状态了。
访问 Rancher
此时 Rancher 可以通过 IP 直接访问。
但直接 IP 的方式并不是很方便,如何借助 ingress-nginx 提供服务可以参考文章
Kubernetes 部署 ingress-nginx。