kubernetes集群安装详细步骤

kubernetes集群安装详细步骤(V1.20.6)

本篇主要介绍kubernetes的1.20.6版本集群安装,废话不多说,直接看步骤:

1、安装环境介绍

 主机节点:

主机操作系统:Centos7.9  配置: 内存建议4G,CPU建议2C以上

K8s节点IP段:

Pod段:10.244.0.0/16

Svc段:10.96.0.0/16

注意:不要和主机IP段重复

2、初始化环境

2.1、按照规划设置各主机IP

# vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改各个主机节点对应的ip为:192.168.40.21\192.168.40.22\192.168.40.23

重启网络服务

# service network restart

2.2、配置机器主机名

#192.168.40.21节点执行:

# hostnamectl set-hostname zchmaster1 && bash

#192.168.40.22节点执行:

# hostnamectl set-hostname zchnode1 && bash

#192.168.40.23节点执行:

# hostnamectl set-hostname zchnode2 && bash

2.3、配置主机文件

# vi /etc/hosts

添加如下内容:

192.168.40.21 zchmaster1

192.168.40.22 zchnode1

192.168.40.23 zchnode2

2.4、关闭selinux

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

需重启机器才能永久生效

# reboot

2.5、配置主机之间免密登录

此步骤,可选操作,为了拷贝文件方便可以执行

# ssh-keygen

# ssh-copy-id zchmaster1

# ssh-copy-id zchnode1

# ssh-copy-id zchnode2

2.6、关闭交换分区swap

Swap是交换分区,在机器内存不够时,会使用swap分区,但swap分区的性能较低,k8s默认不允许使用交换分区。

# vi /etc/fstab

注释掉一下内容,或者删除

#/dev/mapper/centos-swap swap swap defaults 0 0

保存退出

2.7、修改主机内核参数

# modprobe br_netfilter

# echo "modprobe br_netfilter" >> /etc/profile

# cat > /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

EOF

# sysctl -p /etc/sysctl.d/k8s.conf

2.8、配置repo源

#配置docker的repo源,国外的访问太慢,使用阿里云的

# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#配置k8s的repo源

# vi /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=kubernetes-yum-repos-kubernetes-el7-x86_64安装包下载_开源镜像站-阿里云

enabled=1

gpgcheck=0

#将master1上Kubernetes的repo源复制给node1和node2

复制到node1:

# scp /etc/yum.repos.d/kubernetes.repo zchnode1:/etc/yum.repos.d/

复制到node2:

# scp /etc/yum.repos.d/kubernetes.repo zchnode2:/etc/yum.repos.d/

3、安装docker服务

Docker的详细安装步骤在其他篇博客已经介绍,点击查看:Docker安装详细步骤_周十一.的博客-CSDN博客

4、安装kubernetes集群

4.1、下载初始化k8s集群所需镜像

       打开 Docker Hub 网站(https://hub.docker.com)官网,搜索kubernetes/base-image ,择合适的镜像版本,并点击进入该镜像详情页面,根据操作系统类型和版本选择相应的镜像标签(tag),并复制该标签名称,然后拉取镜像。

执行命令:

   # docker pull kubernetes/base-image:<tag>

       在线很多时候都无法拉取k8s集群初始化相关镜像,最好找台机器可以访问相关网址提前下载好,导出成压缩包(如:8simage-1-20-6.tar.gz),拷贝到各个地方都可以,只需要执行导入操作

执行命令:

   # docker load -i k8simage-1-20-6.tar.gz

查看导入镜像:

   # docker images

4.2、编写 kubeadm.yaml文件

# yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6

# systemctl enable kubelet

在master1节点上执行, 生成kubeadm.yaml 文件

# kubeadm config print init-defaults > kubeadm.yaml

修改配置文件如下内容:

advertiseAddress:控制节点地址,修改为192.168.40.21

imageRepository:镜像仓库拉取地址,修改为:registry.aliyuncs.com/google_containers

kube-proxy的模式设置为: ipvs

cgroupDriver:修改为systemd,与docker保持一致

podSubnet: 10.244.0.0/16 

kubernetesVersion: v1.20.6

配置文件末尾追加如下内容:

---

apiVersion: kubeproxy.config.k8s.io/v1alpha1

kind: KubeProxyConfiguration

mode: ipvs

---

apiVersion: kubelet.config.k8s.io/v1beta1

kind: KubeletConfiguration

cgroupDriver: systemd

篇幅有限这里就不把完整的配置文件 贴出来了,有问题留言

4.3、初始化k8s集群

# kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

出现如上界面,表示初始化成功。

根据上图提示,执行如下初始化操作:

# mkdir -p $HOME/.kube

# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

# sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看节点状态:

# kubectl get nodes

4.4、工作节点加入集群

在master1上生成加入节点的命令:

# kubeadm token create --print-join-command

显示如下:

kubeadm join 192.168.40.21:6443 --token l1gu1i.o9i56fy20ynj6w8g --discovery-token-ca-cert-hash sha256:06dfb194b0034534eba1df0b57e9c94da57196816d2d1a1b100dbece2ae087ed

在node1、node2执行命令加入群:

# kubeadm join 192.168.40.21:6443 --token l1gu1i.o9i56fy20ynj6w8g --discovery-token-ca-cert-hash sha256:06dfb194b0034534eba1df0b57e9c94da57196816d2d1a1b100dbece2ae087ed

#在master1上查看集群节点状况:

# kubectl get nodes

以上,除了网络组件还没安装,整个集群基本安装完成。

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

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

相关文章

springboot + vue + elementui — upload解决跨域、实现图片上传

今日记录通过elementui上传时得到的问题。 我们在本地部署的服务,前端服务请求后端接口,存在跨域问题&#xff0c; 1.可以利用springboot解决跨域问题&#xff0c;这里不列举 2.利用vue配置进行反向代理。 vue解决跨域 在vue.config.js文件中配置 const { defineConfig }…

Datax抽取mysql的bit类型数据

背景&#xff1a;使用datax抽取mysql的一张表&#xff0c;里面有两个bit类型的字段&#xff0c;抽取出来显示如下&#xff1a; 需要在抽取reader里面进行处理配置 最终生成的datax的json文件reader的配置会转换为具体的数值 最终查询效果&#xff1a;

【UE 材质】制作飘动的旗帜

效果 步骤 1. 首先在建模软件中创建一个平面&#xff0c;注意分段数一定要多 2. 在UE中创建一个材质&#xff0c;这里命名为“Mat_Flag” 打开“Mat_Flag”&#xff0c;先将旗帜纹理连接到基础颜色 先选中导入的模型然后点击根据选中的模型预览材质 创建如下节点可以看到此时模…

2023物联网新动向:WEB组态除了用于数据展示,也支持搭建业务逻辑,提供与蓝图连线和NodeRed规则链类似的可视化编程能力

前言 组态编辑在工业控制、物联网场景中十分常见&#xff0c;越来越多的物联网平台也把组态作为一项标配功能。 物联网产业链自下往上由“端 - 边 - 管 - 云 -用”多个环节构成&#xff0c;组态通常是用于搭建数据展示类型的应用&#xff0c;而随着系统集成度越来越高&#x…

JavaScript基础

JavaScript 1.js基础 持续更新, 1.JavaScript 的诞生 ​ JavaScript 诞生于 1995 年。由Netscape(网景公司)的程序员Brendan Eich(布兰登)与Sun公司联手开发一门脚本语言, 最初名字叫做Mocha&#xff0c;1995年9月改为LiveScript。12月&#xff0c;Netscape公司与Sun公司&a…

网络编程 day 7

1、将.txt表数据导入数据库中 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)int main(int argc, const char *argv[]) {//以只读的方式打开dict.txt文件FILE* fd;if((fdfopen("./dict.txt&q…

windows编程之线程同步万字总结(创建线程,互斥对象,互斥事件,信号量,关键段,多线程群聊服务器)

文章目录 创建线程方法一_beginthreadex函数讲解使用示例&#xff1a; 方法二CreateThread函数讲解:使用示例: 互斥对象:创建互斥对象CreateMutex 互斥事件介绍创建或打开一个未命名的互斥事件对象 信号量介绍信号量的相关函数使用示例 关键段相关函数错误使用示例正确使用示例…

Android12之解析/proc/pid进程参数(一百六十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Streamlit项目:乐高风格马赛克设计工坊~打造个性化马赛克图案的平台

文章目录 1 前言2 项目概述2.1 项目背景和目标2.2 功能和特性2.3 技术实现2.4 开发计划2.5 预期成果2.6 应用场景 3 使用指南3.1 源代码使用指南3.2 普通网页用户使用指南3.3 文件保存3.3.1 导出图像文件3.3.2 获取像素RGB数据 3.4 注意事项 4 实现细节4.1 准备工作4.2 编写代码…

你为什么总招不到对的人?

办公室里&#xff0c;技术面试官Arron 和 HR 正对近期的招聘失误进行争执——新招的技术岗试用了几个月&#xff0c;就因能力不足离开了。 HR 不断吐槽岗位画像太模糊&#xff0c;Arron 反问&#xff1a;“不是给了你关键词吗&#xff1f;” HR 气不打一处来&#xff1a;“你…

Spring IOC的理解

总&#xff1a; 控制反转&#xff08;IOC&#xff09;&#xff1a;理论思想&#xff0c;传统java开发模式&#xff0c;对象是由使用者来进行管理&#xff0c;有了spring后&#xff0c;可以交给spring来帮我们进行管理。依赖注入&#xff08;DI&#xff09;&#xff1a;把对应的…

[构建 Vue 组件库] 小尾巴 UI 组件库 —— 横向商品卡片(仿淘宝)

文章归档于&#xff1a;https://www.yuque.com/u27599042/row3c6 组件库地址 npm&#xff1a;https://www.npmjs.com/package/xwb-ui?activeTabreadmegitee&#xff1a;https://gitee.com/tongchaowei/xwb-ui 下载 npm i xwb-ui配置 按需导入 import {组件名 } from xwb-…

解耦只是一个巧合?

本文分享一篇在IJCAI2023看到的文章&#xff1a;Overlooked Implications of the Reconstruction Loss for VAE Disentanglement 首先回顾下VAE&#xff0c;其loss函数有两项&#xff0c;一项是重构误差&#xff0c;另一项是正则项&#xff1a; L r e c ( x , x ^ ) E q ϕ (…

Unity——脚本与导航系统

Unity内置了一个比较完善的导航系统&#xff0c;一般称为Nav Mesh&#xff08;导航网格&#xff09;&#xff0c;用它可以满足大多数游戏中角色自动导航的需求。 一、导航系统相关组件 Unity的导航系统由以下几个部分组成&#xff1a; Nav Mesh。Nav Mesh与具体的场景关联&…

Windows Qt 5.12.10下载与安装

Qt 入门实战教程&#xff08;目录&#xff09; C自学精简教程 目录(必读) 1 Qt下载 qt-opensource-windows-x86-5.12.10.exe 官方离线安装包&#xff1a;Download Source Package Offline Installers | Qt 下载巨慢 只能下载到最新的&#xff1a;https://download.qt.io/a…

JVM | 垃圾回收器(GC)- Java内存管理的守护者

引言 在编程世界中&#xff0c;有效的内存管理是至关重要的。这不仅确保了应用程序的稳定运行&#xff0c;还可以大大提高性能和响应速度。作为世界上最受欢迎的编程语言之一&#xff0c;通过Java虚拟机内部的垃圾回收器组件来自动管理内存&#xff0c;是成为之一的其中一项必…

Speech | 语音处理,分割一段音频(python)

本文主要是关于语音数据在处理过程中的一些脚本文件以及实例&#xff0c;所有代码只需要更改所需处理的文件路径&#xff0c;输出路径等&#xff0c;全部可运行。 目录 所需环境 方法1&#xff1a;将一整段音频按时间批量切成一个一个音频 方法2&#xff1a;将一整段音频按…

C++的类型转换

前言 我们都知道C是兼容C语言的在C语言中存在两种方式的类型转换&#xff0c;分别是隐式类型转换和显示类型转换&#xff08;强制类型转换&#xff09;&#xff0c;但是C觉得C语言的这套东西是够好&#xff0c;所以在兼容C语言的基础上又搞了一套自己的关于类型转换的东西。 目…

2023高教社杯数学建模C题思路代码 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c; 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

mysql创建用户

创建用户 创建 -- 创建用户 itcast , localhost只能够在当前主机localhost访问, 密码123456; create user test01localhost identified by 123456;使用命令show databases;命令&#xff0c;只显示一个数据库&#xff0c;因为没有权限 -- 创建用户 test02, 可以在任意主机访问…