Bootstrap

K3S+Rancher之在线安装

一、安装K3S(这里第一个节点即是 Server节点 也是 Agent节点)

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb" 

参数解释:
–docker:使用docker,默认是containerd。
–datastore-endpoint 指定外部数据库(格式: mysql://数据库账号:数据库密码@tcp(数据库连接地址:数据库端口)/数据库名称)

二、在K3S集群Server节点服务器查看token令牌凭证

如上一步的机器就是Server节点,上面服务器中执行如下:

cat /var/lib/rancher/k3s/server/node-token

三、向K3S集群中添加新的节点

1.添加Server节点(如不需要添加Server节点可忽略)

这里添加Server节点跟第一个节点安装一样, 需要多加了一个 --token=token令牌凭证 , 这里是上面一步查到的token令牌凭证

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server  --token=mytoken --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb" 

2.添加Agent节点(如不需要添加Agent节点可忽略)

这里添加Agent节点需要指定Server节点地址 跟 token令牌凭证

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh  | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.4.160:6443 K3S_TOKEN=mytoken  sh -

K3S_URL=https://192.168.4.160:6443 表示 K3S集群 server节点的地址, 可以是任意一个主节点地址,如果配置了主节点的负载均衡地址的话,这可以填那个统一的域名地址
K3S_TOKEN=mytoken 表示token令牌凭证,在每个Server节点中都有一份,查看获取(这里是上面一步查到的token令牌凭证)

四、将 kubeconfig 文件拷贝至默认的目录下

K3s 默认的配置文件路径,Helm无法识别,将 /etc/rancher/k3s/k3s.yaml 软连接到 ~/.kube/config,供 helm 使用

mkdir ~/.kube && ln -s /etc/rancher/k3s/k3s.yaml ~/.kube/config

五、安装Rancher

1.安装helm

wget https://pkg.goodrain.com/pkg/helm && chmod +x helm && mv helm /usr/local/bin/

2.添加rancher镜像源

# 添加rancher镜像源
helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable

# 更新源
helm repo update

3.创建命名空间

需要定义一个 Kubernetes Namespace,在 Namespace 中安装由 Chart
创建的资源。这个命名空间的名称为cattle-system:

kubectl create namespace cattle-system

4.安装 CustomResourceDefinition 资源

如果你手动安装了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

5.添加Jetstack Helm仓库

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

6. 更新本地仓库缓存

helm repo update

7.安装 cert-manager

helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.5.1

查看 cert-manager

kubectl get pods --namespace cert-manager

在这里插入图片描述

8.安装Rancher

这里使用Let’s Encrypt证书证书方式直接安装
安装时可设置的选项,可查看官方文档: https://docs.rancher.cn/docs/rancher2.5/installation/install-rancher-on-k8s/chart-options/_index/
如下为对应的命令空间 cattle-system 在上面创建的
如下 registry.cn-hangzhou.aliyuncs.com/rancher/rancher 为对应的rancher镜像
如下 replicas 为设置 Rancher 部署所使用的复制数量(副本数) 默认为 3
如下 ingress.tls.source 设置为 letsEncrypt (表示使用Let’s Encrypt证书)
如果要安装一个特定的 Rancher 版本, 使用–version 标志,例如:–version 2.3.6
对应 etsEncrypt.email 为证书到期通知的邮箱地址
如果你安装的是 alpha 版本,Helm 要求在命令中加入 –devel 选项

helm install rancher rancher-stable/rancher  --namespace cattle-system --set hostname=demo.rancher.com --set replicas=3  --set ingress.tls.source=letsEncrypt  --set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher --set letsEncrypt.email=[email protected]

如果需要指定安装版本,则可以添加 --version v2.5.12 示例如下:

helm install rancher rancher-stable/rancher \
  --version v2.5.12 \
  --namespace cattle-system \
  --set hostname=demo.rancher.com\
  --set ingress.tls.source=letsEncrypt \
  --set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher \
  --set letsEncrypt.email=[email protected]

六、验证 rancher

kubectl -n cattle-system get deploy rancher

七、查看rancher登录密码

kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'

八、最后就可以登录rancher了

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;