首页 > 编程语言 >5、Node部署

5、Node部署

时间:2023-03-16 10:44:53浏览次数:49  
标签:Node kubernetes etc 部署 -- token kubeadm cni

1、kubeadm安装

参考文章:
3、kubeadm安装
https://www.cnblogs.com/ygbh/p/17221317.html

2、将node节点加入master集群

kubeadm join 192.168.10.26:6443 --token chsuee.cxw3s9mdyodk8ehk \
        --discovery-token-ca-cert-hash sha256:5cd4bd62fa2c5bd83eb50c40dd941d3fdcd31edc9b7a169d3442ee2da6363218

[root@master1 ~]# kubectl get nodes
NAME      STATUS     ROLES           AGE     VERSION
master1   NotReady   control-plane   5m15s   v1.26.2
master2   NotReady   <none>          3m50s   v1.26.2
master3   NotReady   <none>          3m44s   v1.26.2

3、CNI介绍

CNI是Container Network Interface的是一个标准的,通用的接口。CNI的工作是从容器管理系统
处获取运行时信息,包括network namespace的路径,容器ID以及network interface name,再从容
器网络的配置文件中加载网络配置信息,再将这些信息传递给对应的插件,由插件进行具体的网络配置工作,
并将配置的结果再返回到容器管理系统中。
 CNI插件是可执行文件,会被kubelet调用。
 启动参数
 --network-plugin 指定柔情网络的接口类型 cni
 --cni-conf-dir 指定networkconfig配置,默认路径是:/etc/cni/net.d,
 --cni-bin-dir 指定plugin可执行文件路径,默认路径是:/opt/cni/bin;
 它只在两种场景中使用:创建容器和删除容器

4、检查集群DNS是否解析正常

[root@master1 ~]# kubectl run curl --image=radial/busyboxplus:curl -it
If you don't see a command prompt, try pressing enter.
[ root@curl:/ ]$ nslookup kubernetes.default
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes.default
Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local

# 显示这样子,表示DNS解析正常

5、集群的重置

如果因为特殊因素导致,集群创建失败,我们可以通过两条命令实现环境的快速还原

5.1、Master重置清空方法

# Master节点重置
kubeadm reset;
rm -rf /etc/kubernetes;
rm -rf ~/.kube ;
rm -rf /etc/cni/; # 清除容器的网络接口
systemctl restart containerd.service

5.2、Node重置清空方法

rm -rf /etc/cni/net.d;
kubeadm reset;

# 需要重启一下这个服务,避免网络插件有问题
systemctl restart containerd.service

6、Node加入集群token过期处理方法

6.1、查看当前token信息

kubeadm token list

6.2、手动生成token

# 生成token
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
# 使用token加入集群 kubeadm join 192.168.10.26:6443 --token 0cz1ut.m76ulyo3r3mc2c4g --discovery-token-ca-cert-hash sha256:【填写生成的token值】

6.3、自动生成加入集群的命令

kubeadm token create --print-join-command

7、Node节点从集群中删除

7.1、master执行-移除节点

kubectl drain node2 --delete-local-data --force --ignore-daemonsets
kubectl delete node node2

7.2、node节点执行-移除历史记录文件

kubeadm reset
systemctl stop kubelet docker
rm -rf /etc/kubernetes/

8、错误处理

8.1、NotReady

Mar 14 20:45:20 master1 kubelet[17332]: E0314 20:45:20.965419   17332 kubelet.go:2475] "Container runtime network not ready" 
networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized" # 原因:没有安装网络插件如:需要安装flannel、calico等 # 解决方法: kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml # 如果重启一下这个服务 systemctl restart containerd.service

8.2、cni0和flannel.1网段不一致的问题

报错:failed (add): failed to delegate add: failed to set bridge 

现象:容器一直在创建中,无法创建,检查是节点flannel网关的问题

解除方法:
ifconfig cni0 down
ip link delete cni0
# 系统会自动创建


注意:cni0和flannel.1网口必须是同一个网段,否则网关有问题

cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.244.3.1  netmask 255.255.255.0  broadcast 10.244.3.255
        
flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.244.3.0  netmask 255.255.255.255  broadcast 0.0.0.0

标签:Node,kubernetes,etc,部署,--,token,kubeadm,cni
From: https://www.cnblogs.com/ygbh/p/17221415.html

相关文章

  • docker 部署 postgres
    1.打开dockerhub查找postgres版本 地址https://registry.hub.docker.com/_/postgres/tags   2.复制需要的版本dockerpullpostgres:alpine3.17复制需......
  • 宝塔部署history模式的vue3项目
    前置条件:服务器、域名、备案、项目首先进入宝塔点击左侧的网站,然后点击添加站点 填入域名,点击提交,宝塔会自动帮忙创建一个根目录到该根目录,把打包后的vue项目放......
  • Node向后端发送请求响应请求
    //导入模块(请求是http)//Node.js//理解:Node.js和jdk差不多是一样的道理,是基于coogle的v8引擎//在控制台进行打印node运行方式:node文件名称nodeHello.jsconsthttp......
  • Node向Mysql数据发送请求响应请求
    //导入mysql依赖(想要先安装依赖,在终端输入:npminstallmysql)varmysql=require('mysql');//配置mysql的数据信息varmy=mysql.createConnection({//mysql连接......
  • npm和node.js安装与环境配置
    nodejs和npm的关系node.js是javascript的一种运行环境,是对GoogleV8引擎进行的封装,是一个服务器端的javascript的解释器。npm是nodejs的包管理器(packagemanager)。nodej......
  • Node.js 微服务 All In One
    Node.js微服务AllInOneNest.js微服务(......
  • 【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
    问题描述使用AzureKubernetes服务(AKS),可以通过kubectl连接pod中查看日志,但是如何来查看节点的系统日志呢?如是否有ubuntu系统升级的记录? 问题解答是的,可以进入AKS......
  • 图神经网络-图游走算法核心代码SkipGram、Node2Vec实现
    图神经网络-图游走算法核心代码SkipGram、Node2Vec实现1.DeepWalk采样算法对于给定的节点,DeepWalk会等概率的选取下一个相邻节点加入路径,直至达到最大路径长度,或者没......
  • 分子动力学NAMD部署文档
    高性能计算实战——NAMD概述NAMD(NAnoscaleMolecularDynamics)是用于在大规模并行计算机上快速模拟大分子体系的并行分子动力学代码。目前NAMD还支持在GPU加速器上的......
  • MySQL部署后配置
    默认情况下,mysql是运行在127.0.0.1上,此时是无法远程被访问的root@JumpServer-DB-P01:/opt#netstat-tunlp|grep3306tcp00127.0.0.1:330600.0.......