一、K8S第一步搭建
一、初始化操作
-
1.1、关闭防火墙
systemctl stop firewalld systemctl disable firewalld
-
关闭交换空间
swapoff -a # 临时 sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
重启才能生效
-
根据规划设置主机名
hostnamectl set-hostname <hostname>
-
映射主机
cat >> /etc/hosts << EOF 192.168.113.120 k8s-master 192.168.113.121 k8s-node1 192.168.113.122 k8s-node2 EOF
-
安装了docker,需要关闭 Docker 的 cgroups
vim /etc/docker/daemon.json{"exec-opts": ["native.cgroupdriver=systemd"] }
二、安装软件
2.1、k8s下载源设置
- 更新系统软件包列表并升级已安装的软件包:
sudo apt update
sudo apt upgrade -y
- 添加 Kubernetes 签名密钥:
curl -O https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
- 将下载的密钥文件导入到系统的 APT 密钥环中:
sudo apt-key add apt-key.gpg
- 添加 Kubernetes 软件包存储库
vim /etc/apt/sources.list.d/kubernetes.list
- 添加如下内容
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
- 更新软件列表
sudo apt update
2.2、指定版本安装
- 使用apt安装
sudo apt install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00
- 查看是否安装成功和版本号
kubelet --version
kubectl version --shor
- 禁用自动更新:为了避免通过 APT 自动升级这些组件,可以将它们标记为被锁定状态。执行以下命令禁用自动更新。
sudo apt-mark hold kubelet kubeadm kubectl
- 启动 kubelet 服务:执行以下命令,启动 kubelet 服务。
systemctl enable kubelet
- 查看启动状态
sudo systemctl status kubelet
- 查看日志
journalctl -xefu kubelet
kubeadm reset
三、k8s集群配置
3.1、在主节点执行,集群初始化,并且指定主节点
kubeadm init \--apiserver-advertise-address=192.168.110.100 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.23.6 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16
命令 | 说明 |
---|---|
kubeadm init | 用于初始化 Kubernetes 集群的命令。它会根据提供的参数配置和创建一个新的 Kubernetes 集群 |
apiserver-advertise-address | 通过该参数指定 kube-apiserver 的发布地址,这是集群中其他节点连接到 master 节点的地址 |
image-repository | 指定使用的容器镜像仓库。 |
kubernetes-version | 过该参数指定要安装的 Kubernetes 版本 |
service-cidr | 指定 Kubernetes 服务的 IP 地址范围。这是 Kubernetes 服务分配的 IP 地址池,用于服务发现和负载均衡。 |
pod-network-cidr | 指定 Pod 网络的 IP 地址范围。这是为 Kubernetes Pod 分配的 IP 地址池,用于容器之间的通信。 |
初始化成功后,在后面日志最后会有一段加入集群的命令,例如:
kubeadm join 192.168.31.100:6443 --token x6v0kg.l40l5kjqapkrycv1 \--discovery-token-ca-cert-hash sha256:343238376e044d3d73edc8739ff07e8a02bc7bc2d68d7dba548df568bba7231b
3.2、配置API 通信需要使用的身份验证信息
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config#配置完后就可以使用 kubectl get nodes 查看节点信息
3.3、节点加入集群
在子节点上执行命令,加入刚才初始化的集群
kubeadm join xxx.xxx.xxx.xxx:6443 --token jnhrwg.owebyxwhjd97l4p2 --discovery-token-ca-cert-hash sha256:817b100b0f222826dd8870d9a8700cbdc93f2dce19b38d42b8981462466ca024
-
端口号固定,ip填主节点的。
-
token值,可以使用
kubeadm token list
查看,或者kubeadm token create
创建一个 -
discovery-token-ca-cert-hash sha256 , 使用如下命令获取,记得拼接
sha256:
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
3.4、配置CNI网络插件
下载calico配置文件,可能网络会超时, 这个也需要注意下载的目录
curl https://docs.projectcalico.org/manifests/calico.yaml -O
修改 calico.yaml文件中的CALICO_IPV4POOL_CIDR
配置信息,和初始化集群中的cidr 相同
- name: CALICO_IPV4POOL_CIDRvalue: "10.244.0.0/16"
查看 calico.yaml 需要的镜像
grep image calico.yaml
他需要的镜像加上了下载源地址,是外网的,下载慢,所以可能需要手动下好,或者去掉下载源
将文件中的镜像下载地址去除,让使用我们的自己设置的镜像源
sed -i 's#docker.io/##g' calico.yaml
执行calico.yaml
文件
kubectl apply -f calico.yaml
执行完可以查看系统的pod启动情况
kubectl get po -n kube-system
其他可能使用到的命令
四、使用Nginx测试K8S集群
1、创建部署
kubectl create deployment nginx --image=nginx
2、暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
3、查看 pod 以及服务信息
kubectl get pod,svc
4、查看部署信息
kubectl get deploy
5、将ngixn部署扩展为3个
kubectl scale deploy --replicas=3 nginx
6、其他命令
# 如果发现其他节点一直创建失败,可以先删除指定的pod
kubectl delete pod nginx-85b98978db-gtppc#再去查看pod信息的时候,就会发现又开始创建另外一个了
kubectl get po# 删除部署的ngin
kubectl delete deploy nginx
五、部署常用到的命令
查看 pods
kubectl get po
查看系统级别的pods信息
kubectl get po -n kube-system
-n 是指命名空间,kube-system是属于k8s自带的
相关文章:
一、K8S第一步搭建
一、初始化操作 1.1、关闭防火墙 systemctl stop firewalld systemctl disable firewalld关闭交换空间 swapoff -a # 临时 sed -ri s/.*swap.*/#&/ /etc/fstab # 永久重启才能生效 根据规划设置主机名 hostnamectl set-hostname <hostname>映射主机 cat >>…...

pwnable-1-fd
pwn的学习周期确实比较长,需要的前置内容也很多,了解到第一题还算比较简单的,那就先来体验一波~顺带附一波网站链接:👉网站链接 题目 WP 最后一行给出了ssh链接方式,那就先连接一波 第一次连接会有第四行的询问&…...
队列的实现(c语言)
队列也是线性表,也是分为两种的:1、顺序队列 2、链队列 顺序队列 #include <stdio.h> #include <stdlib.h>typedef struct {char *base;int front;int erer;int size; }SqQueue;void initSqQueue(SqQueue *queue,int size){queue->base…...
雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆
上篇通过hook确定了登录代码的位置,参考雷电模拟器上使用第一个frida(四)第一个HOOK之抓包-CSDN博客 接下来逆向分析一下,并用python实现其功能,并模拟登陆。...

基于Linux上MySQL8.*版本的安装-参考官网
本地hadoop环境安装好,并安装好mysql mysql下载地址及选择包 MySQL :: Download MyS的QL Community Server (Archived Versions) mysql安装步骤 下载与上传解压给权限 #mysql安装包上传到/opt下 cd /usr/local/ #解压到此目录 tar -xvf /opt/mysql-8.0.33-linux-glibc2.12-…...
git 项目管理操作
git stash: 保存当前工作进度 git stash save message... : 添加一些注释。 git stash pop : 恢复最新的进度到工作区 git remote prune origin:将本地分支与已删除的远程分支同步 git branch -d <branch-name> :删除分支 git branch -D <branc…...

数据结构--》掌握数据结构中的排序算法
当我们面对海量数据时,如何高效地将其排序是数据结构领域中一个重要的问题。排序算法作为其中的关键部分,扮演着至关重要的角色。 无论你是初学者还是进阶者,本文将为你提供简单易懂、实用可行的知识点,帮助你更好地掌握排序算法在…...
Kubernetes实战(三)-k8s节点设置cpu高于多少就不调度
1 k8s节点设置的概念和原理 k8s是Google开源的容器集群管理系统,用于自动化部署、扩展和管理容器化应用程序。在k8s中,Node是指容器运行的物理或虚拟机器。Node可以是一个物理机或一个虚拟机器,k8s通过其调度器将Pod调度到每个Node上。对于一…...

数学建模——平稳时间序列分析方法
目录 1、平稳性的Daniel检验 (1)Spearman相关系数假设检验 (2)时间序列平稳性的Danniel假设检验 案例 【模型分析】 1、原始数据at的平稳性检验 2、一阶差分序列的平稳性检验 3、二阶差分序列的平稳性检验 4、建立AR&#…...

Vuex使用方式及异步问题处理
🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 生活的理想,为了不断更新自己 ! 目录 1.Vuex简介: 2.vuex获取值 2.1安装 2.2.菜单栏 2.3.模块 2.4使用 3.改…...

【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:说下你的vue项目的目录结…...
LocalDateTime与时间戳
众所周知,如果想把 LocalDateTime 转为时间戳,需要先指定时区,然后才能转为时间戳,例如: LocalDateTime localDateTime LocalDateTime.now(); ZonedDateTime zonedDateTime localDateTime.atZone(ZoneId.systemDe…...

【Power BI】Power BI 入门指南:版本、下载和报表创建的步骤
文章目录 一、前言二、了解 Power BI 版本三、下载 Power BI Desktop四、如何开始使用 Power BI Desktop五、在 Power BI Desktop 中创建报表六、文末总结 一、前言 Power BI 是微软于 2013 年推出的产品,为一款商业智能与数据可视化工具。它通过引人注目的视觉效果…...
代码随想录算法训练营第23期day21| 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
目录 一、(leetcode 235)二叉搜索树的最近公共祖先 二、(leetcode 701)二叉搜索树中的插入操作 三、(leetcode 450)删除二叉搜索树中的节点 一、(leetcode 235)二叉搜索树的最近公…...
小程序页面路由传参的方法?
小程序页面路由传参的方法有三种: 1.URL参数传递:通过在页面跳转的URL中携带参数实现传参。可以使用wx.navigateTo或wx.redirectTo等跳转方法,并在URL中添加参数。 示例: // PageA.wxml <button bindtap"navigateToPage…...

Ubuntu下安装Python
Ubuntu下安装Python 预备知识一、Python安装Python 二、Anaconda安装Anaconda卸载Anaconda 三、Miniconda安装Miniconda 四、异同比较 预备知识 (1) Python是一种编程语言。 (2) Anaconda是一款包管理工具,用来管理Python及其他语言的安装包,预装了很多…...

宝塔使用腾讯COS存储实现自动备份服务器网站数据图文教程
一、进入宝塔安装腾讯COS 点击设置打开后需要配置以下cos参数 二、腾讯云创建COS存储桶 选择私有读写,其他默认就行 三、创建访问密钥 四、配置宝塔中腾讯COS相关设置 很多人是配置错误导致无法正常链接cos region为cos存储桶所属地域 Bucker为存储桶名称 五、…...
npm命令介绍
npm 描述:Node Package Manager (NPM) 是 Node.js 的包管理器,用于安装、管理和发布 JavaScript 包。示例:npm -v npm access 描述:控制包的访问权限。需要管理员或拥有特定权限的用户才能执行。示例:npm access pu…...

openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接
文章目录 openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接100.1 背景信息100.2 前提条件100.3 注意事项100.4 操作步骤100.5 相关参考 openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安…...

ESP8266 Node Mcu开发板连接WIFI并上报数据到MQTT服务器——物联网应用开发
一、前言 本文主要介绍关于ESP8266 Node Mcu开发板如何连接WIFI并将本地采集的数据上传到MQTT服务器中。 大家调试可以使用MQTTBox 二、WIFI连接 首先,导入WIFI连接所需的头文件,引入所需库。 #include <ESP8266WiFi.h> 声明字符串常量࿰…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...