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

Debian安装k8s记录

Debian安装k8s记录

  • 在master和node上安装kube
  • 安装master
  • 安装node
  • 遇到的问题汇总
    • 1、kubelet.service报错 failed to pull image "registry.k8s.io/pause:3.6"
    • 2、node重启后报错,failed: open /run/flannel/subnet.env: no such file or directory
    • 3、因为是在本地练习,所以没有太多node使用,将master作为pod的调度节点

在master和node上安装kube

apt-get update && apt-get install -y apt-transport-https
# 添加key
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg > /etc/apt//etc/apt/trusted.gpg.d/aliyun-kubernetes.asc# 添加软件源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF# 执行更新并安装
apt-get update
apt-get install -y kubelet kubeadm kubectl

安装master

cat <<EOF >/etc/default/kubelet
KUBELET_EXTRA_ARGS="--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6"
EOF# 关闭swap
sudo swapoff -a# 初始化
sudo kubeadm init --kubernetes-version v1.27.4 --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address 0.0.0.0 --service-cidr 10.1.0.0/16 --pod-network-cidr 10.2.0.0/16# 安装pod网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

这时,master应该就安装完成了

安装node

sudo kubeadm join 192.168.8.5:6443 --token XXXXXX.XXXXXXXXXXXXXXXX --discovery-token-ca-cert-hash sha256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

其中token和hash来自master初始化最后的输出,地址和端口是master的apiserver,也可以在master节点通过下述命令获得完整命令

kubeadm token create --print-join-command

遇到的问题汇总

1、kubelet.service报错 failed to pull image “registry.k8s.io/pause:3.6”

# 生成containerd默认配置
containerd config default  > /etc/containerd/config.toml#修改/etc/containerd/config.toml
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"# 重启containerd.service、kubelet.service
systemctl daemon-reload
systemctl restart containerd.service
systemctl restart kubelet.service

2、node重启后报错,failed: open /run/flannel/subnet.env: no such file or directory

添加文件/run/flannel/subnet.env,添加一下内容,注意网络与kubectl init中的一致

FLANNEL_NETWORK=10.2.0.0/16
FLANNEL_SUBNET=10.2.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

目前了解到的方法只有手动添加,不知道怎么自动化生成

3、因为是在本地练习,所以没有太多node使用,将master作为pod的调度节点

在网上搜索,很多人都写用命令

kubectl taint node <Master节点名称> node-role.kubernetes.io/master-

其实这个命令已经废弃了,改用

kubectl taint node <Master节点名称> node-role.kubernetes.io/control-plane-

恢复Master Only状态,使用

kubectl taint node <Master节点名称> node-role.kubernetes.io/control-plane:NoSchedule

遇到问题,还是官方文档靠谱 https://kubernetes.io/zh-cn/docs/home/

相关文章:

  • Jenkins分布式实现: 构建弹性和可扩展的CI/CD环境!
  • 基于OpenAI的Whisper构建的高效语音识别模型:faster-whisper
  • 【教程】Typecho Joe主题开启并修复壁纸相册不显示问题
  • mongodb基本命令操作
  • OpenHarmony之消息机制实现
  • 将PPT4页并排成1页
  • 全志F1C100s Linux 系统编译出错:不能连接 github
  • 计算机基础面试题 |11.精选计算机基础面试题
  • C语言实验4:指针
  • VUE--保留小数(过滤器)
  • 在Go语言中处理HTTP请求中的Cookie
  • Huggy Lingo: 利用机器学习改进 Hugging Face Hub 上的语言元数据
  • 第11章 GUI Page462~476 步骤二十三 步骤二十四 Undo/Redo ②“添加操作”支持“Undo/Redo”
  • Android开发中“真正”的仓库模式
  • vue项目报错RangeError: Maximum call stack size exceeded
  • 网络传输文件的问题
  • 【mysql】环境安装、服务启动、密码设置
  • gops —— Go 程序诊断分析工具
  • Java小白进阶笔记(3)-初级面向对象
  • magento2项目上线注意事项
  • PHP 的 SAPI 是个什么东西
  • PV统计优化设计
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Terraform入门 - 3. 变更基础设施
  • 第2章 网络文档
  • 飞驰在Mesos的涡轮引擎上
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 构建二叉树进行数值数组的去重及优化
  • 关于List、List?、ListObject的区别
  • 强力优化Rancher k8s中国区的使用体验
  • 转载:[译] 内容加速黑科技趣谈
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • mysql面试题分组并合并列
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #WEB前端(HTML属性)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (23)Linux的软硬连接
  • (30)数组元素和与数字和的绝对差
  • (C#)获取字符编码的类
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (转)【Hibernate总结系列】使用举例
  • (转载)虚函数剖析
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .md即markdown文件的基本常用编写语法
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET Remoting学习笔记(三)信道
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)