【k8s集群应用】K8S二进制安装大致步骤(简略版)

文章目录

  • K8S二进制安装
    • 部署etcd
      • 测试etcd集群(可选)
        • 恢复etcd数据库
    • 部署master组件
    • 部署node组件
    • K8S kubeadm安装
      • 关键命令
      • 更新kubeadm安装的K8S证书有效期
        • 方法一
        • 方法二
        • 查看证书有效期

K8S二进制安装

部署etcd

  1. 使用cfssl工具签发证书和私钥
  2. 下载解压etcd软件包,获取二进制文件 etcd etcdctl
  3. 准备etcd集群的配置文件
  4. 启动etcd服务进程,将所有etcd节点加入到集群中

测试etcd集群(可选)

查看etcd集群健康状态

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  endpoint health

查看etcd集群信息

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  endpoint status

查看etcd集群成员列表

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  member list

插入键值

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  put 键名 '键值'

查询键值

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  get 键名

删除键值

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  del 键名

查看所有的键

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  get --keys-only --prefix ""

备份etcd数据库

ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  snapshot save  备份文件路径

查看备份数据的信息

ETCDCTL_API=3 etcdctl -wtable  snapshot status 备份文件路径
恢复etcd数据库
  1. 关闭etcd数据库
systemctl stop etcd
  1. 备份当前数据目录
mv /var/lib/etcd  /var/lib/etcd.bak
  1. 在各个节点使用 etcdctl snapshot restore 恢复数据
ETCDCTL_API=3 etcdctl snapshot restore /root/etcd.db1 --data-dir /var/lib/etcd --name <节点名称> --initial-advertise-peer-urls https://<当前节点IP>:2380 --initial-cluster etcd01=https://IP1:2380,etcd02=https://IP2:2380,etcd03=https://IP3:2380 --initial-cluster-token <etcd集群Token> 
  1. 启动etcd数据库
systemctl start etcd
  1. 使用etcdctl验证etcd集群状态和数据

部署master组件

  1. 使用cfssl工具签发证书和私钥
  2. 下载解压K8S server软件包,获取二进制文件kube-apiserver kube-controller-manager kube-scheduler kubectl
  3. 准备apiserver启动时需要调用的token.csv文件
  4. 准备apiservercontroller-managerscheduler的启动参数配置文件
  5. 准备controller-managerschedulerkubectl的kubeconfig集群引导配置文件(用于连接和验证apiserver)
  6. 启动apiservercontroller-managerscheduler的服务进程
  7. 执行kubectl get cs命令查看master组件的健康状态

部署node组件

  1. 安装容器引擎
  2. 获取二进制文件 kubelet kube-proxy
  3. 准备kubeletkube-proxykubeconfig集群引导配置文件bootstrap.kubeconfig(kubelet首次访问apiserver时使用的文件)、kube-proxy.kubeconfig
  4. 准备kubeletkube-proxy的启动参数配置文件
  5. 启动kubelet服务进程(kubelet首次启动,会使用bootstrap.kubeconfigapiserver发起连接和CSR请求签发证书,master批准CSR请求后会由controller-manager生成kubelet的证书,再由apiserver发送给kubelet
  6. 先加载ipvs模块,再启动kube-proxy服务进程
  7. 安装CNI网络插件(flannel/caclico,创建Pod网络和实现Pod跨节点通信)和coreDNS(为K8S内的Pod提供DNS解析服务,可以使得在Pod中根据service资源名称解析成对应的clusterIP)
  8. 执行kubectl get nodes名称查看node节点的状态

K8S kubeadm安装

关键命令

kubeadm init
kubeadm join
  1. 所有节点进行初始化(防火墙、selinux、系统时间、内核版本、主机名、内核参数、ipvs模块),安装容器引擎、kubelet、kubeadm、kubectl,部署nginx/haproxy负载均衡和keepalived高可用
  2. 执行kubeadm config print init-defaults命令生成K8S集群初始化配置文件,并进行参数修改配置
  3. 执行kubeadm init --config 指定初始化配置配置文件 进行K8S集群的初始化,生成K8S集群的管理控制节点(master节点)
  4. 在其它节点执行kubeadm join命令将其它的master或node节点加入到K8S集群中
  5. 安装cni网络插件(flannel、calico)

更新kubeadm安装的K8S证书有效期

方法一

在master节点执行脚本./update-kubeadm-cert.sh all,将所有证书自动更新为十年有效期

方法二
cp /etc/kubernetes /etc/kubernetes.old                               #备份
kubeadm certs renew all --config 集群初始化配置文件                  #重新更新证书一年有效期
kubeadm init phase kubeconfig all --config 集群初始化配置文件        #更新kubeconfig配置文件
systemctl restart kubelet                                            #重启kubelet服务进程
mv /etc/kubernetes/manifests/*.yaml /tmp && sleep 10 && mv /tmp/*.yaml  /etc/kubernetes/manifests/        #重启以Pod形式运行的K8S组件
查看证书有效期
kubeadm certs check-expiration
openssl x509 -noout -dates -in /etc/kubernetes/pki/*.crt

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

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

相关文章

轻松上手:使用 Vercel 部署 HTML 页面教程

&#x1f600; 在学习前端的过程中&#xff0c;部署项目往往是一个令人头疼的问题。然而&#xff0c;Vercel 为我们提供了一个便捷且免费的解决方案。 Vercel 是一个强大的云平台&#xff0c;专门用于前端项目的部署和托管。它不仅支持多种前端框架和静态网站生成器&#xff0…

STL 剖析

STL 六大组件 「STL 六大组件的交互关系」 Container 通过 Allocator 取得数据储存空间Algorithm 通过 Iterator 存取 Container 内容Functor 可以协助 Algorithm 完成不同的策略变化Adapter 可以修饰或套接 Functor、Iterator 配置器(allocator) 配置器&#xff1a;负责空间…

HTTP—03

触发 GET 请求 1&#xff09;直接在浏览器 地址栏 输入 URL&#xff0c;此时构成了一个GET请求 2&#xff09;HTML中的一些特殊标签可能会触发 例如 img,a,link,script... 3&#xff09;通过Form表单触发&#xff08;Form本质也是一个HTML标签&#xff09; 4&#xff0…

C 数组:索引魔杖点化的数据星图阵列

一、数组 1.数组的概念 数组是⼀组相同类型元素的集合&#xff1b;从这个概念中我们就可以发现2个有价值的信息&#xff1a; 数组中存放的是1个或者多个数据&#xff0c;但是数组元素个数不能为0。数组中存放的多个数据&#xff0c;类型是相同的。 2.数组的分类 数组主要分为一…

苹果手机怎么清理空间:拯救你的拥挤手机

在数字生活的海洋中&#xff0c;我们的苹果手机就像一艘小船&#xff0c;载满了照片、应用、视频和各种下载的“宝贝”。随着时间的推移&#xff0c;这艘小船开始变得拥挤&#xff0c;航行速度放缓&#xff0c;甚至有时候直接卡壳。苹果手机怎么清理空间&#xff1f;是时候学会…

Ubuntu上如何部署Nginx?

环境&#xff1a; Unbuntu 22.04 问题描述&#xff1a; Ubuntu上如何部署Nginx&#xff1f; 解决方案&#xff1a; 在Ubuntu上部署Nginx是一个相对简单的过程&#xff0c;以下是详细的步骤指南。我们将涵盖安装Nginx、启动服务、配置防火墙以及验证安装是否成功。 1. 更新…

javaScriptBOM

1.1、BOM概述 1.1.1、BOM简介 BOM&#xff08;browser Object&#xff09;即浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交互的对象&#xff0c;其核心对象是window。 BOM由一系列的对象构成&#xff0c;并且每个对象都提供了很多方法与属性 BOM缺乏标准…

Unity3D仿星露谷物语开发7之事件创建动画

1、目标 掌握事件通知的Publisher - Subscriber设计模式&#xff0c;并通过事件通知触发动画。 2、发布者/订阅者模式 首先&#xff0c;定义事件Event 然后&#xff0c;Publisher触发事件 最后&#xff0c;Subscriber订阅事件并进行处理 &#xff08;1&#xff09;创建动作…

点击展示大图预览

原文链接在table表格里能够实现&#xff0c;点击里面的图片实现大图预览的效果&#xff1b; 一、先安装viewer — 使用npm安装 npm install v-viewer --save二、在main.js中引入 import Viewer from v-viewer //点击图片大图预览 import viewerjs/dist/viewer.css Vue.use(…

安全算法基础(一)

安全算法是算法的分支之一&#xff0c;还的依靠大量的数学基础进行计算&#xff0c;本文参照兜哥的AI安全样本对抗&#xff0c;做一个简单的算法安全概括&#xff0c;从零学习。 最新的安全算法对于我们常规的攻击样本检测&#xff0c;效果是不理想的&#xff0c;为了探究其原…

aioice里面candidate固定UDP端口测试

环境&#xff1a; aioice0.9.0 问题描述&#xff1a; aioice里面candidate固定UDP端口测试 解决方案&#xff1a; /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…

UE UMG 多级弹出菜单踩坑

多级弹出菜单 https://www.bilibili.com/video/BV1ub411J7nA 运行时添加 widget 的方法 create widget 然后 add child 到某个组件&#xff0c;比如 canvas 运行时修改 widget 位置的方法 set widget slot position 用起来没效果 怀疑是因为我没有传入 slot 但是暂时不知…

金碟中间件-AAS-V10.0安装

金蝶中间件AAS-V10.0 AAS-V10.0安装 1.解压AAS-v10.0安装包 unzip AAS-V10.zip2.更新license.xml cd /root/ApusicAS/aas# 这里要将license复制到该路径 [rootvdb1 aas]# ls bin docs jmods lib modules templates config domains …

linux-----网络编程

网络编程基础概念 IP地址&#xff1a;是互联网协议地址&#xff0c;用于在网络中唯一标识一台设备。在IPv4中&#xff0c;地址是32位的二进制数&#xff0c;通常以点分十进制表示&#xff0c;如192.168.1.1。IPv6是128位的地址&#xff0c;用于提供更多的地址空间&#xff0c;格…

基于蓝牙通信的手机遥控智能灯(论文+源码)

1.系统设计 灯具作为人们日常生活的照明工具为人们生活提供光亮&#xff0c;本次基于蓝牙通信的手机遥控智能灯设计功能如下&#xff1a; &#xff08;1&#xff09;用户可以通过蓝牙通信模块的作用下&#xff0c;在手机端遥控切换智能灯不同的工作模式&#xff1b; &#x…

阿里云百炼大模型生成贪吃蛇小游戏

阿里云百炼大模型生成贪吃蛇小游戏 为了在贪吃蛇游戏中添加背景音乐&#xff0c;我们可以使用Pygame的mixer模块。以下是修改后的代码&#xff0c;包含了背景音乐的加载和播放功能&#xff1a; 安装Pygame&#xff08;如果你还没有安装&#xff09;&#xff1a; pip install p…

Pytorch | 利用FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集FGSM介绍算法原理算法特点应用场景局限性 FGSM代码实现FGSM算法实现攻击效果 代码汇总fgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR1…

3D Gaussian Splatting for Real-Time Radiance Field Rendering-简洁版

1. 研究背景与问题 传统的3D场景表示方法&#xff0c;如网格和点云&#xff0c;适合GPU加速的光栅化操作&#xff0c;但缺乏灵活性。而基于神经辐射场&#xff08;NeRF&#xff09;的表示方式&#xff0c;尽管质量高&#xff0c;但需要高成本的训练和渲染时间。此外&#xff0…

安卓环境配置及打开新项目教程,2024年12月20日最新版

1.去官网下载最新的Android Studio&#xff0c;网址&#xff1a;https://developer.android.com/studio?hlzh-cn 2.下载加速器&#xff0c;注册账号&#xff0c;开启加速器。网址&#xff1a;放在文末。 3.下载安卓代码&#xff0c;项目的路径上不能有中文&#xff0c;特别是…

不会心理描写,神态描写怎么办?

不会心理描写&#xff0c;神态描写怎么办&#xff1f; 文学创作&#xff0c;精微之处在于心理与神态之描绘。 一、夯实基础&#xff0c;积累素材。 欲使心理与神态描写生动&#xff0c;需先厚积薄发。博览群书&#xff0c;尤重经典之作。 “读万卷书&#xff0c;行万里路。…