当前位置: 首页 > news >正文

k8s(5)

目录

使用Kubeadm安装k8s集群:

初始化操作:

每台主从节点:

升级内核:

所有节点安装docker :

所有节点安装kubeadm,kubelet和kubectl:

修改了 kubeadm-config.yaml,将其传输给其他master节点,先完成所有master节点的镜像拉取:

修改controller-manager和scheduler配置文件:

部署dashboard:


使用Kubeadm安装k8s集群:

环境准备:2主2从

master01,02:192.168.233.10,192.168.233.20

node01,02:192.168.233.30,192.168.233.40

负载均衡器:192.168.233.50,192.168.233.60


注意事项:
master节点cpu核心数要求大于2
最新的版本不一定好,但相对于旧版本,核心功能稳定,但新增功能、接口相对不稳
学会一个版本的 高可用部署,其他版本操作都差不多
宿主机尽量升级到CentOS 7.9
内核kernel升级到 4.19+ 这种稳定的内核
部署k8s版本时,尽量找 1.xx.5 这种大于5的小版本(这种一般是比较稳定的版本)

初始化操作:

每台主从节点:

systemctl stop firewalld
systemctl disable firewalld

setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X


swapoff -a                    
sed -ri 's/.*swap.*/#&/' /etc/fstab

for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

hostnamectl set-hostname master01
hostnamectl set-hostname master02
hostnamectl set-hostname node01
hostnamectl set-hostname node02

vim /etc/hosts

192.168.233.10 master01
192.168.233.20 master02
192.168.233.30 node01
192.168.233.40 node02

cat > /etc/sysctl.d/kubernetes.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF

sysctl --system

yum -y install ntpdate

ntpdate ntp.aliyun.com

crontab -e

*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com &> /dev/null

升级内核:

[elrepo]
name=elrepo
baseurl=https://mirrors.aliyun.com/elrepo/archive/kernel/el7/x86_64
gpgcheck=0
enabled=1

升级所有节点内核:

yum install -y kernel-lt-devel  kernel-lt

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

设置默认启动内核

grub2-set-default 0

修改内核参数:

vim /etc/security/limits.conf 

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited

重启:

reboot

ulimit -a

for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

所有节点安装docker :

yum install -y yum-utils device-mapper-persistent-data lvm2 

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

yum install -y docker-ce docker-ce-cli containerd.io

cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "500m", "max-file": "3"
  }
}
EOF

systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service 

docker info | grep "Cgroup Driver"

所有节点安装kubeadm,kubelet和kubectl:

定义kubernetes源:

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

yum install -y kubelet-1.20.15 kubeadm-1.20.15 kubectl-1.20.15

配置Kubelet使用阿里云的pause镜像:

cat > /etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2"
EOF

开机自启kubelet:

systemctl enable --now kubelet

在负载均衡器上部署nginx和keepalived(跟二进制安装的一样):

在 master01 节点上设置集群初始化配置文件:

kubeadm config print init-defaults > /opt/kubeadm-config.yaml

 修改内容:

可选,有则添加,没有则用自带的local模块:

    external:
       endpoints:
        - https://192.168.233.10:2379
      - https://192.168.233.20:2379
      caFile: /opt/etcd/ssl/ca.pem
      certFile: /opt/etcd/ssl/server.pem
     keyFile: /opt/etcd/ssl/server-key.pem
 

podSubnet: "10.244.0.0/16"

---

apiVersion: kubeproxy.config.k8s.io/v1alpha1

kind: KubeProxyConfiguration

mode: ipvs

修改了 kubeadm-config.yaml,将其传输给其他master节点,先完成所有master节点的镜像拉取:

scp kubeadm-config.yaml master02:/opt/

kubeadm config images pull --config /opt/kubeadm-config.yaml

master01 节点进行初始化:

 kubeadm init --config kubeadm-config.yaml --upload-certs | tee kubeadm-init.log

配置 kubectl:

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

修改controller-manager和scheduler配置文件:

vim /etc/kubernetes/manifests/kube-scheduler.yaml 
vim /etc/kubernetes/manifests/kube-controller-manager.yaml

systemctl restart kubelet

初始化后会生成 etc/kubernetes/目录下文件:

其他节点也如此操作:

若初始化失败,进行的操作
kubeadm reset -f
ipvsadm --clear 
rm -rf ~/.kube
再次进行初始化

master节点对接:

kubeadm join 192.168.233.100:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:4b0444f7df160c2ae1515225cb4746c21ff7ce11099fc8540d63f333d93657d8 \
    --control-plane --certificate-key 7be247a882d02fce65b7d6d224d29dbadc7c378299d8b50539f237657fa3cebf

node 节点加入集群:

kubeadm join 192.168.233.100:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:4b0444f7df160c2ae1515225cb4746c21ff7ce11099fc8540d63f333d93657d8 

部署网络插件:

将文件传给master:

部署dashboard:

在 master01 节点上操作上传 recommended.yaml 文件到 /opt/目录中:

创建service account并绑定默认cluster-admin管理员集群角色:

kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

访问即可。

相关文章:

k8s(5)

目录 使用Kubeadm安装k8s集群&#xff1a; 初始化操作&#xff1a; 每台主从节点&#xff1a; 升级内核&#xff1a; 所有节点安装docker &#xff1a; 所有节点安装kubeadm&#xff0c;kubelet和kubectl&#xff1a; 修改了 kubeadm-config.yaml&#xff0c;将其传输给…...

【服务器数据恢复】ext3文件系统下硬盘坏道掉线的数据恢复案例

服务器数据恢复环境&#xff1a; 一台IBM某型号服务器上有16块FC硬盘组建RAID阵列。上层linux操作系统&#xff0c;ext3文件系统&#xff0c;部署有oracle数据库。 服务器故障&检测&#xff1a; 服务器上跑的业务突然崩溃&#xff0c;管理员发现服务器上有2块磁盘的指示灯…...

Sentinel 动态规则扩展

一、规则 Sentinel 的理念是开发者只需要关注资源的定义&#xff0c;当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则&#xff1a; 通过 API 直接修改 (loadRules)通过 DataSource 适配不同数据源修改 手动通过 API 修改比较直观&#xff0c;…...

UE5 UE4 自定义插件自动开启关联插件(plugin enable)

在我们自己编写UE4、UE5的插件时&#xff0c;常常需要开启相关联的插件进行功能编写。 例如&#xff1a;UE4/5 批量进行贴图Texture压缩、修改饱和度_ue4批量修改纹理大小-CSDN博客 而让插件使用者每次使用时&#xff0c;依次进行开启其他相关联插件确实有些麻烦。 如何只需要…...

Android摄像头横屏的时候_人脸预览横向显示_问题解决---Android原生开发工作笔记164

在Android系统的平板中发现一个问题,我们做的一个Android程序,横屏的时候,摄像头在上面, 然后这个时候程序中的一个人脸预览页面,横向手持平板,摄像头在上面,但是这个时候预览的摄像头画面却是很像头像朝左,也是横过来的. private int getCameraOrientation(int cameraId) {Ca…...

网络安全防御保护 Day6

深度检测技术 DFI&#xff08;深度包检测技术&#xff09;&#xff1a;主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对 数据包的内容进行识别。 DPI&#xff08;深度流检测技术&#xff09;&#xff1a;一种基于流量…...

自动驾驶消息传输机制-LCM

需要用到LCM消息通讯&#xff0c;遂研究下。 这里写目录标题 1 LCM简介2. LCM源码分析3 LCM C教程与实例3.1 安装配置及介绍3.2 创建类型定义3.3 初始化LCM3.4 发布publish一个消息3.5 订阅和接收一个消息3.6 LCM进程间通讯3.7 注意事项&#xff1f;3.7.1 当数据结构定义的是数…...

架构设计实践:熟悉架构设计方法论,并动手绘制架构设计图

文章目录 一、架构设计要素1、架构设计目标2、架构设计模式&#xff08;1&#xff09;分而治之&#xff08;2&#xff09;迭代式设计 3、架构设计的输入&#xff08;1&#xff09;概览&#xff08;2&#xff09;功能需求 - WH分析法&#xff08;3&#xff09;质量 - “怎么”分…...

【推荐算法系列十六】:协同过滤

文章目录 参考原理基于邻域的协同过滤算法基于用户的协同过滤&#xff08;User-Based Collaborative Filtering&#xff09;基于内容的协同过滤 基于模型的协同过滤算法 扩展优缺点 参考 推荐系统之神经协同过滤 原理 基于邻域的协同过滤算法 基于邻域的协同过滤算法又包括…...

linux动态库加载相关

linux下动态库搜索规则 (1)编译目标代码时指定的动态库搜索路径,也就是RPATH&#xff1b; (2)环境变量LD_LIBRARY_PATH指定的动态库搜索路径&#xff1b; (3)配置文件/etc/ld.so.conf中指定的动态库搜索路径&#xff1b;配置完毕后需运行ldconfig命令生效&#xff1b; (4)默…...

python 基础绘图函数 实例

简介 在 Python 中&#xff0c;有许多用于绘图的库。以下是一些常用的 Python 绘图库及其基本绘图函数的简要介绍&#xff1a; Matplotlib: matplotlib.pyplot.plot(x, y): 绘制线图。matplotlib.pyplot.scatter(x, y): 绘制散点图。matplotlib.pyplot.bar(x, height): 绘制条…...

28. 找出字符串中第一个匹配项的下标(力扣LeetCode)

文章目录 28. 找出字符串中第一个匹配项的下标题目描述暴力KMP算法 28. 找出字符串中第一个匹配项的下标 题目描述 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。…...

1 开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程

开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程 作者将狼才鲸日期2024-02-27 一、前景提要 如果通过DevEco Marketplace网站获取下载源码的话&#xff0c;不全&#xff0c;有些板子下不到&#xff1b;OpenHarmony开发板列表&#xff0c;官方…...

洛谷C++简单题小练习day21—梦境数数小程序

day21--梦境数数--2.25 习题概述 题目背景 Bessie 处于半梦半醒的状态。过了一会儿&#xff0c;她意识到她在数数&#xff0c;不能入睡。 题目描述 Bessie 的大脑反应灵敏&#xff0c;仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码&#xff08;0…9&#x…...

LabVIEW高精度闭式微小型循环泵性能测试

LabVIEW高精度闭式微小型循环泵性能测试 开发了一套基于LabVIEW的高精度闭式微小型循环泵性能测试系统&#xff0c;旨在通过先进的测试技术和虚拟仪器技术&#xff0c;对微小型循环泵的性能进行精确测量和分析&#xff0c;从而优化泵的设计和性能&#xff0c;提高其在航空、机…...

同局域网共享虚拟机(VMware)

一、前言 首先我们先来了解下 VMware 的三种网络模式桥接模式、NAT模式、仅主机模式&#xff0c;网络类型介绍详情可以参考下我之前的文档 Linux系统虚拟机安装&#xff08;上&#xff09;第三章 - 第9步指定网络类型。了解三种网络模式的原理之后&#xff0c;再来剖析下需求&…...

docker学习快速入门

目录 Linux下安装docker配置阿里云镜像加速docker命令部署安装Tomcat、ES容器数据卷DockerFiledocker网络制作tomcat镜像Redis集群部署SpringBoot微服务打包docker镜像拓展 什么是Docker Docker是内核级别的虚拟化&#xff0c;可以在一个物理机上可以运行很多的容器实例。服务…...

大语言模型LLM推理加速:LangChain与ChatGLM3-6B的推理加速技术(LLM系列11)

文章目录 大语言模型LLM推理加速&#xff1a;LangChain与ChatGLM3-6B的推理加速技术&#xff08;LLM系列11&#xff09;引言LangChain框架下的推理优化LangChain的核心理念与功能特点分布式计算与知识图谱集成优化推理路径实例分析&#xff1a;使用链式查询与缓存机制提升模型推…...

GSVA -- 学习记录

文章目录 1.原理简介2. 注意事项3. 功能实现代码实现部分 4.可视化5.与GSEA比较 1.原理简介 Gene Set Variation Analysis (GSVA) 基因集变异分析。可以简单认为是样本数据中的基因根据表达量排序后形成了一个rank list&#xff0c;这个rank list 与 预设的gene sets&#xff…...

基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的旅游网管理系统设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

深入解析 ReentrantLock:原理、公平锁与非公平锁的较量

ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...