Kubernetes(k8s)集群搭建部署,master节点配置

目录

1.切换为root用户

2.关闭防火墙,关闭swap分区和禁用SElinux

3.安装docker

4.更改daemon.json文件,指定 Docker 守护进程使用的 cgroup 驱动程序

5.重启docker服务 

6.配置kubernetes.repo

7.安装Kubelet、Kubeadm、Kubectl

8.设置开机自启 

9.准备拉取 Kubernetes 相关的 Docker 镜像,以便在启动 Kubernetes 集群时使用

10. 添加权限并执行sh

11.所有节点加入域名映射(所有节点都需要加入)

12.初始化master节点

13. 复制K8s集群的配置文件,设置权限,通过kubectl命令与 K8s 集群进行交互

14.安装网络插件

15. 将calico.yaml中定义的 Kubernetes 资源应用到 Kubernetes 集群中

16.加入node节点

17.查看集群中的node节点


1.切换为root用户

2.关闭防火墙,关闭swap分区和禁用SElinux

关闭防火墙
sudo systemctl stop firewalld禁用SELinux
sudo setenforce 0                                                                # 临时禁用
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config      # 永久禁用关闭swap分区
swapoff -a                                                                       # 临时关闭
sed -i.bak '/swap/s/^/#/' /etc/fstab                                             # 永久关闭

3.安装docker

这里不做过多叙述,具体步骤请参考:centos/linux在线安装docker

4.更改daemon.json文件,指定 Docker 守护进程使用的 cgroup 驱动程序

{"exec-opts": ["native.cgroupdriver=systemd"]
}

5.重启docker服务 

systemctl restart docker

6.配置kubernetes.repo

配置kubernetes.repo文件,用于下载kubernetes

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[master]
name=master
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.gpghttp://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

7.安装Kubelet、Kubeadm、Kubectl

sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes

8.设置开机自启 

sudo systemctl enable --now kubelet

因为还没有进行init,所以现在kubelet处于一个重启状态,并不会真正的启动。

9.准备拉取 Kubernetes 相关的 Docker 镜像,以便在启动 Kubernetes 集群时使用

sudo tee ./images.sh <<-'EOF'
#!/bin/bash
images=(
kube-apiserver:v1.20.9
kube-proxy:v1.20.9
kube-controller-manager:v1.20.9
kube-scheduler:v1.20.9
coredns:1.7.0
etcd:3.4.13-0
pause:3.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName
done
EOF

其中kube-apiserver、kube-proxy、kube-controller-manager、kube-scheduler要和安装的K8s版本一致

10. 添加权限并执行sh

chmod +x ./images.sh && ./images.sh

到这一步可以直接克隆整个虚拟机作为node节点去使用,master主节点配置完,直接在node节点执行第16步就ok,也可以按照node节点配置流程去配置node节点。传送门:node节点配置流程 

11.所有节点加入域名映射(所有节点都需要加入)

vim /etc/hosts

有几个节点写几个ip和对应的hostname

12.初始化master节点

sudo kubeadm init \
--kubernetes-version 1.20.9 \
--apiserver-advertise-address=192.168.47.138 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.245.0.0/16 \
--image-repository registry.aliyuncs.com/google_containers

kubernetes-version即k8s安装的版本,apiserver-advertise-address主机IP地址

现在kubelet才真正的启动并开始工作

13. 复制K8s集群的配置文件,设置权限,通过kubectl命令与 K8s 集群进行交互

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

14.安装网络插件

目前没找到合适的calico.yaml网络插件,CSDN/知乎等知名网站上有好多相关的,找一个适合自己的,和下一步图片中运行结果一致的即为有效的yaml文件,反之则为无效

······

15. 将calico.yaml中定义的 Kubernetes 资源应用到 Kubernetes 集群中

kubectl apply -f calico.yaml

16.加入node节点

node节点加入master集群中,node节点执行第10步第一个图片中最后两行 kubeadm join

如在join时遇到问题请参考:K8S,node节点join失败,如有错误地方,欢迎指正

17.查看集群中的node节点

kubectl get nodes

 

到这里一个K8S集群就算是搭建完成了!

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

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

相关文章

【数据结构|C语言版】单链表应用

前言1. 基于单链表实现通讯录1.1 知识要求1.2 功能要求 2. 代码总结2.1 SeqList.h2.2 SeqList.c2.3 Contact.h2.4 Contact.c2.5 test.c 后言 上期回顾&#xff1a;【数据结构|C语言版】单链表 前言 各位小伙伴大家好&#xff01;上期小编讲解了单链表相关知识&#xff0c;在此…

【Go】原子并发操作

目录 一、基本概念 支持的数据类型 主要函数 使用场景 二、基础代码实例 开协程给原子变量做加法 统计多个变量 原子标志判断 三、并发日志记录器 四、并发计数器与性能监控 五、优雅的停止并发任务 worker函数 Main函数 应用价值 Go语言中&#xff0c;原子并发操…

Qt C++ 实现无边框窗口

Qt C 实现无边框窗口 // widget.h #ifndef WIDGET_H #define WIDGET_H#include <QDebug> #include <QHBoxLayout> #include <QMouseEvent> #include <QPushButton> #include <QString> #include <QWidget>#define PADDING 6enum Location…

SoC的启动流程 和MCU的启动流程 有什么区别?

SoC&#xff08;System on Chip&#xff09;和MCU&#xff08;Microcontroller Unit&#xff09;的启动流程在很多方面是相似的&#xff0c;因为它们都涉及到硬件的初始化和软件的加载。然而&#xff0c;由于SoC通常包含更复杂的系统集成和可能运行更高级的操作系统&#xff0c…

HLS视频播放在iOS和安卓平台的适配问题及解决方案

HLS视频播放在iOS和安卓平台的适配问题及解决方案 在移动端视频播放中&#xff0c;HLS&#xff08;HTTP Live Streaming&#xff09;是一种常用的流媒体传输协议&#xff0c;可以实现视频的分段传输和自适应码率调整&#xff0c;以提供更好的播放体验。然而&#xff0c;由于iO…

获取字符串的全排列(去除字符串中2个字符相同时造成的重复)

一、概念 现有一个字符串&#xff0c;要打印出该字符串中字符的全排列。 以字符串abc为例&#xff0c;输出的结果为&#xff1a;abc、acb、bac、bca、cab、cba。 以字符串aab为例&#xff0c;输出的结果为&#xff1a;aab、aba、baa。 二、代码 public class Permutation {pub…

Rabbitmq中的延迟队列是什么?有什么作用?如何使用?

1、Rabbitmq中的延迟队列是什么&#xff1f; 在RabbitMQ中&#xff0c;延迟队列是一个特殊的队列&#xff0c;用于存放需要在指定时间后被处理的消息。这种队列的主要特性是它可以为队列中的每个消息设置一定的延迟时间&#xff0c;只有在延迟时间到达后&#xff0c;消息才会被…

【Linux】Linux基础与常用指令大全

文章目录 操作系统是什么&#xff1f;1. Linux家族介绍2. Linux的安装方式3. 常用指令3.1 ls [选项] [目录/文件]&#xff08;显示目录或文件信息&#xff09;3.2 pwd&#xff08;显示当前所在目录&#xff09;3.3 任意指令加上 --help&#xff08;查看指令的用法&#xff09;3…

ThinkPHP V5.1框架源码

源码下载地址&#xff1a;ThinkPHP V5.1.zip www WEB部署目录&#xff08;或者子目录&#xff09; ├─application 应用目录 │ ├─common 公共模块目录&#xff08;可以更改&#xff09; │ ├─module_name 模块目录 │ │ ├─common.php 模块函数文件 │ │ ├─controll…

一文掌握 React 开发中的 JavaScript 基础知识

前端开发中JavaScript是基石。在 React 开发中掌握掌握基础的 JavaScript 方法将有助于编写出更加高效、可维护的 React 应用程序。 在 React 开发中使用 ES6 语法可以带来更简洁、可读性更强、功能更丰富,以及更好性能和社区支持等诸多好处。这有助于提高开发效率,并构建出更…

线性表概念及顺序表的实现

文章目录 前言一、线性表1.定义2.特点3.一般线性表的抽象数据类型定义 二、线性表的顺序存储&#xff08;顺序表&#xff09;1.基本概念2.数组实现顺序表3.顺序表中基本操作的具体实现4.顺序表总结 总结 前言 T_T此专栏用于记录数据结构及算法的&#xff08;痛苦&#xff09;学…

MyBatis 源码分析系列文章导读

1.本文速览 本篇文章是我为接下来的 MyBatis 源码分析系列文章写的一个导读文章。本篇文章从 MyBatis 是什么&#xff08;what&#xff09;&#xff0c;为什么要使用&#xff08;why&#xff09;&#xff0c;以及如何使用&#xff08;how&#xff09;等三个角度进行了说明和演…

vue--数据代理与数据劫持

0.回顾Object.defineProperty()方法 let number 18let person {name:张三,sex:男,}Object.defineProperty(person,age,{// value:18,// enumerable:true, //控制属性是否可以枚举&#xff0c;默认值是false// writable:true, //控制属性是否可以被修改&#xff0c;默认值是fa…

通义灵码×西安交通大学携手打造“云工开物-高校训练营”,解锁 AI 时代编程学习与实战

作为大学生如何利用 AI “整活儿”&#xff1f;欢迎各位同学关注阿里云与西安交通大学计算机学院携手打造的“云工开物-高校训练营”&#xff0c;带你走近 AI 编程助手“通义灵码”。通义灵码是阿里推出的免费 AI 编程工具&#xff0c;拥有实时代码续写与优化、自然语言生成代码…

记一次对某高校微信小程序的漏洞挖掘

挖掘目标的部署在微信的资产(减少信息的收集&#xff0c;毕竟一般web站点没有账号密码不好进入后台&#xff0c;挖掘功能点少) 寻找目标的微信小程序(非原图) 招生小程序打不开&#xff0c;只能挖掘管理系统 进入后发现存在上报安全隐患功能&#xff0c;可以上传图片 准备上传…

浅谈Java21的新特性-虚拟线程

虚拟线程&#xff08;Virtual Threads&#xff09;&#xff0c;又称为用户模式线程&#xff08;User-Mode Threads&#xff09;或纤程&#xff08;Fibers&#xff09;&#xff0c;是一种高级线程模型&#xff0c;在Java等现代编程语言环境中引入&#xff0c;旨在简化并发编程并…

Vue的图片懒加载 vue-lazyload插件使用

图片懒加载是一种网页性能优化技术&#xff0c;页面加载时仅加载可见区域内的图像&#xff0c;图像只会在用户滚动或浏览到它们时才会被加载&#xff0c;而不是在页面一开始就全部加载。 优点 可以减少首页首次加载的数量&#xff0c;减少服务器的压力有占位图片来展示预加载动…

【面经】操作系统/Linux

1、计算机的五大单元 电脑的五大单元包括&#xff1a;输入单元、输出单元、控制单元、算数逻辑单元、存储单元五大部分。其中CPU占有控制、算术逻辑单元&#xff0c;存储单元又包含内存与辅助内存&#xff1b; 2、什么是操作系统 操作系统&#xff1a;负责管理协调我们计算机…

Qt QStyle详解

1.简介 QStyle类是 Qt 框架中用于控制应用程序界面元素外观的一个抽象基类。这个类提供了一种方式来定制窗口部件&#xff08;widgets&#xff09;的绘制和行为&#xff0c;可以通过改变主题或风格来更改应用程序的外观&#xff0c;而无需修改窗口部件本身的代码。 Qt包含一组…

python爬虫------- Selenium下篇(二十三天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…