day43(9/4)——k8s

news2024/9/21 0:41:48

一、前期准备
1、配置主机映射
[root@k8s-master ~]# vim /etc/hosts

192.168.8.168   k8s-master
192.168.8.176   k8s-node1
192.168.8.177   k8s-node2
[root@k8s-master ~]# ping k8s-master

2、配置yum源
[root@k8s-master yum.repos.d]# vim kubernetes.repo

[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/rpmpackage-key.gpg
[root@k8s-master yum.repos.d]# vim docker-ce.repo 

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
 
[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

3、安装必备工具
[root@k8s-master yum.repos.d]# yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent lvm2 git -y

4、时间同步
[root@k8s-master yum.repos.d]# yum -y install ntpdate

[root@k8s-master yum.repos.d]# ntpdate time2.aliyun.com

[root@k8s-master yum.repos.d]# crontab -e

* 5 * * * /usr/sbin/ntpdate time2.aliyun.com
5、配置limit
[root@k8s-master yum.repos.d]# ulimit -SHn 65535    //单个进程可以打开的⽂件数量将被限制为 65535

[root@k8s-master yum.repos.d]# vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
6、安装k8s高可用git仓库
[root@k8s-master ~]# cd /root/ ; git clone https://gitee.com/dukuan/k8s-ha-install.git

[root@k8s-master ~]#  yum update -y -- exclude=kernel* --nobest && reboot

二、配置内核模块
1、配置ipvs模块
[root@k8s-master ~]# yum install ipvsadm ipset sysstat conntrack libseccomp -y

[root@k8s-master ~]# modprobe -- ip_vs
[root@k8s-master ~]# modprobe -- ip_vs_rr
[root@k8s-master ~]# modprobe -- ip_vs_wrr
[root@k8s-master ~]# modprobe -- ip_vs_sh
[root@k8s-master ~]# modprobe -- nf_conntrack

[root@k8s-master ~]# vim /etc/modulesload.d/ipvs.conf

# 在系统启动时加载下列 IPVS 和相关功能所需的模块
ip_vs                    # 负载均衡模块
ip_vs_lc            # 用于实现基于连接数量的负载均衡算法
ip_vs_wlc            # 用于实现带权重的最少连接算法的模块
ip_vs_rr            # 负载均衡rr算法模块
ip_vs_wrr            # 负载均衡wrr算法模块
ip_vs_lblc        # 负载均衡算法,它结合了最少连接(LC)算法和基于偏置的轮询(Round Robin with Bias)算法
ip_vs_lblcr        # 用于实现基于链路层拥塞状况的最少连接负载调度算法的模块
ip_vs_dh            # 用于实现基于散列(Hashing)的负载均衡算法的模块
ip_vs_sh            # 用于源端负载均衡的模块
ip_vs_fo            # 用于实现基于本地服务的负载均衡算法的模块
ip_vs_nq            # 用于实现NQ算法的模块
ip_vs_sed            # 用于实现随机早期检测(Random Early Detection)算法的模块
ip_vs_ftp            # 用于实现FTP服务的负载均衡模块
ip_vs_sh
nf_conntrack    # 用于跟踪网络连接的状态的模块
ip_tables            # 用于管理防护墙的机制
ip_set                # 用于创建和管理IP集合的模块
xt_set                # 用于处理IP数据包集合的模块,提供了与iptables等网络工具的接口
ipt_set                # 用于处理iptables规则集合的模块
ipt_rpfilter    # 用于实现路由反向路径过滤的模块
ipt_REJECT        # iptables模块之一,用于将不符合规则的数据包拒绝,并返回特定的错误码
ipip                    # 用于实现IP隧道功能的模块,使得数据可以在两个网络之间进行传输

2、k8s内核模块
[root@k8s-master ~]# yum -y install kubernetes

[root@k8s-master ~]# vim /etc/sysctl.d/k8s.conf

# 写⼊k8s所需内核模块
net.bridge.bridge-nf-call-iptables = 1 # 控制⽹络桥接与iptables之间的⽹络转发⾏为
net.bridge.bridge-nf-call-ip6tables = 1 # ⽤于控制⽹络桥接(bridge)的IP6tables过滤规则。当该参数设置为1时,表示启⽤对⽹络桥接的IP6tables过滤规则
fs.may_detach_mounts = 1 # ⽤于控制⽂件系统是否允许分离挂载,1表示允许
net.ipv4.conf.all.route_localnet = 1 # 允许本地⽹络上的路由。设置为1表示允许,设置为0表示禁⽌。
vm.overcommit_memory=1 # 控制内存分配策略。设置为1表示允许内存过量分配,设置为0表示不允许。
vm.panic_on_oom=0 # 决定当系统遇到内存不⾜(OOM)时是否产⽣panic。设置为0表示不产⽣panic,设置为1表示产⽣panic。
fs.inotify.max_user_watches=89100 # inotify可以监视的⽂件和⽬录的最⼤数量。
fs.file-max=52706963 # 系统级别的⽂件描述符的最⼤数量。
fs.nr_open=52706963 # 单个进程可以打开的⽂件描述符的最⼤数量。
net.netfilter.nf_conntrack_max=2310720 # ⽹络连接跟踪表的最⼤⼤⼩。
net.ipv4.tcp_keepalive_time = 600 # TCP保活机制发送探测包的间隔时间(秒)。
net.ipv4.tcp_keepalive_probes = 3 # TCP保活机制发送探测包的最⼤次数。
net.ipv4.tcp_keepalive_intvl =15 # TCP保活机制在发送下⼀个探测包之前等待响应的时间(秒)。
net.ipv4.tcp_max_tw_buckets = 36000 # TCP TIME_WAIT状态的bucket数量。
net.ipv4.tcp_tw_reuse = 1 # 允许重⽤TIME_WAIT套接字。设置为1表示允许,设置为0表示不允许。
net.ipv4.tcp_max_orphans = 327680 # 系统中最⼤的孤套接字数量。
net.ipv4.tcp_orphan_retries = 3 # 系统尝试重新分配孤套接字的次数。
net.ipv4.tcp_syncookies = 1 # ⽤于防⽌SYN洪⽔攻击。设置为1表示启⽤SYN cookies,设置为0表示禁⽤。
net.ipv4.tcp_max_syn_backlog = 16384 # SYN连接请求队列的最⼤⻓度。
net.ipv4.ip_conntrack_max = 65536 # IP连接跟踪表的最⼤⼤⼩。
net.ipv4.tcp_max_syn_backlog = 16384 # 系统中最⼤的监听队列的⻓度。net.ipv4.tcp_timestamps = 0 # ⽤于关闭TCP时间戳选项。
net.core.somaxconn = 16384 # ⽤于设置系统中最⼤的监听队列的⻓度

三、基本组件安装
1、安装docker
[root@k8s-master ~]# yum remove -y podman runc containerd   //卸载旧版本
[root@k8s-master ~]# yum install containerd.io -y

[root@k8s-master ~]# yum list installed | grep docker

[root@k8s-master ~]# yum list | grep docker-ce

[root@k8s-master ~]# yum -y remove docker
[root@k8s-master ~]# yum install docker-ce docker-ce-cli -y

2、配置 Containerd 所需模块
[root@k8s-master ~]# cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
> overlay
> br_netfilter
> EOF
overlay
br_netfilter
[root@k8s-master ~]# modprobe -- overlay
[root@k8s-master ~]# modprobe -- br_netfilter

3、配置 Containerd 所需内核
[root@k8s-master ~]# vim /etc/sysctl.d/99-kubernetes-cri.conf

 net.bridge.bridge-nf-call-iptables  = 1 # ⽤于控制⽹络桥接是否调⽤iptables进⾏包过滤和转发。
 net.ipv4.ip_forward                 = 1 # 路由转发,1为开启
 net.bridge.bridge-nf-call-ip6tables = 1 # 控制是否在桥接接⼝上调⽤IPv6的iptables进⾏数据包过滤和转发。
[root@k8s-master ~]# sysctl --system

4、Containerd 配置⽂件
[root@k8s-master ~]# mkdir -p /etc/containerd
[root@k8s-master ~]# containerd config default | tee /etc/containerd/config.toml

[root@k8s-master ~]# vim /etc/containerd/config.toml 

128             sandbox_image = "registry.cn-hangzhou.aliyuncs.co    m/google_containers/pause:3.9"
[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl start containerd.service 
[root@k8s-master ~]# systemctl enable containerd.service 

5、配置crictl客户端连接的运行方式
[root@k8s-master ~]# vim /etc/crictl.yaml

 runtime-endpoint: unix:///run/containerd/containerd.sock
 image-endpoint: unix:///run/containerd/containerd.sock
 timeout: 10 
 debug: false  
6、安装kubernetes组件
[root@k8s-master ~]# yum list kubeadm.x86_64 -- showduplicates | sort -r

[root@k8s-master ~]# yum install kubeadm-1.28* kubelet-1.28* kubectl-1.28* -y

Transaction check error:
  file /usr/bin/kubectl from install of kubectl-1.28.2-0.x86_64 conflicts with file from package kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64

错误概要
-------------

[root@k8s-master ~]# systemctl start kubelet.service
[root@k8s-master ~]# systemctl enable kubelet.service

[root@k8s-master ~]# yum -y remove kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64
[root@k8s-master ~]# yum install kubeadm-1.28*  kubectl-1.28* -y

7、Kubernetes 集群初始化
1. Kubeadm 配置⽂件
[root@k8s-master ~]# vim kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta3              # 指定Kubernetes配置文件的版本,使用的是kubeadm API的v1beta3版本
bootstrapTokens:                # 定义bootstrap tokens的信息。这些tokens用于在Kubernetes集群初始化过程中进行身份验证
- groups:               # 定义了与此token关联的组
  - system:bootstrappers:kubeadm:default-node-token 
  token: 7t2weq.bjbawausm0jaxury                # bootstrap token的值
  ttl: 24h0m0s          # token的生存时间,这里设置为24小时
  usages:                       # 定义token的用途
  - signing             # 数字签名
  - authentication              # 身份验证
kind: InitConfiguration         # 指定配置对象的类型,InitConfiguration:表示这是一个初始化配置
localAPIEndpoint:               # 定义本地API端点的地址和端口
  advertiseAddress: 192.168.15.11
  bindPort: 6443
nodeRegistration:               # 定义节点注册时的配置
  criSocket: unix:///var/run/containerd/containerd.sock         # 容器运行时(CRI)的套接字路径
  name: k8s-master              # 节点的名称
  taints:               # 标记
  - effect: NoSchedule          # 免调度节点
    key: node-role.kubernetes.io/control-plane          # 该节点为控制节点
---
apiServer:              # 定义了API服务器的配置
  certSANs:             # 为API服务器指定了附加的证书主体名称(SAN),指定IP即可
  - 192.168.15.11
  timeoutForControlPlane: 4m0s          # 控制平面的超时时间,这里设置为4分钟
apiVersion: kubeadm.k8s.io/v1beta3              # 指定API Server版本
certificatesDir: /etc/kubernetes/pki    # 指定了证书的存储目录
clusterName: kubernetes         # 定义了集群的名称为"kubernetes"
controlPlaneEndpoint: 192.168.15.11:6443                # 定义了控制节点的地址和端口
controllerManager: {}           # 控制器管理器的配置,为空表示使用默认配置
etcd:           # 定义了etcd的配置
  local:                # 本地etcd实例
    dataDir: /var/lib/etcd              # 数据目录
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers            # 指定了Kubernetes使用的镜像仓库的地址,阿里云的镜像仓库。
kind: ClusterConfiguration              # 指定了配置对象的类型,ClusterConfiguration:表示这是一个集群配置
kubernetesVersion: v1.28.2              # 指定了kubernetes的版本
networking:             # 定义了kubernetes集群网络设置
  dnsDomain: cluster.local              # 定义了集群的DNS域为:cluster.local
  podSubnet: 172.16.0.0/16              # 定义了Pod的子网
  serviceSubnet: 10.96.0.0/16   # 定义了服务的子网
scheduler: {}           # 使用默认的调度器行为

2. 下载组件镜像
[root@k8s-master ~]# kubeadm config migrate --old-config kubeadm-config.yaml --new-config new.yaml
[root@k8s-master ~]# ls


[root@k8s-master ~]# kubeadm config images pull --config /root/new.yaml

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

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

相关文章

山东大学机试试题合集

&#x1f370;&#x1f370;&#x1f370;高分篇已经涵盖了绝大多数的机试考点&#xff0c;由于临近预推免&#xff0c;各校的机试蜂拥而至&#xff0c;我们接下来先更一些各高校机试题合集&#xff0c;算是对前边学习成果的深入学习&#xff0c;也是对我们代码能力的锻炼。加油…

SQL通用语法、SQL分类以及DDL

1.SQL 1.1SQL通用语法 1.SQL语句可以单行或多行书写&#xff0c;以分号结尾2.SQL语句可以使用空格/缩进来增强语句的可读性。3.MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写。4.注释&#xff1a; 单行注释&#xff1a;–空格 注释内容或#注释内容&#…

浏览器控制台安装并使用npm

​ 有时候想调用npm里的库跟api&#xff0c;正常我们项目环境里可以直接调用&#xff0c;其实也可以直接在开发者工具的控制台里安装&#xff0c;然后调用安装好的库的api Github安装方式&#xff1a;console-importer 安装完成后我们就可以安装第三方的库&#xff0c;然后直…

【Hot100算法刷题集】哈希-01-两数之和(暴力枚举再优化,也不是哈希表的对手)

&#x1f3e0;关于专栏&#xff1a;专栏用于记录LeetCode中Hot100专题的所有题目 &#x1f3af;每日努力一点点&#xff0c;技术变化看得见 题目转载 题目描述 &#x1f512;link->题目跳转链接 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中…

数据结构-栈、队列-相关练习

数据结构-栈、队列-相关练习 1.用队列实现栈2.用栈实现队列3.设计循环队列 1.用队列实现栈 用队列实现栈 题目概述&#xff1a;请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 em…

《信息技术 云计算 边缘云通用技术要求》国家标准发布,九州未来参编

日前&#xff0c;2024年第17号国家标准公告发布&#xff0c;由全国信标委云计算标准工作组组织制定、九州未来作为行业专家单位参编的《信息技术 云计算 边缘云通用技术要求》国家标准正式获批发布。 边缘云作为云计算技术的有效补充和拓展&#xff0c;能够实现将云计算能力拓展…

信捷 XD PLC 数据寄存器的偏移量

信捷 XD PLC&#xff0c;数据寄存器 D 可用作软元件的偏移量&#xff0c;使得软元件的使用更加简单和便于控制。 格式&#xff1a;Dn[Dm]、Xn[Dm]、Yn[Dm]、Mn[Dm]等。 带偏移的位组成的字寄存器&#xff1a;DXn[Dm]表示 DX[nDm]。 带偏移的软元件&#xff0c;偏移量只可用软…

信息安全发展阶段与形式

关注这个证书的其他相关笔记&#xff1a;NISP 一级 —— 考证笔记合集-CSDN博客 0x01&#xff1a;信息安全的发展阶段 信息安全的发展阶段可以参照下面的思维导图&#xff1a; 0x02&#xff1a;我国的信息安全形式 2013 年&#xff0c;“棱镜门” 事件在全球持续发酵&#xf…

创业型公司如何实现数字化营销突破?

​在当今数字化时代&#xff0c;创业型公司可谓机遇与挑战并存。如何利用数字化营销手段实现突破&#xff0c;成为发展关键。 一、现状之困 资源有限&#xff1a;创业型公司资金、人力相对匮乏&#xff0c;难在传统营销上大笔投入。 品牌知名度低&#xff1a;新公司在市场上认…

【启明智显技术分享】探讨CAN总线相关知识以及Model3C 2路CAN的应用

一、 CAN总线相关知识 CAN总线概述 CAN&#xff08;Controller Area Network&#xff09;总线是一种高实时性、高可靠性和灵活性的串行通信协议&#xff0c;广泛应用于汽车和工业控制系统中。它由德国BOSCH公司开发&#xff0c;最高速率可达到1Mbps&#xff0c;具有强大的检错…

一台手机一个ip地址吗?手机ip地址泄露了怎么办

在数字化时代&#xff0c;‌手机作为我们日常生活中不可或缺的一部分&#xff0c;‌其网络安全性也日益受到关注。‌其中一个常见的疑问便是&#xff1a;‌“一台手机是否对应一个固定的IP地址&#xff1f;‌”实际上&#xff0c;‌情况并非如此简单。‌本文首先解答这一问题&a…

jQuery入门(七)jQuery实现按钮分页

一、分页案例分析 功能分析&#xff1a;使用分页插件&#xff0c;实现分页&#xff0c;效果如下图&#xff1a; 二、实现思路和代码 2.1&#xff09;页面实现分析 1.引入分页插件的样式文件和 js 文件。 2. 定义当前页码和每页显示的条数。(分页必备信息) 3. 调用查询数据…

京东API接口:商品详情页呈现商品的全网价格数据信息

如今&#xff0c;不少品牌企业为更好销售商品、塑造品牌&#xff0c;都开设了自己的自有商城。那么&#xff0c;对于这类自有商城平台&#xff0c;该如何做才能更好地提升商品的呈现效果呢&#xff1f;一个比较好的建议是&#xff0c;在电商商品详情界面上呈现出商品的全网价格…

IMU助力JAXA空间站机器人

近日&#xff0c;日本宇宙航空研究开发机构&#xff08;JAXA&#xff09;宣布&#xff0c;在国际空间站&#xff08;ISS&#xff09;实验舱“希望号”&#xff08;Kibo&#xff09;上部署的一款移动摄像机器人将采用Epson M-G370系列惯性测量单元&#xff08;IMU&#xff09;。…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——10.继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层…

华为OD机试真题 - 最长连续子序列 - 双指针(Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

二叉树知识点

参考这篇文章二叉树知识点最详细最全讲解-CSDN博客 目录 预备知识 基本术语 相关性质 1.二叉树的定义 2.二叉树的性质 3.二叉树的种类 3.1 满二叉树 3.2 完全二叉树 3.3 二叉查找树 3.4 平衡二叉搜索树 4.二叉树的存储方式 4.1 链式存储 4.2 顺序存储 4.二叉树…

Behind the Code:与 Rakic 和 Todorovic 对话 OriginTrail 如何实现 AI 去中心化

原文&#xff1a;https://www.youtube.com/watch?vZMuLyLCtE3s&listPLtyd7v_I7PGnko80O0LCwQQsvhwAMu9cv&index12 作者&#xff1a;The Kusamarian 编译&#xff1a;OneBlock 随着人工智能技术的飞速发展&#xff0c;一系列前所未有的挑战随之而来&#xff1a;模型的…

NineData云原生智能数据管理平台新功能发布|2024年8月版​​

本月发布 10 项更新&#xff0c;其中重点发布 5 项、其他发布 5 项。 重点发布​ 数据库 DevOps - 敏感数据保护功能大幅升级​ 敏感数据保护全新升级&#xff0c;新增支持敏感数据等级&#xff0c;方便进行分类分级管控&#xff0c;加入数据类型概念&#xff0c;用于智能识…

分享基于PDF.JS的移动端PDF阅读器代码

一、前言 在之前的文章《分享基于PDF.js的pdf阅读器代码》里提到了PC端基于PDF.js的阅读器&#xff0c;本文将提供针对移动端的版本。 二、pdfViewer 为了能够直接使用&#xff0c;这里分享一下经过简单修改后能直接使用的pdfViewer代码&#xff1a; pdfViewer代码目录&…