Rancher部署报错,求一份完整的Rancher部署教程

Viewed 5

跟着某C的教程搭建部署rancher,出现了这个问题,一直解决不了,求一份完整的rancher搭建教程

系统:centos7.9

prepare base dir is set to /home/server/registry_images/harbor
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown.
ERRO[0004] error waiting for container: context canceled 
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get http://192.168.190.22:5000/v2/: dial tcp 192.168.190.22:5000: connect: connection refused
Error: harbor Installation failed,Please check. 
1 Answers

先解决你的问题

我们来看关键日志:
OCI runtime create failed: write /proc/self/attr/keycreate: permission denied
这是因为SELinux阻止了容器的操作,导致无法写入/proc的相关文件

解决方法直接关掉SELinux就好了:
临时关闭:sudo setenforce 0
永久关闭:

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sudo reboot  # 重启

Rancher完整安装教程

Rancher 支持多种部署方式:

方式 场景 说明
Docker 单节点 测试/开发环境 快速启动,但不支持高可用
K3s 嵌入式 轻量级生产环境 内置 K3S,资源占用低
RKE/RKE2 集群 生产环境(高可用) 基于 Kubernetes 高可用部署
Helm 安装 自定义 Kubernetes 集群 灵活对接已有 K8s 集群

这里采用轻量的K3S来部署

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

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

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

安装Helm包管理器

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

添加Rancher镜像源

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

# 更新源
helm repo update

为Rancher创建命名空间

需要定义一个 Kubernetes Namespace,在 Namespace 中安装由 Chart

创建的资源。这个命名空间的名称为cattle-system:

kubectl create namespace cattle-system

安装cert-manager

kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.12.3/cert-manager.crds.yaml

#添加JetStack Helm仓库
helm repo add jetstack https://charts.jetstack.io

#更新本地仓库缓存
helm repo update

#安装 cert-manager
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.12.3

#查看 cert-manager
kubectl get pods --namespace cert-manager

安装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 例如:--set replicas=3

如下 ingress.tls.source 设置为 letsEncrypt (表示使用Let’s Encrypt证书)

如果要安装一个特定的 Rancher 版本, 使用--version 标志,例如:--version 2.3.6

对应 letsEncrypt.email 为证书到期通知的邮箱地址

如果你安装的是 alpha 版本,Helm 要求在命令中加入 --devel 选项

helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=域名\
  --set ingress.tls.source=letsEncrypt \
  --set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher \
  --set letsEncrypt.email=878639947@qq.com

验证安装

#验证安装状态
kubectl -n cattle-system rollout status deploy/rancher

kubectl -n cattle-system get deploy rancher

#查看登录密码
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'