K8s 1.23.6版本部署:kubelet-1.23.6+kube-proxy-1.17.6

news2024/11/25 16:23:54

文章目录

  • 前言
  • 一、版本环境信息
  • 二、服务部署
    • 1.基础环境准备
    • 2.docker 服务部署,
    • 3.k8s服务部署
      • 3.1 安装k8s服务,
      • 3.2 修改配置文件
      • 3.3 执行初始化
    • 4.网络插件安装-calico
    • 5.dashboard插件安装
  • 卸载服务
  • 总结


前言

K8s 1.23.6版本部署:kubelet-1.23.6+kube-proxy-1.17.6
记录一下k8s的部署记录。


一、版本环境信息

  • 操作系统版本:CentOS Linux release 7.9.2009 (Core)
  • docker服务:Docker version 20.10.21, build baeda1f
  • kubelet:1.23.6
  • kubeadm:1.23.6
  • kubectl:1.23.6
  • kube-proxy:1.17.6
  • master-node-ip:172.16.31.33
  • node-ip:172.16.31.34

二、服务部署

1.基础环境准备

执行节点:所有节点

互信和/etc/hosts文件要提前准备好

#=================================================================
#作用:移除无用软件包、安装工具包、更新操作系统、关闭防火墙、
#     配置selinux、设置时区、调整CPU频率、备份网络配置、备份yum配置
#=================================================================
#移除无用软件包
yum remove NetworkManager* -y;
yum remove postfix* -y;
yum remove libvirt* -y;
#安装软件包
yum install tree nmap ntpd dos2unix lrzsz lsof wget tcpdump htop iftop iotop sysstat nethogs -y;
yum install psmisc net-tools bash-completion vim-enhanced -y;
yum install -y vim  pciutils traceroute  unzip zip expect yum-utils epel-release tar telnet;
#更新打补丁
yum update -y;
#关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux;
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;
#关闭防火墙
systemctl stop firewalld.service;
systemctl disable firewalld.service;
#设置时区
timedatectl set-timezone "Asia/Shanghai";
hwclock;
#CPU升频
yum install cpupowerutils -y ;
cpupower frequency-set -g performance;
#备份网卡配置文件
mkdir -p /etc/sysconfig/network-scripts/bak
cp /etc/sysconfig/network-scripts/ifcfg-* /etc/sysconfig/network-scripts/bak
#备份yum源文件
mkdir -p /etc/yum.repos.d/bak
cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
#修改系统参数,关闭swap分区
cat <<EOF >>  /etc/sysctl.conf 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF
sysctl -p

2.docker 服务部署,

执行节点:所有节点

使用阿里云的源,修改cgroupdriver,预防cgroup driver问题

#=================================================================
#作用:安装docker服务环境
#=================================================================
#修改yum源
sudo yum-config-manager --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo;
#修改cgroupdriver
cat > /etc/docker/daemon.json <<EOF
{
    "exec-opts":["native.cgroupdriver=systemd"],
    "log-driver":"json-file",
    "log-opts":{
        "max-size":"100m"
    }
}
EOF
#安装软件包
yum install docker-ce docker-ce-cli -y;
#启动服务,设置自启动
systemctl restart docker;
systemctl enable  docker;

3.k8s服务部署

3.1 安装k8s服务,

执行节点:所有节点

使用阿里云源指定安装1.23版本的kubeadm,kubelet,kubectl
因为1.24的版本默认运行时环境不是docker了
参考:https://blog.csdn.net/qq_48391148/article/details/127017827

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.23.6 kubeadm-1.23.6 kubectl-1.23.6
systemctl enable kubelet.service

3.2 修改配置文件

执行节点:master节点

获取配置文件之后修改配置

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

按照自己集群的情况修改配置文件

  • advertiseAddress: 172.16.31.33
  • imageRepository: registry.aliyuncs.com/google_containers
  • name: node33
  • podSubnet: 10.244.0.0/16
sed -i 's/imageRepository: k8s.gcr.io/imageRepository: registry.aliyuncs.com\/google_containers/g' kubeadm-config.yaml;
sed -i 's/advertiseAddress: 1.2.3.4/advertiseAddress: 172.16.31.33/g' kubeadm-config.yaml;
sed -i 's/name: node/name: node33/g' kubeadm-config.yaml;
sed -i 's/dnsDomain: cluster.local/dnsDomain: cluster.local\n  podSubnet: 10.244.0.0\/16/g' kubeadm-config.yaml;

然后追加下面的配置

cat >> kubeadm-config.yaml << EOF
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:
    SupportIPVSProxyMode: true
mode: ipvs
EOF

3.3 执行初始化

执行节点:master节点

执行初始化命令

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

结果:
在这里插入图片描述

按照提示执行新建后的命令

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

执行节点:node34
在node34节点执行join命令

kubeadm join 172.16.31.33:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:213fc7bd2e5f2fab60f911af991e7f34f9ba63141e917e2a49ec2df59cbb6732

增加后查看pod信息
在这里插入图片描述

proxy启动失败,进行降级操作

执行节点:master节点

kubectl -n kube-system set image daemonset/kube-proxy *=registry.aliyuncs.com/k8sxio/kube-proxy:v1.17.6

在这里插入图片描述

备注:v1.15.1版本使用如下命令进行初始化

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

4.网络插件安装-calico

执行节点:master节点

获取插件配置文件,修改网络配置后,进行安装

wget https://docs.projectcalico.org/manifests/calico.yaml

#更改配置
# - name: CALICO_IPV4POOL_CIDR    将注释打开,使用配置项                                                                                                                                                                
#   value: "192.168.0.0/16"   将地址改为podSubnet配置的10.244.0.0/16
sed -i 's/# - name: CALICO_IPV4POOL_CIDR/- name: CALICO_IPV4POOL_CIDR/g' calico.yaml;
sed -i 's/#   value: "192.168.0.0/  value: "10.244.0.0/g' calico.yaml;
kubectl apply -f calico.yaml

安装后的输出
在这里插入图片描述

如果安装异常了,可以使用下面命令卸载

kubectl delete -f calico.yaml

5.dashboard插件安装

执行节点:master节点

参考:https://blog.csdn.net/xhredeem/article/details/127439037

获取配置yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
# 打开服务器端口配置
# 配置dashboard使用的网络端口
sed -i 's/targetPort: 8443/targetPort: 8443\n      nodePort: 30443\n  type: NodePort/g' recommended.yaml;
#执行部署
kubectl  apply  -f  recommended.yaml
#成功后检查pod的启动状态
kubectl  get  pod -n kubernetes-dashboard

输出
在这里插入图片描述

获取普通用户token

#获取列表
kubectl  get  -n kubernetes-dashboard  secrets
#获取密钥
kubectl  describe  -n kubernetes-dashboard  secrets default-token-fjzh6

输出
在这里插入图片描述

获取管理员token dashboard-adminuser.yaml

cat >> dashboard-adminuser.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system
EOF

获取密钥

kubectl create -f dashboard-adminuser.yaml
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

输出
在这里插入图片描述
获取dashboard所在的节点

kubectl  get   -n kubernetes-dashboard  svc

在这里插入图片描述

访问node点的IP+Port

https://172.16.31.34:30443/#/login

在这里插入图片描述


卸载服务

部署中出现问题之后,可以使用卸载命令将集群卸载

kubeadm reset

总结

部署成功

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP/IP网络编程:P6->基于UDP的服务器端/客户端

本系列文章为《TCP/IP网络编程----尹圣雨》学习笔记&#xff0c;前面的系列文章链接如下 TCP/IP网络编程&#xff1a;P1-&#xff1e;理解网络编程和套接字 TCP/IP网络编程&#xff1a;P2-&#xff1e;套接字类型与协议设置 TCP/IP网络编程&#xff1a;P3-&#xff1e;地址族与…

【期末大作业】基于HTML+CSS+JavaScript南京大学网页校园教育网站html模板(3页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【App自动化测试】(十五)手机浏览器(webview)自动化测试

目录1. 手机浏览器自动化前提1.1 安装chromedriver1.2 安装对chromedriver版本1.3 配置capability1.4 设置chromedriver相关配置1.5 使用浏览器的inspect工具远程调试2. 手机浏览器测试代码python版本1. 手机浏览器自动化前提 五大前提&#xff1a; 安装chromedriver安装对ch…

Map集合的概述和接口的使用

目录 一、Map集合概述 1.Map接口的特点 2.方法 二、Map接口的使用 三、Map集合的实现类 1.HashMap 2.Hashtable 3.Properties 4.TreeMap 一、Map集合概述 1.Map接口的特点 &#xff08;1&#xff09;用于存储任意键值对 &#xff08;2&#xff09;键&#xff1a;无序…

阿里P8整合深入理解Dubbo实战+Kafka+分布式设计核心原理内部手册

一 深入理解Apache Dubbo与实战 近年来&#xff0c;随着业务规模的发展和复杂度的增加&#xff0c;传统的单体应用已经很难适应业务迭代的诉求&#xff0c;越来越多的公司开始进行服务化的改造。很高兴看到ApacheDubbo被许多公司采用&#xff0c;作为服务化改造的基础架构进行…

学习常用算法——python

常用算法 时间复杂度 在日常生活中, 我们描述物体的重量使用的是kg, 描述物体的长度使用的是m, 那么相对的, 在计算机科学中也需要一种度量来定性地描述算法的运行时间, 这种度量方法称为大O表示法. 声明f(n)作为我们的函数, n表示的参数. 不同的参数会导致算法运行的时间不同…

超低延时4K级可定制化专业视觉计算平台

> 内置超低延时4K30 ISP IP&#xff0c;ISP延时 0.7 ms > 内置GigE vision IP支持 GigE Vision2.0、GenICam V2.4.0标准&#xff0c;支持用户自定义XML描述文件 > 内置工业机器视觉行业标准的U3 vison IP > 基于FPGA,支持Bayer、YCbCr、RGB等格式,满足高帧率/高…

ElementUI实现在下拉列表里面进行搜索

分析: 首先我们需要实现上图的效果,然后Element-UI的el-select是没有的,所以需要自己写我们需要用到el-popover组件,然后使用它的v-model"visible"来实现控制显示我们在el-popover的slot"reference" 放一个el-select 使用popper-append-to-body"false…

C++ 之 移动构造函数

1、左值和右值 C( 包括 C) 中所有的表达式和变量要么是左值&#xff0c;要么是右值。 通俗的左值的定义就是非临时对象&#xff0c;那些可以在多条语句中使用的对象&#xff0c;表达式结束后依然存在的持久化对象&#xff0c;所有的具名变量或者对象都是左值。右值是指临时的…

<Android开发> Android vold - 第一篇 vold前言简介

本次主要讲解存储模块如U盘等设备在android设备中的管理和使用的模块。本次主要基于android 8.1版本进行解析。不同android版本 vold的内容可能会有所差异。读者可对比阅读解析。 1 Vold介绍 Android中Vold是volume Daemon,即Volume守护进程;Android没有使用Linux平台下的ud…

泛型的介绍和使用方法

目录 一、泛型概述 二、泛型类 三、泛型接口 1.直接在实现类中确定好类型 2.实现类也写成泛型类 四、泛型方法 五、泛型好处 六、泛型集合 1.概念 2.特点 一、泛型概述 1. 本质是参数化类型&#xff0c;把类型作为参数传递。 2. 常见的形式有泛型类、泛型接口、泛型…

【虚幻引擎】UE4/UE5 后期处理盒子(PostProcessVolume)

一、简介 PostProcessVolume&#xff08;后期处理盒子&#xff09;&#xff1a;UE4非常强大的一个后期处理&#xff0c;可以调节画面的色彩&#xff0c;相机的景深&#xff0c;视频的输出效果&#xff0c;环境的光线构造&#xff0c;电影级的氛围感。 二、参数介绍 一、场景中…

驱动开发 Linux按键中断点灯

华清远见上海中心22071班 三个按键实现按键中断&#xff0c; key1->led1 key2->led2 key3->led3 按键按一下灯亮&#xff0c;再按一下灯灭 #include <linux/module.h> #include <linux/init.h> #include <linux/cdev.h> #include <linux/f…

外贸供应链ERP怎么选?全流程综合管理解析

随着外贸体制深入改革、进出口权放开等&#xff0c;以往处于垄断地位&#xff0c;享有种种优惠政策的外贸企业&#xff0c;将面临越来越严峻的国内外市场的竞争及各种挑战。长期以来形成的相对落后的管理体制和经营模式&#xff0c;严重地影响外贸企业在新形势下的生存和发展。…

m基于GA遗传优化+SA模拟退火的混合改进算法的多产品多机器生产优化matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 这里&#xff0c;我们首先介绍一下改进算法的基本原理&#xff0c;按照前面说的&#xff0c;这里我们主要将GA和SA进行合并。 这里&#xff0c;我研究了下&#xff0c;将两种算法做如下方法的结合…

Microcorruption 第一关 Tutorial

Microcorruptioin 第一关 Tutorial 首先进入Tutorial这一关&#xff0c;这是闯关页面。 在主函数设置断点&#xff0c;控制台输入"break main"或"b main"或手动点击反汇编栏中main函数的第一行设置断点。 该闯关游戏主要是破解密码&#xff0c;查看主函数…

前端开发免费资源分享

Fancy-Border-Radius 地址&#xff1a;https://9elements.github.io/fancy-border-radius/ 简介&#xff1a;在线编辑border-radius的可视化工具&#xff0c;通过调节可以很方便地帮我们生成想要的形状&#xff0c;然后直接复制下面的css代码&#xff0c;即可使用 Make some …

sCrypt 合约中的椭圆曲线算法:第二部分

我们在脚本中实现了椭圆曲线 (EC) 算法。在之前的实现中&#xff0c;我们进行链下计算并在脚本中验证结果。我们这里直接用脚本计算。 基于EC的应用非常多&#xff0c;特别是在密码学领域&#xff0c;如数字签名、加密、承诺方案等。作为具体示例&#xff0c;我们重新实现了 E…

11.28作业

实现对点灯所涉及函数的封装 1.头文件 #ifndef __GPIO_H__ #define __GPIO_H__ //结构体封装 typedef struct{volatile unsigned int MODER;volatile unsigned int OTYPER;volatile unsigned int OSPEEDR;volatile unsigned int PUPDR;volatile unsigned int IDR;volatile un…

Kotlin进阶指南 - 单元测试

为了减少一些功能繁琐的测试流程&#xff0c;单元测试是提升开发效率的有效方式之一 在早些年的时候我有记录过一篇 Android 使用单元测试&#xff0c;只不过当时更多的针对 Java 方面的单元测试&#xff1b;在使用 Kotlin 后&#xff0c;我发现单元测试有点不同&#xff0c;好…