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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 云原生|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搭建和管理企业级网站应用
目录
相关文章
|
10天前
|
Kubernetes Cloud Native 开发者
云原生入门:从Docker到Kubernetes的旅程
【9月更文挑战第16天】 本文将带你进入云原生的世界,从理解Docker容器的基础开始,逐步深入到Kubernetes集群管理。我们将通过简单的代码示例和实际操作,探索这两个关键技术如何协同工作,以实现更高效、灵活的应用程序部署和管理。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供清晰的指导和实用的知识。
44 11
|
2天前
|
Kubernetes 负载均衡 Cloud Native
探索云原生技术:Kubernetes的魔法
【9月更文挑战第24天】 在数字化浪潮中,云原生技术如同现代航海的罗盘,指引着企业航向灵活、高效的未来。本文将深入剖析云原生世界的璀璨明星——Kubernetes,揭秘其如何在容器化的基础上,实现复杂应用的自动化部署、扩展和管理。从概念到实践,我们将一同领略Kubernetes如何简化运维、提高资源利用率,并推动微服务架构的发展。通过实际的代码示例,我们将手把手教你如何在云上构建和运行第一个Kubernetes集群,让理论与实践相结合,开启云原生之旅。
|
9天前
|
Kubernetes Cloud Native Linux
云原生入门:Kubernetes的简易部署与应用
【8月更文挑战第49天】在云原生的世界里,Kubernetes(K8s)是一颗璀璨的星。本文将带你走进K8s的世界,从安装到简单应用,轻松驾驭这个强大的容器编排工具。让我们一起探索云原生的奥秘,解锁新技能!
|
9天前
|
Kubernetes 负载均衡 监控
深入云原生技术:Kubernetes集群部署与管理
【9月更文挑战第17天】在数字化转型的浪潮中,云原生技术以其灵活性和可扩展性成为企业新宠。本文将引导读者探索云原生的核心组件——Kubernetes,通过实际案例分析其部署与管理流程,旨在帮助技术从业者和企业决策者理解如何利用Kubernetes提升应用的可用性和性能。从基础概念到操作实践,我们将一同见证云原生技术的变革力量。
|
8天前
|
Kubernetes Cloud Native Java
探索未来编程新纪元:Quarkus带你秒建高性能Kubernetes原生Java应用,云原生时代的技术狂欢!
Quarkus 是专为 Kubernetes 设计的全栈云原生 Java 框架,凭借其轻量级、快速启动及高效执行特性,在 Java 社区脱颖而出。通过编译时优化与原生镜像支持,Quarkus 提升了应用性能,同时保持了 Java 的熟悉度与灵活性。本文将指导你从创建项目、编写 REST 控制器到构建与部署 Kubernetes 原生镜像的全过程,让你快速上手 Quarkus,体验高效开发与部署的乐趣。
11 0
|
24天前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
160 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
24天前
|
Kubernetes 负载均衡 前端开发
二进制部署Kubernetes 1.23.15版本高可用集群实战
使用二进制文件部署Kubernetes 1.23.15版本高可用集群的详细教程,涵盖了从环境准备到网络插件部署的完整流程。
48 2
二进制部署Kubernetes 1.23.15版本高可用集群实战
|
24天前
|
存储 Kubernetes 测试技术
k8s使用pvc,pv,sc关联ceph集群
文章介绍了如何在Kubernetes中使用PersistentVolumeClaim (PVC)、PersistentVolume (PV) 和StorageClass (SC) 来关联Ceph集群,包括创建Ceph镜像、配置访问密钥、删除默认存储类、编写和应用资源清单、创建资源以及进行访问测试的步骤。同时,还提供了如何使用RBD动态存储类来关联Ceph集群的指南。
45 7
|
24天前
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
26 5
|
24天前
|
Kubernetes 负载均衡 应用服务中间件
kubeadm快速构建K8S1.28.1高可用集群
关于如何使用kubeadm快速构建Kubernetes 1.28.1高可用集群的详细教程。
43 2