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-arm64
docker pull rancher/rancher:v2.5.8-linux-arm64
docker 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。
#查看 namespaces
kubectl 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-system
kubectl delete namespace cattle-system --grace-period=0 --force
kubectl patch namespace cattle-global-data -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
kubectl delete namespace cattle-global-data --grace-period=0 --force
kubectl patch namespace local -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
for 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; done
kubectl delete namespace local --grace-period=0 --force
kubectl get namespaces
#在导入 k8s 集群
解决 k8s 组件 controller-manager 和 scheduler 状态 Unhealthy
组件 controller-manager 和 scheduler 状态 Unhealthy
kubectl get cs
netstat -tpnl
#没有 10251 和 10252 端口
#查看 pod
kubectl get pods --all-namespaces
#查看 kube-scheduler 和 kube-controller-manager 组件配置是否禁用了非平安端口
#将 port= 0 正文掉
# - --port=0
vim /etc/kubernetes/manifests/kube-scheduler.yaml
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
#而后重启 kubelet
systemctl restart kubelet