热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

k3s安装记录

服务器情况IP配置系统任务172.18.11.2322核、4G内存、硬盘16,30CentOs7.8server1172.18.11.2332核、4G内存、硬盘16,30CentO


服务器情况
IP配置系统任务
172.18.11.2322核、4G内存、硬盘16,30CentOs7.8server1
172.18.11.2332核、4G内存、硬盘16,30CentOs7.8server2
172.18.11.2342核、4G内存、硬盘16,30CentOs7.8worker

 

外部mysql数据库5.7以上


官网要求:


CPU 和 内存

以下是高可用 K3s server 中节点的最低 CPU 和内存要求:


部署规模节点VCPUSRAM
SmallUp to 1024 GB
MediumUp to 10048 GB
LargeUp to 250816 GB
X-LargeUp to 5001632 GB
XX-Large500+3264 GB

#磁盘

集群性能取决于数据库性能。为了确保最佳速度,我们建议始终使用 SSD 磁盘来支持你的 K3s 集群。在云提供商上,您还需要使用允许最大 IOPS 的最小 size。

#网络

你应该考虑增加集群 CIDR 的子网大小,以免 Pod 的 IP 耗尽。你可以通过在启动时向 K3s 服务器传递--cluster-cidr选项来实现。

#数据库

K3s 支持不同的数据库,包括 MySQL、PostgreSQL、MariaDB 和 etcd,以下是运行大型集群所需的数据库资源的大小指南:


部署规模节点VCPUSRAM
SmallUp to 1012 GB
MediumUp to 10028 GB
LargeUp to 250416 GB
X-LargeUp to 500832 GB
XX-Large500+1664 GB
 

 


安装过程
  • server

1.安装server1,其中username、password、mysqlUrl、dataBase都是变量

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="mysql://username:password@tcp(mysqlUrl:3306)/dataBase"

2.查对应的K3s master 信息

命令:

k3s kubectl get nodes

结果: 

[root@new-host-456 ~]# k3s kubectl get nodes
NAME STATUS ROLES AGE VERSION
new-host-456 Ready control-plane,master 2m5s v1.20.4+k3s1

 表示已经有一个名字为”new-host-456“的节点信息,它的角色是master

详细的节点信息

kubectl get node -o wide

[root@new-host-456 ~]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
new-host-456 Ready control-plane,master 57m v1.20.4+k3s1 172.18.11.105 CentOS Linux 7 (Core) 3.10.0-1127.el7.x86_64 containerd://1.4.3-k3s3

测试集群容器的运行状况,执行如下命令

k3s kubectl get pods --all-namespaces

显示结果:

[root@new-host-456 ~]# k3s kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-854c77959c-cswvx 0/1 Running 0 13m
kube-system local-path-provisioner-5ff76fc89d-w5w4d 0/1 CrashLoopBackOff 7 13m
kube-system metrics-server-86cbb8457f-vm5t8 0/1 CrashLoopBackOff 7 13m
kube-system helm-install-traefik-7plt8 0/1 CrashLoopBackOff 7 13m

查看k3s状态

kubectl get all -n kube-system

通过 crictl info 命令可以查看 containerd 当前的配置信息

 crictl info

3.开启防火墙对应端口

K3s Server节点的入站规则:


协议端口描述
TCP6443K3s agent 节点Kubernetes API Server
UDP8472K3s server 和 agent 节点仅对 Flannel VXLAN 需要
TCP10250K3s server 和 agent 节点Kubelet metrics
TCP2379-2380K3s server 节点只有嵌入式 etcd 高可用才需要

启动worker

1.查看server1中的token信息

cat /var/lib/rancher/k3s/server/node-token

2.在worker节点中安装,其中myServer、myNodeToken都是变量

命令如下:

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myServer:6443 K3S_TOKEN=myNodeToken sh -

3.在server中输入命令确认

kubectl get node -o wide

 结果如下,对比之前的结果可以发现多了一个worker

[root@new-host-456 ~]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
new-host-456 Ready control-plane,master 62m v1.20.4+k3s1 172.18.11.105 CentOS Linux 7 (Core) 3.10.0-1127.el7.x86_64 containerd://1.4.3-k3s3
new-host-452 Ready 52s v1.20.4+k3s1 172.18.11.109 CentOS Linux 7 (Core) 3.10.0-1127.el7.x86_64 containerd://1.4.3-k3s3

4.给new-host-452主机worker角色

kubectl label nodes new-host-452 node-role.kubernetes.io/worker=

  • 安装仪表盘

在github中找到最新的版本进行下载

1.查看最新版本,浏览器加载下面链接,如果无法加载或者未响应请翻 墙

https://github.com/kubernetes/dashboard/releases

2.下载推荐的yaml文件,其中version是变量

https://raw.githubusercontent.com/kubernetes/dashboard/version/aio/deploy/recommended.yaml

3.为了便于访问,设置servier中的type,和nodePort

kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 30002
selector:
k8s-app: kubernetes-dashboard

4.在server1中执行命令,我把yaml文件放到data目录中

k3s kubectl create -f /data/recommended.yaml

5.在浏览器中一下地址进行访问,其中serverIp可以是服务器中的任意一个地址,我这里是172.18.11.232,233,234

http://serverIp:30002

6.如下界面,需要输入token

6.输入命令查询令牌,将token贴入浏览器中点击”登录“可以直接查看已部署的k3s信息

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
问题

安装后启动问题,暂时没有影响,服务也启动的。通过命令查看是防火墙没关闭或者未添加端口导致无法访问其他节点

Job for k3s.service failed because the control process exited with error code. See "systemctl status k3s.service" and "journalctl -xe" for details.

 



推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
author-avatar
手机用户2502857067
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有