Rancher介绍

Rancher 2.0-2.4版本 是一个开源的企业级容器治理平台。通过Rancher,企业再也不用本人应用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中应用的治理Docker和Kubernetes的全栈化容器部署与治理平台。

Rancher 2.5版本 是为应用容器的公司打造的容器治理平台。Rancher 简化了应用 Kubernetes 的流程,开发者能够随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需要标准,赋能 DevOps 团队。

Rancher长处

  • 基础设施编排
  • 容器编排与调度
  • 利用商店
  • 企业级权限治理
我应用Rancher次要目标: 它的k8s集群治理,监控状态治理,和界面操作都比Dashboard插件弱小

arm架构装置Rancher

#查看Linux内核版本uname -r 4.18.0-80.7.2.el7.aarch64#或者应用 uname -a#rancher的官网镜像默认是: rancher/rancher:latest 是x86架构的#arm64架构应用: rancher/rancher:v2.5.8-linux-arm64docker pull rancher/rancher:v2.5.8-linux-arm64docker pull rancher/rancher:v2.5.5-linux-arm64#在k8s的Master上执行,启动Rancher#如果您应用的 Rancher 2.5.x 及更新版本,须要开启特权模式装置 Rancher,请执行以下命令:docker run -d --privileged --restart=unless-stopped \  -p 80:80 -p 443:443 \  --privileged \  rancher/rancher:v2.5.8-linux-arm64

导入k8s集群

稍等一会,等启动胜利后
浏览器拜访:https://192.168.0.5/

设置admin的明码,如: admin
右下方抉择语言: 简体中文

增加集群---应用现有的 Kubernetes 集群--导入
输出集群名称:k8s-beyond

执行导入命令,报错: 证书有效
kubectl apply -f https://192.168.0.5/v3/import...

抉择最初一个导入命令,绕过证书查看
curl --insecure -sfL https://192.168.0.5/v3/import... | kubectl apply -f -

报错: Error: no objects passed to apply
在执行一次命令就好了

删除k8s集群

我因Rancher换一台机器部署了,删除k8s集群监控服务:删除Rancher依赖的namespace(cattle-system),状态始终是Terminating。

#查看namespaceskubectl get namespaces#删除curl --insecure -sfL https://192.168.0.5/v3/import/csn5rw4m8t7ns5l5wmgz7srnkstwbrcfqxcxsrwss8s6ztz2jcthl2.yaml | kubectl delete -f -#namespace(cattle-system)没有删除掉,执行以下命令kubectl patch namespace cattle-system -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-systemkubectl delete namespace cattle-system --grace-period=0 --forcekubectl patch namespace cattle-global-data -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-systemkubectl delete namespace cattle-global-data --grace-period=0 --forcekubectl patch namespace local -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-systemfor resource in `kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -o name -n local`; do kubectl patch $resource -p '{"metadata": {"finalizers": []}}' --type='merge' -n local; donekubectl delete namespace local --grace-period=0 --forcekubectl get namespaces#在导入k8s集群

解决k8s组件controller-manager 和scheduler状态 Unhealthy

组件controller-manager 和scheduler状态 Unhealthy

kubectl get csnetstat -tpnl#没有10251和10252端口#查看podkubectl get pods --all-namespaces#查看kube-scheduler和kube-controller-manager组件配置是否禁用了非平安端口#将port=0正文掉#    - --port=0vim /etc/kubernetes/manifests/kube-scheduler.yamlvim /etc/kubernetes/manifests/kube-controller-manager.yaml#而后重启kubeletsystemctl restart kubelet