云原生|kubernetes|rancher-2.6.4安装部署简明手册

简介: 云原生|kubernetes|rancher-2.6.4安装部署简明手册

前言:

rancher是一个比较特殊的开源的kubernetes管理工具,特殊在它是一个名称为k3s的简单kubernetes集群,而该集群是在kubernetes集群内的。

rancher还可以在一个裸的仅具有docker环境的机器部署,然后通过该机器将其它的kubernetes集群纳入rancher管理(简称纳管),或者是通过该机器快速的在其它节点安装一个全新的由rancher纳管的kubernetes集群。

OK,本文将讲述如何在centos7服务器上,在已有的kubernetes-1.23.15集群内,通过docker安装rancher-2.6.4,并调试到可用状态。

一,

环境介绍

已有的kubernetes集群大体情况:

[root@k8s-master ~]# kubectl get no -owide
NAME         STATUS   ROLES                  AGE    VERSION    INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
k8s-master   Ready    control-plane,master   110d   v1.23.15   192.168.123.11   <none>        CentOS Linux 7 (Core)   5.4.228-1.el7.elrepo.x86_64   docker://20.10.7
k8s-node1    Ready    <none>                 110d   v1.23.15   192.168.123.12   <none>        CentOS Linux 7 (Core)   5.4.228-1.el7.elrepo.x86_64   docker://20.10.7
k8s-node2    Ready    <none>                 110d   v1.23.15   192.168.123.13   <none>        CentOS Linux 7 (Core)   5.4.228-1.el7.elrepo.x86_64   docker://20.10.7

 

[root@k8s-master ~]# kubectl get po -A
NAMESPACE     NAME                                 READY   STATUS    RESTARTS       AGE
kube-system   coredns-6d8c4cb4d-8fqvx              1/1     Running   1 (110d ago)   110d
kube-system   coredns-6d8c4cb4d-wwmkf              1/1     Running   1 (110d ago)   110d
kube-system   etcd-k8s-master                      1/1     Running   2 (110d ago)   110d
kube-system   kube-apiserver-k8s-master            1/1     Running   2 (110d ago)   110d
kube-system   kube-controller-manager-k8s-master   1/1     Running   2 (110d ago)   110d
kube-system   kube-flannel-ds-jhnhc                1/1     Running   1 (110d ago)   110d
kube-system   kube-flannel-ds-v59k2                1/1     Running   1 (110d ago)   110d
kube-system   kube-flannel-ds-vlrtj                1/1     Running   1 (110d ago)   110d
kube-system   kube-proxy-2xlzz                     1/1     Running   2 (110d ago)   110d
kube-system   kube-proxy-pndtl                     1/1     Running   2 (110d ago)   110d
kube-system   kube-proxy-z4zdp                     1/1     Running   2 (110d ago)   110d
kube-system   kube-scheduler-k8s-master            1/1     Running   2 (110d ago)   110d

OK,现有的kubernetes集群版本是1.23.15,服务器的IP地址什么的都在上面,该集群是一个比较干净的集群,没有安装什么多的pod。

二,

使用docker安装rancher

镜像下载:

链接:https://pan.baidu.com/s/1DuP4ZGDES9EhTGGPLprZmQ?pwd=ranc
提取码:ranc

 

注:rancher的镜像都是比较大的,主要是两个镜像,一个是server 镜像,一个是客户端镜像,都是1.5G左右大小,如果是使用下面的第一个命令,最好还是先导入镜像在执行docker启动命令

[root@k8s-master ~]# ls -alh  |grep rancher
-rw-r--r--   1 root root 1.4G Apr 23 05:59 rancher-2.6.4.tar.gz
-rw-r--r--   1 root root 1.4G Apr 23 05:59 rancher-agent-2.6.4.tar.gz

docker启动命令为(在master节点,也就是192.168.123.11节点执行此命令):

docker run --privileged -d --name rancher --restart=unless-stopped -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher rancher/rancher:v2.6.4

该命令可以使用阿里云的镜像,如果是阿里云的镜像,命令为:

docker run --privileged -d --name rancher \
--restart=unless-stopped -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher \
-e  CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.6.4" \
registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.6.4

等待大概3分钟即可,然后就可以进入rancher的web界面了:

三,

rancher 的设置

1,获取web界面的密码

[root@k8s-master ~]# docker ps -a |grep rancher
c922a62d3c15   rancher/rancher:v2.6.4                              "entrypoint.sh"          11 minutes ago   Up 11 minutes               0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   rancher
[root@k8s-master ~]# docker logs  c922a  2>&1 | grep "Bootstrap Password:"
2023/04/22 22:09:56 [INFO] Bootstrap Password: rhs4j82d9bmqqqlqwfkprls5pmx6wmdqnwvjqgcmvkfklsdz9v5bwx

2,登陆rancher,并修改上面获取到的随机密码:

只打第二个√

3,rancher 的初始界面

可以看到,现在是有一个名为local的k3s集群,版本还挺高,是1.22.7,状态是active,但这些不是重要的,重要的是,我们需要导入已存在的kubernetes-1.23.15

4,导入已存在的现有集群

注:rancher-agent-2.6.4.tar.gz 三个节点都应该导入

这个命令输出大体如下:

[root@k8s-master ~]# curl --insecure -sfL https://192.168.123.11/v3/import/ll2gkc5v4mwlxllw8dgld7zfkp2sdclxspmg8hvrkkxksf2zwzr8xg_c-m-vrmw68ql.yaml | kubectl apply -f -
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver unchanged
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master unchanged
namespace/cattle-system unchanged
serviceaccount/cattle unchanged
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding unchanged
secret/cattle-credentials-c4a8a0f created
clusterrole.rbac.authorization.k8s.io/cattle-admin unchanged
Warning: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use "kubernetes.io/os" instead
deployment.apps/cattle-cluster-agent created
service/cattle-cluster-agent unchanged

可以看到确实有三个节点:

OK,我们现在已经初步的导入了已存在的集群,但,现在很多功能还是用不了的,因为,一些插件还没有部署:

[root@k8s-master ~]# kubectl get po -A -owide
NAMESPACE             NAME                                   READY   STATUS             RESTARTS       AGE    IP               NODE         NOMINATED NODE   READINESS GATES
cattle-fleet-system   fleet-agent-6b98dfb776-nqw5j           0/1     ImagePullBackOff   0              17m    10.244.2.4       k8s-node2    <none>           <none>
cattle-system         cattle-cluster-agent-8f9c97c59-bq57h   1/1     Running            0              5m3s   10.244.2.5       k8s-node2    <none>           <none>
cattle-system         cattle-cluster-agent-8f9c97c59-hxwfq   1/1     Running            0              17m    10.244.1.4       k8s-node1    <none>           <none>
kube-system           coredns-6d8c4cb4d-8fqvx                1/1     Running            1 (110d ago)   110d   10.244.0.4       k8s-master   <none>           <none>

最终应该是四个running:

[root@k8s-master ~]# kubectl get po -A -owide
NAMESPACE             NAME                                   READY   STATUS    RESTARTS       AGE    IP               NODE         NOMINATED NODE   READINESS GATES
cattle-fleet-system   fleet-agent-55b948fdd7-lvrkx           1/1     Running   0              19m    10.244.1.7       k8s-node1    <none>           <none>
cattle-system         cattle-cluster-agent-8f9c97c59-bq57h   1/1     Running   0              26m    10.244.2.5       k8s-node2    <none>           <none>
cattle-system         cattle-cluster-agent-8f9c97c59-hxwfq   1/1     Running   0              38m    10.244.1.4       k8s-node1    <none>           <none>
cattle-system         dashboard-shell-xkpx6                  2/2     Running   0              7s     10.244.2.9       k8s-node2    <none>           <none>

关于rancher的UI界面汉化:

rancher-2.6的UI界面是选择语言的,可以方便的切换到中文:

四,

基于rancher创建全新集群

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
12天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
76 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
24天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
15天前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
2月前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
2月前
|
敏捷开发 Kubernetes Cloud Native
阿里云云原生技术为企业提供了一套高效、灵活的解决方案,支持跨云部署与管理
在多云环境中,阿里云云原生技术为企业提供了一套高效、灵活的解决方案,支持跨云部署与管理。通过容器化、服务网格等技术,实现了应用的一致性与可移植性,简化了多云环境下的资源管理和服务治理,帮助企业应对复杂的云环境挑战,加速数字化转型。
52 5
|
2月前
|
Kubernetes Cloud Native 云计算
云原生入门:Kubernetes 和容器化基础
在这篇文章中,我们将一起揭开云原生技术的神秘面纱。通过简单易懂的语言,我们将探索如何利用Kubernetes和容器化技术简化应用的部署和管理。无论你是初学者还是有一定经验的开发者,本文都将为你提供一条清晰的道路,帮助你理解和运用这些强大的工具。让我们从基础开始,逐步深入了解,最终能够自信地使用这些技术来优化我们的工作流程。
|
Kubernetes 开发者 微服务
简化Kubernetes应用部署工具-Helm之Hook
本文讲的是简化Kubernetes应用部署工具-Helm之Hook【编者的话】微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。
2569 0
|
9天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
7天前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
44 12
|
12天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
29 2

热门文章

最新文章