当前位置: 首页 > news >正文

Kubernetes 入门篇之 Node 安装与部署

上篇记录了Master节点的安装与部署,本篇记录一下node的安装与部署。

1. 基础环境配置

  1. 关闭防火墙与交换分区(swap),关闭selinux,配置yum源参考上篇;
  2. 启用 IPv4 数据包转发 和 iptables 网络过滤参考上篇;
  3. 安装 containerdruncgo 也参考上篇, 也可以将编译好的二进制可执行文件直接复制到当前节点。
  4. 修改主机名,执行 hostnamectl set-hostname k8s-node1, 因为各节点之间的主机名和mac地址必须唯一。

2. 安装

2.1 安装kubeadm, kubelet

node 节点不需要安装kubectl

yum install -y kubeadm kubelet --disableexclude=kubernetes

启动 kubelet 服务
systemctl enable --now kubelet

2.2 加入集群

通过kubeadm join 命令即可将node节点加入集群

kubeadm join ip:6443 --token xxxxxx --discovery-token-ca-cert-hash sha256:xxxxxxxx

ipmaster节点的IP
tokendiscovery-token-ca-cert-hash 都来自master,在master安装好后会有这个。

如果安装好后没有记住可以在master节点使用下面命令获取:

  1. 使用kubeadm命令直接获取(推荐)
kubeadm token create --print-join-command
输出:
kubeadm join xx.xx.xx.xx:6443 --token o05h6j.8a7xnfw56jenhr4f --discovery-token-ca-cert-hash sha256:84d5a6181b2aa49909746a7f6ef955026cce1aa03f98a9985cc7021183a08c6

2. 手动生成

列出所有Token
kubeadm token list , 若没有有效Token,创建新Token

获取Discovery Token CA Cert Hash
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | \
openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | \
awk '{print $2}'

Token默认有效期为24小时,可通过--ttl参数调整,如kubeadm token create --ttl 0设置永不过期(不推荐生产环境使用)。

加入成功:

[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

在将Node成功加入集群后,可以在master上通过kubectl get nodes 确认新的node加入了集群:

kubectl get nodes
NAME                    STATUS     ROLES           AGE     VERSION
localhost.localdomain   NotReady   <none>          36m     v1.28.2
node                    NotReady   control-plane   4d12h   v1.28.2

3. 其他

查看容器版本命令:

查看容器镜像标签:

kubectl get pods -n kube-system -o jsonpath='{.items[*].spec.containers[*].image}'

查看某个组件,如etcd的标签

kubectl get pods -n kube-system -l component=etcd -o jsonpath='{.items[*].spec.containers[*].image}'

根据使用的网络插件(如 Calico、Flannel、Cilium)查看其部署的镜像标签:

kubectl get pods -n kube-system -l <network-plugin-selector> -o jsonpath='{.items[*].spec.containers[*].image}'
http://www.dtcms.com/a/107567.html

相关文章:

  • 视频分析设备平台EasyCVR视频结构化AI智能分析:筑牢校园阳光考场远程监控网
  • 基于 Cesium.js 的交互式绘图工具库
  • IO 端口与 IO 内存
  • 电流与电压的守护者
  • 3. 矩阵置零
  • Vue + Axios + Mock.js 全链路实操:从封装到数据模拟的深度解析
  • 两种方法证明r(A+B)<=r(A,B)<=r(A)+r(B)
  • 【一起来学kubernetes】33、Hpa使用详解
  • 常见操作系统特点及区别对比
  • 双翌闪耀2025上海机器视觉展,以创新技术赋能产业未来
  • C++中的继承
  • P2782 友好城市
  • 私有云(三)双节点部署openstack
  • 自学-C语言-基础-数组、函数、指针、结构体和共同体、文件
  • 111.在 Vue 3 中使用 OpenLayers 实现动态曲线流动图(类似 ECharts 迁徙状态)
  • 从代码学习深度学习 - 残差网络(ResNet)PyTorch版
  • MSVC编译遇到C2059、C2143、C2059、C2365、C2059等错误的解决方案
  • 打开pycharm显示编制索引后卡死
  • C++软件开发架构
  • llm-universe 踩坑记录
  • 数值与字典解决方案第二十五讲:数组的合并拆分及筛选
  • GNSS信号模拟器、导航信号模拟器、导航模拟信号源介绍
  • 如何解决 PyQt5 中的 `xcb` 插件加载错误
  • vue修饰符
  • ns-3使用animation出现文件小、无时间、打开后只有拓扑没有内容
  • 《静默与轰鸣的对决》
  • 什么是向量搜索Vector Search?
  • work03_1 实现一个简单的计算器,能够处理加法、减法、乘法和除法
  • 四、Bug篇+用例篇
  • Docker学习--容器操作相关命令--docker inspect 命令