k8s安装学习环境
目录
环境准备
配置hosts
关闭防火墙
关闭交换分区
调整swappiness参数
关闭setlinux
Ipv4转发
时钟同步
安装Docker
配置Yum源
安装
配置
启动
日志
安装k8s
配置Yum源
Master节点
安装
初始化
配置kubectl
部署CNI网络插件
Node节点
检查
环境准备
准备两台机器centos7.9
192.168.11.120 dt01 master 2c2g
192.168.11.121 dt02 node 1c1g
配置hosts
vi /etc/hosts
192.168.11.120 dt01
192.168.11.121 dt02
或执行命令
hostnamectl set-hostname <hostname>
指定ip和host,防止后续安装k8s无法找到唯一ip报错could not be reached
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭交换分区
swapoff -a #临时关闭
编辑文件,注释掉swap一行
vi /etc/fstab
/dev/mapper/centos_dt02-root / xfs defaults 0 0 UUID=4ce225e3-cb11-4c0c-8ab5-70c6571a0d11 /boot xfs defaults 0 0 #/dev/mapper/centos_dt02-swap swap swap defaults 0 0 |
验证,swap显示都是0
free -h
调整swappiness参数
echo 0 > /proc/sys/vm/swappiness # 临时生效
vi /etc/sysctl.conf #永久生效
vm.swappiness=0
sysctl -p #立即生效
关闭setlinux
临时
setenforce 0
永久
vi /etc/selinux/config
SELINUX=disabled
Ipv4转发
临时
sysctl -w net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward
永久生效
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
vi /etc/sysconfig/network
FORWARD_IPV4=YES
systemctl restart network
时钟同步
yum install ntpdate -y
ntpdate time.windows.com
安装Docker
Yum方式
配置Yum源
安装yum源管理工具
yum install yum-utils -y
添加docker阿里的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装
yum -y install docker-ce-18.06.1.ce-3.el7
配置
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
启动
systemctl daemon-reload #加载配置文件
systemctl status docker #检查dead
systemctl enable docker #开机自启
systemctl restart docker #启动docker
systemctl status docker #检查running
如果systemctl status docker时有
则vi /etc/sysctl.conf 添加
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
sysctl -p
systemctl restart docker
systemctl status docker
日志
journalctl -u docker
安装k8s
使用kubeadm
配置Yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF |
Master节点
安装
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet
初始化
执行集群初始化,红色部分按需修改
kubeadm init --apiserver-advertise-address=192.168.11.120 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
记下最后的输出部分
kubeadm join 192.168.11.120:6443 --token ye402k.feh90nl0r4exomu3 \
--discovery-token-ca-cert-hash sha256:94d891942ae40f97e14314c431527c640ba44f52d4db52a5f2d3a59c53e7c9ae
默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:
kubeadm token create --print-join-command
配置kubectl
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config |
部署CNI网络插件
提供的yml文件见顶部关联资源或
链接: https://pan.baidu.com/s/1W97_qMC4-9PGozmHiVdGMg?pwd=lijw
因githup访问不稳定性,直接上传文件kube-flannel.yaml
kubectl apply -f kube-flannel.yaml
注:直接安装插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube
flannel.yml
[root@dt01 yml]# kubectl get node
NAME STATUS ROLES AGE VERSION
dt01 Ready master 91m v1.18.0
Node节点
yum install -y kubelet-1.18.0 kubeadm-1.18.0
systemctl enable kubelet
在node节点上执行master节点标记的输出部分
kubeadm join 192.168.11.120:6443 --token ye402k.feh90nl0r4exomu3 \
--discovery-token-ca-cert-hash sha256:94d891942ae40f97e14314c431527c640ba44f52d4db52a5f2d3a59c53e7c9ae
如果卡住并报错
error execution phase preflight: couldn't validate the identity of the API Server: could not find a JWS signature in the cluster-info ConfigMap for token ID "e1n4kn"
To see the stack trace of this error execute with --v=5 or higher
检查token是否过期或防火墙是否关闭
检查
[root@dt01 yml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
dt01 Ready master 145m v1.18.0
dt02 Ready <none> 31m v1.18.0
如果节点不是Ready状态则需要耐心等待10分钟左右
创建一个pod
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc -o wide
http://NodeIP:NodePort
NodeIP 可以是集群中任一个节点IP
可以使用命令修改nodePort端口
kubectl edit service nginx
相关文章:

k8s安装学习环境
目录 环境准备 配置hosts 关闭防火墙 关闭交换分区 调整swappiness参数 关闭setlinux Ipv4转发 时钟同步 安装Docker 配置Yum源 安装 配置 启动 日志 安装k8s 配置Yum源 Master节点 安装 初始化 配置kubectl 部署CNI网络插件 Node节点 检查 环境准备 准…...
RepidJson将内容写入文件简单代码示例
以下是使用RapidJSON将内容写入文件的示例代码: #include <rapidjson/document.h> #include <rapidjson/writer.h> #include <rapidjson/stringbuffer.h> #include <iostream> #include <fstream>using namespace rapidjson;int mai…...
golang构建docker镜像的几种方式
目前docker支持以下几种方式指定上下文来构建镜像 本地项目路径(如:/tmp/xxx)本地压缩包路径(如:/tmp/xxx.tar)docekrfile文本链接(如:https://x.com/xxx/dockerfile)压…...
golang使用sip协议 用户名和密码注册到vos3000
在Go语言中,要使用SIP协议进行注册,您可以使用第三方库,如github.com/cloudwebrtc/sip。以下是一个简单的示例代码,演示如何使用Go语言中的该库进行基本的SIP注册: 首先,您需要安装该库: go ge…...
第4章 互联网
文章目录 4.1 计算机网络基础 94 4.1.1 计算机网络的基本概念 94 4.1.2 局域网的基本原理 96 4.1.3 局域网协议与应用 98 4.2 Internet 100 4.2.1 TCP/IP 101 4.2.2 TCP/IP应用 106 4.2.3 网络操作系统的功能 112 4.2.4 网络安全的概念 116 4.3 计算机软件编程基础 …...

【JavaWeb】前端工程化(VUE3)
前端工程化(VUE3) 文章目录 前端工程化(VUE3)一、概述二、ECMA6Script2.1 es6的变量和模板字符串2.2 es6的解构表达式2.3 es6的箭头函数2.4 rest和spread2.5 es6的对象创建和拷贝2.6 es6的模块化处理 三、前端工程化环境搭建3.1 N…...
JAVA基础知识:异常处理
异常处理是Java编程中至关重要的一部分,它允许程序在出现错误或异常情况时进行适当的处理,以保证程序的稳定性和可靠性。本文将详细介绍Java中的异常处理机制,并提供相关示例代码,帮助读者更好地理解和应用异常处理的概念和技巧。…...

PostGIS学习教程十:空间索引
PostGIS学习教程十:空间索引 回想一下,空间索引是空间数据库的三个关键特性之一。空间索引使得使用空间数据库存储大型数据集成为可能。在没有空间索引的情况下,对要素的任何搜索都需要对数据库中的每条记录进行"顺序扫描"。索引通…...
LeetCode 13 罗马数字转整数
题目描述 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …...

【动态规划】LeetCode2111:使数组 K 递增的最少操作次数
作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 本文涉及的基础知识点 二分查找算法合集 分组 动态规划 题目 给你一个下标从 0 开始包含 n 个正整数的数组 arr ,和一个正整数 k 。 如果对于每个满足 k < i < n-1 的下标 i ,都有…...
SpringCloud面试题——Nacos
一:什么是Nacos? 二:服务心跳与服务注册原理? 在spring容器启动的时候,nacos客户端会进行两步操作。 向nacos服务端发送心跳向nacos服务端注册当前服务 服务心跳 客户端在启动的时候,会开启一个心跳线程…...

leetcode:统计感冒序列的数目【数学题:组合数含逆元模版】
1. 题目截图 2.题目分析 需要把其分为多个段进行填充 长为k的段,从两端往中间填充的方案数有2 ** (k - 1)种 组合数就是选哪几个数填哪几个段即可 3.组合数含逆元模版 MOD 1_000_000_007 MX 100_000# 组合数模板 fac [0] * MX fac[0] 1 for i in range(1, MX…...

外贸建站平台工具推荐?做海洋建站的平台?
外贸建站平台用哪个比较好?独立站建站系统如何选择? 随着全球市场的竞争日益激烈,如何通过互联网渠道展示企业形象、吸引客户成为外贸企业亟待解决的问题。海洋建站将为大家介绍几款优秀的外贸建站平台工具,助力企业在数字化时代…...

【智能家居】三、添加语音识别模块的串口读取功能点
语音识别模块SU-03T 串口通信线程控制代码 inputCommand.h(输入控制指令)voiceControl.c(语音控制模块指令)main.c(主函数)编译运行结果 语音识别模块SU-03T AI智能语音识别模块离线语音控制模块语音识别…...

物联网开发(一)新版Onenet 基础配置
onenet新创建的账号,没有了多协议接入,只有新的物联网开放平台 第一讲,先给大家讲一下:新版Onenet 基础配置 创建产品 产品开发-->创建产品 产品的品类选择个:大致符合你项目的即可,没有影响 选择智…...
qt/c/c++文件操作总结
1. 读取文件 1.1 Qt以二进制方式读取大文件返回char* 在Qt中以二进制模式读取一个大文件(以500MB为例)并将其内容存储到char*数组中,需要谨慎处理内存分配。以下是实现这一功能的步骤和示例代码: 1. 打开文件 使用QFile类以二进制模式打开文件。 2. 检查文件大小 使用…...
表示你的shell未被正确配置以使用conda activate--换成清华源anaconda
1 CommandNotFoundError: Your shell has not been properly configured to use conda activate. If using conda activate from a batch script, change your invocation to CALL conda.bat activate.To initialize your shell, run$ conda init <SHELL_NAME>这个错误提…...

VT-MRPA1-151-1X/V0/0控制2FRE16模块式模拟放大器
适用于控制带有电气位置反馈的直动式比例减压阀(DBETR- 1X 类型)或带有电气位置反馈的比例流量控制阀(2FRE... 类型);控制值输入 1 0 V(差动输入); 可分别调节“上/下”斜坡时间的斜…...

无需公网IP实现公网远程访问本地WebDAV服务
windows搭建WebDAV服务,并内网穿透公网访问【无公网IP】 文章目录 windows搭建WebDAV服务,并内网穿透公网访问【无公网IP】1. 安装IIS必要WebDav组件2. 客户端测试3. cpolar内网穿透3.1 打开Web-UI管理界面3.2 创建隧道3.3 查看在线隧道列表3.4 浏览器访…...

远程服务器QEMU+Ubuntu+GRUB+VNC最佳实践
远程服务器QEMUUbuntuGRUBVNC最佳实践 1. 准备2. QEMU启动安装Ubuntu2.1 服务器端2.2 本地端 3. 从服务器终端控制虚拟机GRUB与虚拟机终端 这段时间参与大量内核切换测试工作,实体机需要硬件自检太过笨重,因此主要通过QEMU验证正确性。有一个很大的问题是…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...