K8S[Kubernetes]快速安装组件(Kubectl Kubeadam Kubeinit)

news2024/10/6 2:02:38

文章目录

  • 配置K8S主从集群前置准备操作
  • 一:主节点操作 查看主机域名->编辑域名
    • 1.1 编辑HOST 从节点也做相应操作
    • 1.2 从节点操作 查看从节点102域名->编辑域名
    • 1.3 从节点操作 查看从节点103域名->编辑域名
  • 二:安装自动填充,虚拟机默认没有
  • 三:关闭防火墙
  • 四:关闭交换空间
  • 五:禁用 Selinux
  • 六: 允许 ip tables 检查桥接流量
  • 七:设置K8S相关系统参数
    • 7.1:配置Docker 阿里源
    • 7.2:添加阿里云 k8s 镜像仓库
    • 7.3:安装 k8s 1.14.0 所需依赖
      • 7.3.1:设置所 sysctl 参数,重新启动后配置不变
      • 7.3.2:应用 sysctl 参数而不重新启动
  • 八:安装K8S -- kubelet,kubeadm,kubectl核心组件
    • 8.1:安装命令
    • 8.2:查看服务状态
    • 8.3:发现异常 "command failed" err="failed to load kubelet config file(注意:此异常和主从节点配置有关,放在后面解决)
      • 8.3.1:查看具体报错
    • 8.3.2: 发现异常 Flag --cgroup-driver has been deprecated, This parameter should be set via the config file
    • 8.4:针对上述异常操作如下
      • 8.4.1: 修改docker cgroup驱动
      • 8.4.2:配置网络,选择 Calico
    • 8.5: 下载相关操作
      • 8.5.1:安装wget
      • 8.5.2:下载网络
      • 8.5.3:修改 calico.yaml
      • 8.5.4:配置K8S 网络
  • 九:再次查看 pods,nodes
    • 9.1:注意异常: The connection to the server localhost:8080 was refused(和主从节点有关,先kubeinit没问题)
    • 9.2:解决方式
    • 9.3:再次执行抛异常处的命令 kubeadm init
    • 9.4:注意异常 hostname和 CRI v1 runtime API
    • 9.5:解决 kubeadm init 相关异常
      • 9.5.1:编辑vim /etc/hosts
      • 9.5.2:ps aux | grep docker | grep -v grep
      • 9.5.3:cat /etc/containerd/config.toml
      • 9.5.4:rm -fr /etc/containerd/config.toml
      • 9.5.5:systemctl restart containerd
      • 9.5.6:systemctl status containerd.service
  • 十:解决 & 再次执行kubeadm init 查看
    • 10.1:执行kubeadm init

配置K8S主从集群前置准备操作

一:主节点操作 查看主机域名->编辑域名

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname nodemaster
[root@localhost ~]# hostname
nodemaster
[root@localhost ~]#

1.1 编辑HOST 从节点也做相应操作

[root@vbox-master-01-vbox-01 ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.101  master-k8s-vbox

1.2 从节点操作 查看从节点102域名->编辑域名

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname nodeslavetwo
[root@localhost ~]# hostname
nodeslavetwo

1.3 从节点操作 查看从节点103域名->编辑域名

[root@localhost /]# hostname
localhost.localdomain
[root@localhost /]# hostnamectl set-hostname nodeslavethree
[root@localhost /]# hostname
nodeslavethree

二:安装自动填充,虚拟机默认没有

[root@vbox-master-01-vbox-01 ~]# yum -y install bash-completion
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Determining fastest mirrors
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.aliyun.com

三:关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

四:关闭交换空间

free -h
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
free -h

五:禁用 Selinux

sed -i “s/^SELINUX=enforcing/SELINUX=disabled/g” /etc/sysconfig/selinux

[root@nodemaster /]# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux

六: 允许 ip tables 检查桥接流量

iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

七:设置K8S相关系统参数

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

7.1:配置Docker 阿里源

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hnkfbj7x.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

7.2:添加阿里云 k8s 镜像仓库

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

7.3:安装 k8s 1.14.0 所需依赖

7.3.1:设置所 sysctl 参数,重新启动后配置不变

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

7.3.2:应用 sysctl 参数而不重新启动

sudo sysctl --system

八:安装K8S – kubelet,kubeadm,kubectl核心组件

8.1:安装命令

yum install -y kubelet-1.25.5-0 kubeadm-1.25.5-0 kubectl-1.25.5-0 --disableexcludes=kubernetes --nogpgcheck

8.2:查看服务状态

systemctl status kubelet

8.3:发现异常 “command failed” err="failed to load kubelet config file(注意:此异常和主从节点配置有关,放在后面解决)

"command failed" err="failed to load kubelet config file, error: failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file \"/var/lib/kubelet/config.yaml\", error: open /var/lib/kubelet/config.yaml: no such file or directory, path: /var/lib/kubelet/config.yaml"

8.3.1:查看具体报错

journalctl -u kubelet.service

8.3.2: 发现异常 Flag --cgroup-driver has been deprecated, This parameter should be set via the config file

Flag --cgroup-driver has been deprecated, This parameter should be set via the config file

 Unable to update cni config: no networks found i

在这里插入图片描述

8.4:针对上述异常操作如下

8.4.1: 修改docker cgroup驱动

cat > /etc/docker/daemon.json <<EOF
{"exec-opts": ["native.cgroupdriver=systemd"]}
EOF
[root@vbox-master-01-vbox-01 ~]# cat > /etc/docker/daemon.json <<EOF
> {"exec-opts": ["native.cgroupdriver=systemd"]}
> EOF
[root@vbox-master-01-vbox-01 ~]#

8.4.2:配置网络,选择 Calico

8.5: 下载相关操作

8.5.1:安装wget

yum -y install wget

8.5.2:下载网络

wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml

8.5.3:修改 calico.yaml

yum -y install vim-enhanced
vim calico.yaml

 # 在 - name: CLUSTER_TYPE 下方添加如下内容
- name: CLUSTER_TYPE
  value: "k8s,bgp"
  # 下方为新增内容
- name: IP_AUTODETECTION_METHOD
  value: "interface=网卡名称"


# INTERFACE_NAME=ens33
# sed -i '/k8s,bgp/a \            - name: IP_AUTODETECTION_METHOD\n              value: "interface=INTERFACE_NAME"' calico.yaml
# sed -i "s#INTERFACE_NAME#$INTERFACE_NAME#g" calico.yaml

8.5.4:配置K8S 网络

kubectl apply -f calico.yaml

九:再次查看 pods,nodes

kubectl get nodes -o wide

9.1:注意异常: The connection to the server localhost:8080 was refused(和主从节点有关,先kubeinit没问题)

[root@vbox-master-01-vbox-01 ~]# kubectl apply -f calico.yaml
The connection to the server localhost:8080 was refused - did you specify the right host or port?

9.2:解决方式

cd /etc/kubernetes/
echo “export KUBECONFIG=/etc/kubernetes/kubelet.conf” >> /etc/profile
source /etc/profile

[root@vbox-master-01-vbox-01 ~]# kubectl apply -f calico.yaml
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@vbox-master-01-vbox-01 ~]#
[root@vbox-master-01-vbox-01 ~]# cd /etc/kubernetes/
[root@vbox-master-01-vbox-01 kubernetes]# echo "export KUBECONFIG=/etc/kubernetes/kubelet.conf" >> /etc/profile
[root@vbox-master-01-vbox-01 kubernetes]#
[root@vbox-master-01-vbox-01 kubernetes]# source /etc/profile
[root@vbox-master-01-vbox-01 kubernetes]#

9.3:再次执行抛异常处的命令 kubeadm init

kubeadm init

9.4:注意异常 hostname和 CRI v1 runtime API

[WARNING Hostname]: hostname "vbox-master-01-vbox-01": lookup vbox-master-01-vbox-01 on 192.168.1.1:53: no such host

error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR CRI]: container runtime is not running: output: time="2023-05-02T02:16:37+08:00" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"
, error: exit status 1

9.5:解决 kubeadm init 相关异常

9.5.1:编辑vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.101  vbox-master-01-vbox-01

9.5.2:ps aux | grep docker | grep -v grep

9.5.3:cat /etc/containerd/config.toml

查看到disabled_plugins = [“cri”]
在这里插入图片描述

9.5.4:rm -fr /etc/containerd/config.toml

9.5.5:systemctl restart containerd

9.5.6:systemctl status containerd.service

[root@vbox-master-01-vbox-01 /]# systemctl status containerd.service
● containerd.service - containerd container runtime
   Loaded: loaded (/usr/lib/systemd/system/containerd.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2023-05-02 03:06:09 CST; 2min 35s ago
     Docs: https://containerd.io
  Process: 20008 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 20010 (containerd)
    Tasks: 45
   Memory: 117.1M
   CGroup: /system.slice/containerd.service
           ├─11977 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 82a64934d6d49e4a3b55883f2fa3c959a1d16f091133644c2f2ab75de46ec09e -address ...
           ├─12134 /usr/bin/containerd-shim-runc-v2 -namespace moby -id f0d1f44c6dd8bb6015af52737aaebcdec2a35f6df0ff7d538c399c19bc622a41 -address ...
           ├─13051 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 6de7f49404eb3aa5ea14e02405c973bc850217a519a8b3a85bf47bf8aae23e2d -address ...
           └─20010 /usr/bin/containerd

502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.691263973+08:00" level=error msg="failed to load cni du...onfig"
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.691710874+08:00" level=info msg=serving... address=/run....ttrpc
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.691797968+08:00" level=info msg=serving... address=/run...d.sock
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.691949132+08:00" level=info msg="containerd successfull...1014s"
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.705709657+08:00" level=info msg="Start subscribing cont...event"
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.705803917+08:00" level=info msg="Start recovering state"
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.705874098+08:00" level=info msg="Start event monitor"
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.705891342+08:00" level=info msg="Start snapshots syncer"
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.705900497+08:00" level=info msg="Start cni network conf...fault"
502 03:06:09 vbox-master-01-vbox-01 containerd[20010]: time="2023-05-02T03:06:09.705907733+08:00" level=info msg="Start streaming server"
Hint: Some lines were ellipsized, use -l to show in full.

十:解决 & 再次执行kubeadm init 查看

10.1:执行kubeadm init

[root@vbox-master-01-vbox-01 kubernetes]# kubeadm init
I0502 02:25:08.004988   18148 version.go:256] remote version is much newer: v1.27.1; falling back to: stable-1.25
[init] Using Kubernetes version: v1.25.9
[preflight] Running pre-flight checks
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/483390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汇编语言学习笔记四

字符 字符是以ASCII码的形式存储的&#xff0c;一个字符对应着8为二进制数&#xff0c;2位16进制数。 所以可以得到对应的字符地址。 assume ds:data data segmentdb hellodb world data endsand or指令 根据ASCII码&#xff0c;字符的大写和小写相差一个0010 0000&#xff…

Java的锁事

乐观锁和悲观锁 悲观锁 认为自己在使用数据的使用一定有别的线程来修改数据&#xff0c;因此在获取数据的时候会先加锁&#xff0c;确保数据不会被别的线程修改 synchronized关键字和Lock的实现都是悲观锁 适合写操作多的场景&#xff0c;先加锁可以保证写操作时数据正确 …

SpringcloudAlibaba详解

目录 微服务架构概念 服务治理 服务调用 服务网关 服务容错 链路追踪 SpringcloudAlibaba组件 Nacos 负载均衡 Ribbon Fegin Sentinel 高并发测试 容错方案 Sentinel入门 Feign整合Sentinel 微服务架构概念 服务治理 服务治理就是进行服务的自动化管理&#xf…

解决使用git命令查看的某次提交时间与git log中显示的不一致的问题

文章目录 问题描述缘由解决办法参考资料 问题描述 笔者的使用环境&#xff1a; Git 2.37.0.windows.1 TortoiseGit 2.11.0.0 IntelliJ IDEA 2022.3.1 (Ultimate Edition) 笔者遇到一个问题&#xff0c;需要查看 Git 某个提交&#xff08;commit&#xff09;的时间&#xff0…

女朋友说总是记不住Git命令,怎么办?安排!

如果你也和我女朋友一样总是忘记Git命令&#xff0c;觉得记忆Git命令是很枯燥和麻烦的事情。我写了一个包含了40 条常用Git命令的清单。你一定要收藏起来&#xff0c;当你忘记Git命令的时候&#xff0c;就可以打开来查看啦&#xff01;&#xff01;&#xff01; 1.初始化本地仓…

程序员实习和就业选择应该怎么做?分享4个重要的影响因素

近期后台很多人都有问到找实习、找工作相关的问题&#xff0c;今天就展开聊聊。首先&#xff0c;理个时间点给大家提个醒&#xff0c;暑期实习的简历投递时间集中在3月-5月&#xff0c;秋招简历投递时间集中在6月-10月。所以&#xff0c;今年想找实习、想投秋招的学生一定要注意…

MySQL的概念,编译及安装

一.数据库的基本概念 1、数据&#xff08;Data&#xff09; • 描述事物的符号记录 • 包括数字&#xff0c;文字&#xff0c;图形&#xff0c;图像&#xff0c;声音&#xff0c;档案记录等 • 以“记录”形式按统一的格式进行存储 2、表 • 将不同的记录组织在一起 • …

WiFi也能检测人体3D动作?误差低至2.4厘米

佛罗里达州立大学和罗格斯大学的科研人员开发了一种基于Wi-Fi传感的3D网格技术&#xff1a;Wi-Mesh&#xff0c;该方案宣称可识别并创建可靠的3D人体网格&#xff0c;可辅助计算机视觉、AR/VR定位等应用。 简单来讲&#xff0c;Wi-Mesh通过分析多个Wi-Fi天线接收的反射信号&…

ubuntu20安装electron并用electron-packager打包

起因是想复现港科大的无人机集群GUI界面&#xff1a;https://github.com/HKUST-Aerial-Robotics/swarm_gcs 这是一个用javascript写的&#xff0c;基于electron和nodejs的可以用浏览器打开的gui界面&#xff0c;其中3d显示的部分用的是Three.js。electron有一个好处是可以跨平台…

【MySQL学习】MySQL数据类型

文章目录 前言一、数据类型分类二、数值类型2.1 TINYINT类型2.2 BIT类型2.3 小数类型2.3.1 float类型2.3.2 decimal类型 三、字符串类型3.1 CHAR类型3.2 VARCHAR类型3.3 CHAR和VARCHAR比较 四、日期和时间类型五、ENUM和SET类型 前言 MySQL 数据类型定义了列中可以存储什么数据…

串口信息打印规范(含打印技巧)

1.串口信息打印规范 学习一下串口打印信息的格式&#xff08;清楚明了&#xff0c;调试过程中很重要&#xff09; 日志级别&#xff1a;info&#xff08;初始化&#xff09;、debug&#xff08;运行过程&#xff09;、error&#xff08;报错&#xff09; [日志级别] 文件名 …

二十一、SQL 数据分析基础与进阶:窗口函数

文章目录 一、什么是窗口函数二、聚合函数OVER()函数三、PARTITION BY 子句四、排序函数4.1 ROW_NUMBER() 函数4.2 演示 RANK()、DENSE_RANK()、ROW_NUMBER() 函数的异同4.3 NTILE() 函数4.4 LAG() 和 LEAD() 函数4.5 FIRST_VALUE() 和 LAST_VALUE() 函数 五、Window Frames 自…

S5CL:通过分层对比学习统一全监督、自监督和半监督学习

文章目录 S5CL: Unifying Fully-Supervised,Self-supervised, and Semi-supervised Learning Through Hierarchical Contrastive Learning摘要本文方法损失函数 实验结果消融实验 S5CL: Unifying Fully-Supervised,Self-supervised, and Semi-supervised Learning Through Hier…

计算机体系结构框架

这是基于胡伟武老师的计算机体系结构课程所总结出来的框架&#xff0c;希望能让没有学习该课程的人可以去了解计算机是怎么造的&#xff0c;而对于学习这门课程的人可以在学习课程之前对整体框架有一个初步的认知。 如果不想看文字的话&#xff0c;可以看视频哦&#xff01; 目…

ros2 服务——ubuntu20.04——自定义数据类型

文章目录 自定义一个服务数据类型接口创建sev目录和文件修改包的CMakeLists.txt文件修改包的package.xml文件查看是否成功 服务全部代码 自定义一个服务数据类型接口 创建sev目录和文件 服务的接口类型由两部分组成&#xff0c;请求和相应 在包的src的同级目录下创建sev文件…

OpenCV基础补充自适应阈值及图像金字塔

文章目录 OpenCV基础补充自适应阈值及图像金字塔自适应阈值图像金字塔人脸检测视频检测人脸检测 OpenCV基础补充自适应阈值及图像金字塔 对于OpenCV知识点还有很多&#xff0c;基础的大家可以参考前面几节。 OpenCv基础之绘图及几何变换实例 OpenCV基础操作之图像的形态学运算…

PMP/高项 06-项目成本管理

项目成本管理 概念 项目成本管理 项目成本管理又被称为项目造价管理&#xff0c;是有关项目成本和项目价值两个方面的管理&#xff0c;是为保障以最小的成本实现最大的项目价值而开展的项目专项管理工作。 确保在批准的项目预算内完成项目 成本管理内容 规划成本管理 制定项目…

华为OD机试真题(Java),整数对最小和(100%通过+复盘思路)

一、题目描述 给定两个整数数组array1、array2,数组元素按升序排列。 假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素, 并对取出的所有元素求和,计算和的最小值。 注意: 两对元素如果对应于array1、array2中的两个下标均相同,则视为同一…

FL Studio21没有language选项?如何设置切换中文语言

音乐在人们心中的地位日益增高&#xff0c;近几年音乐选秀的节目更是层出不穷&#xff0c;喜爱音乐&#xff0c;创作音乐的朋友们也是越来越多&#xff0c;音乐的类型有很多&#xff0c;好比古典&#xff0c;流行&#xff0c;摇滚等等。对新手友好程度基本上在首位&#xff0c;…

第14章 项目采购管理

文章目录 采购管理包括如下几个过程14.2 编制采购计划 462编制采购计划的输出1&#xff09;采购管理计划2&#xff09;采购工作说明书3&#xff09;采购文件 14.2.3 工作说明书&#xff08;SOW&#xff09; 14.3 实施采购 47414.3.2 实施采购的方法和技术 476&#xff08;1&…