k8s-1.23版本安装

news2024/9/21 13:52:06

一、主机初始化

1、修改主机名

hostnamectl set-hostname  master 
hostnamectl set-hostname  node1
hostnamectl set-hostname  node2
hostnamectl set-hostname  node3

2、主机名解析

echo  192.168.1.200 master >> /etc/hosts 
echo  192.168.1.201 node1 >> /etc/hosts 
echo  192.168.1.202 node2 >> /etc/hosts 
echo  192.168.1.203 node3 >> /etc/hosts 

3、关闭防火墙和seliunx

systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config

4、 内核参数修改

1.开启内核 ipv4 转发需要执行如下命令加载 br_netfilter 模块在所有节点执行

modprobe br_netfilter

2.创建 /etc/sysctl.d/k8s.conf文件,添加如下内容:

cat > /etc/sysctl.d/k8s.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
EOF

sysctl -p /etc/sysctl.d/k8s.conf

bridge-nf 使得 netfilter 可以对 Linux 网桥上的IPv4/ARP/IPv6 包过滤。
比如,设置net.bridge.bridge-nfcall-iptables=1后,二层的网桥在转发包时也会被 iptables的FORWARD 规则所过滤。常用的选项包括:

  • net.bridge.bridge-nf-call-arptables: 是否在arptables 的 FORWARD 中过滤网桥的 ARP 包
  • net.bridge.bridge-nf-calT-ip6tables: 是否在ip6tabLes 链中过滤 IPV6 包
  • net.bridge.bridge-nf-call-iptables: 是否在 iptables链中过滤 IPV4 包
  • net.bridge.bridge-nf-filter-vlan-tagged: 是否在iptables/arptables 中过滤打了 vlan 标签的包。

5、 ipvs 安装

yum -y install ipset ipvsadm
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_Vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

查看安装情况

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件保证在节点重启后能自动加载所需模块。
使用Lsmod grep -eip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。
在这里插入图片描述

6、配置时间同步:

 yum install chrony -y
 systemctl enable chronyd --now
 
 chronyc sources
 date

在这里插入图片描述

二、安装集群公共组件

需要在所有节点上安装Docker、kubelet、kubectl、kubeadm

1、配置docker-ce的yum源(全节点安装)

yum remove docker*
yum install -y yum-utils
yum-config-manager--add-repohttp://mirrors.aliyun.com/dockerce Tinux/centos/docker-ce.repo

2、安装docker并配置加速器(全节点安装)

yum -y install docker-ce 

mkdir -p /etc/docker && tee /etc/docker/daemon.json <<EOF
{
     "registry-mirrors":
	 ["https: // g2gr04ke .mirror.aliyuncs.com"],
	 "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

 systemctl  start docker 
 systemctl  daemon-reload  
 systemctl  enable  docker 
 systemctl  restart docker
 systemctl status docker 

3、安装k8s集群工具(全节点安装)

1、配置kubernetes 阿里云yum源

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

2、安装kubernetes的工具

yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

检查版本:
kubeadm  version

3、启动kubelet,并加入开机自启动

systemctl  start kubelet && systemctl  enable  kubelet
  • 在每个节点安装如下软件包
  • kubeadm: 初始化集群的指令
  • kubeLet: 在集群中的每个节点上用来启动 Pod 和容器等
  • kubectl: 用来与集群通信的命令行工具

三、初始化集群

1、使用kubeadm进行初始化,

可以使用kubeadm命令,也可以使用配置文件进行集群初始化

 kubeadm init \
  --apiserver-advertise-address=192.168.1.200 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \

也可以先下载好镜像,这样会节约点时间

在这里插入图片描述

2、master节点执行

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

3、node节点执行

kubeadm join 192.168.1.200:6443 --token t7oc4d.qeeuptvexraill47 \
        --discovery-token-ca-cert-hash sha256:c7a523ea127e2d2ce03e0d1d68c10fbfc161f4739867d0482dd3135fdd2e8b2d 

4、token保持24小时,如果过期,执行以下命令

kubeadm token create --print-join-command

5、集群状态检查

所有节点执行完毕后,查看集群状态:
在这里插入图片描述

  • 当前集群处于NotReady状态,需要安装网络组件

四、安装网络组件Fannel

1、下载网络组件yaml文件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
wget https://github.com/flannel-io/flannel/releases/tag/v0.22.3/kube-flannel.yml

2、配置文件修改

1、修改网络:

   198          command:
   199          - /opt/bin/flanneld
   200          args:
   201          - --ip-masq
   202          - --kube-subnet-mgr
   203          - --iface=ens33   ###默认是使用第一个网络,一般第一个网卡都是docker占用
   204          resources:
   205            requests:
   206              cpu: "100m"
   207              memory: "50Mi"
   208            limits:

2、修改pod地址

 123          }
   124        ]
   125      }
   126    net-conf.json: |
   127      {
   128        "Network": "10.244.0.0/16",
   129        "Backend": {
   130          "Type": "vxlan"
   131        }
   132      }
   133  ---

3、修改镜像地址:

   170          image: rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.1
   182          image: rancher/mirrored-flannelcni-flannel:v0.17.0
   197          image: rancher/mirrored-flannelcni-flannel:v0.17.0

4、下载镜像

docker pull   rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.1
docker pull   rancher/mirrored-flannelcni-flannel:v0.17.0
docker pull   rancher/mirrored-flannelcni-flannel:v0.17.0

一般下载时间过长,如果执行执行,容易报错

5、执行yaml配置

kubectl  apply -f  kube-flannel.yml

6、查看集群状态:

在这里插入图片描述
验证k8s集群安装完毕

五、集群可用性检查

1、启动测试容器:

kubectl  run bs  --image=busybox:1.28.4 -- sleep 24h

2、进入容器

kubectl  exec -it bs -- sh

3、测试网络

/ # ping www.baidu.com 
PING www.baidu.com (183.2.172.185): 56 data bytes
64 bytes from 183.2.172.185: seq=0 ttl=127 time=5.915 ms
64 bytes from 183.2.172.185: seq=1 ttl=127 time=6.577 ms
64 bytes from 183.2.172.185: seq=2 ttl=127 time=6.602 ms
64 bytes from 183.2.172.185: seq=3 ttl=127 time=6.438 ms
^C
--- www.baidu.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 5.915/6.383/6.602 ms
/ # nslookup kubernetes.default.svc.cluster.local
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes.default.svc.cluster.local
Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local
/ # exit 

[root@master ~]# kubectl  get service
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   110m

测试结果:出公网没问题,域名解析正常,说明安装的coredns没有问题,可用解析到service 上,并解析正确无误,集群验证成功

六、安装kubectl 补全命令

# 安装bash-completion
## bash-completion-extras需要epelrepo源
yum install -y bash-completion bash-completion-extras

# 配置自动补全
source /usr/share/bash-completion/bash_completion

# 临时生效kubectl自动补全
source <(kubectl completion bash)

## 只在当前用户生效kubectl自动补全
echo 'source <(kubectl completion bash)' >>~/.bashrc

## 全局生效
echo 'source <(kubectl completion bash)' >/etc/profile.d/k8s.sh && source /etc/profile

# 生成kubectl的自动补全脚本
kubectl completion bash >/etc/bash_completion.d/kubectl

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

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

相关文章

CSS 基础

文章目录 CSS 常见的属性CSS 常见样式行内样式内嵌样式导入样式 CSS 选择器标签选择器id选择器类选择器全局选择器属性选择器组合选择器 CSS 常见应用表格列表导航栏下拉菜单提示工具图片廊 CSS (Cascading Style Sheets&#xff0c;层叠样式表&#xff09;&#xff0c;是一种用…

《工程数值计算Python教程》笔记

文章目录 [toc]第一章&#xff1a;绪论 1.1 1.1 1.1|数值计算在工程科学中的重要性 1.2 1.2 1.2|数值计算方法 1.3 1.3 1.3|程序设计盒图计算方法的选取减少运算次数避免相近的数相减 1.4 1.4 1.4|误差的来源、表示及传递误差的来源和分类模型误差观测误差截断误差舍入误差 误差…

【 某景点舆情分析:Python、Echarts、Flask、文本处理技术的应用】

某景点舆情分析&#xff1a;Python、Echarts、Flask、文本处理技术的应用 前言技术栈数据获取与准备景点数据统计分析评论数据处理与分析词频统计分词与文本处理情感分析 数据可视化Web应用搭建结语 前言 随着旅游行业的蓬勃发展&#xff0c;越来越多的人通过网络平台获取关于…

vue3 setup语法糖写法基本教程

前言 官网地址&#xff1a;Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)下面只讲Vue3与Vue2有差异的地方&#xff0c;一些相同的地方我会忽略或者一笔带过与Vue3一同出来的还有Vite&#xff0c;但是现在不使用它&#xff0c;等以后会有单独的教程使用。目前仍旧使用v…

opencv 十六 python下各种连通域处理方法(按面积阈值筛选连通域、按面积排序筛选连通域、连通域分割等方法)

本博文基于python-opencv实现了按照面积阈值筛选连通域、按照面积排序筛选topK连通域、 连通域细化(连通域骨架提取)、连通域分割(基于分水岭算法使连通域在细小处断开)、按照面积排序赛选topK轮廓等常见的连通域处理代码。并将代码封装为shapeUtils类,在自己的python代码…

Llama 架构分析

从代码角度进行Llama 架构分析 Llama 架构分析前言Llama 架构分析分词网络主干DecoderLayerAttentionMLP 下游任务因果推理文本分类 Llama 架构分析 前言 Meta 开发并公开发布了 Llama系列大型语言模型 (LLM)&#xff0c;这是一组经过预训练和微调的生成文本模型&#xff0c;参…

AWS向量数据库Amazon OpenSearch Service使用测评

前言 在大模型盛行的当今&#xff0c;选择适宜的数据库显得尤为重要。因为你需要面对海量训练数据&#xff0c;快速的检索至关紧要&#xff0c;以及对于存储的要求也是至关重要的。对于海量的数据查询和存储是需要巨大的算力支持。向量数据库常用在一些图像文本或者视频的生成…

了解 Flutter 3.16 功能更新

作者 / Kevin Chisholm 我们在季度 Flutter 稳定版发布会上带来了 Flutter 3.16&#xff0c;此版本包含诸多更新: Material 3 成为新的默认主题、为 Android 带来 Impeller 的预览版、允许添加适用于 DevTools 的扩展程序等等&#xff0c;以及同步推出 Flutter 休闲游戏工具包重…

php查询数据库,并通过表格展示

第一步&#xff1a;创建数据库 创建一个数据库php-crud 第二步&#xff1a;创建数据库表 在数据库php-crud下创建一个歌曲表song /*Navicat Premium Data TransferSource Server : MariaDBSource Server Type : MariaDBSource Server Version : 100605 (10.6.5-M…

PrimDiffusion:3D 人类生成的体积基元扩散模型NeurIPS 2023

NeurIPS2023 &#xff0c;这是一种用于 3D 人体生成的体积基元扩散模型&#xff0c;可通过离体拓扑实现明确的姿势、视图和形状控制。 PrimDiffusion 对一组紧凑地代表 3D 人体的基元执行扩散和去噪过程。这种生成建模可以实现明确的姿势、视图和形状控制&#xff0c;并能够在…

linux 开机启动流程

1.打开电源 2.BIOS 有时间和启动方式 3.启动Systemd 其pid为1 4.挂载引导分区 /boot 5.启动各种服务 如rc.local

Ps:形状工具 - 描边选项

在形状工具的工具选项栏或“属性”面板中&#xff0c;单击“设置形状描边类型” Set shape stroke type菜单图标可打开“描边选项” Stroke Options面板。 描边预设 Stroke Type 默认列出了实线、虚线和点线三种类型的描边&#xff0c;单击可应用。 自己创建并存储的描边类型&a…

蓝桥杯专题-真题版含答案-【国庆星期日】【三色棋】【蒙地卡罗法求 PI】【格雷码(Gray Code)】

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

selenium-grid4.3.0两种模式记录

selenium-grid4.3.0两种模式记录 本文运行&#xff0c;需要提前配置好Java11以及安装好Chrom、Firefox、Safari其中一个浏览器&#xff0c;如果是Chrom、Firefox需要下载对应版本的驱动&#xff0c;并给 webdriver 配置环境变量&#xff0c;Safari浏览器Mac系统会自带&#xf…

SQL进阶理论篇(八):SQL查询的IO成本

文章目录 简介数据库缓冲池查看缓冲池的大小数据页加载的三种方式通过 last_query_cost 统计 SQL 语句的查询成本总结参考文献 简介 本节将介绍磁盘IO是如何加载数据的&#xff0c;重点介绍一下数据库缓冲池的概念。主要包括&#xff1a; 什么是数据库缓冲池&#xff0c;它在…

CSS学习笔记整理

CSS 即 层叠样式表/CSS样式表/级联样式表&#xff0c;也是标记语言&#xff0c; 用于设置HTML页面中的文本内容&#xff08;字体、大小、对齐方式等&#xff09;、图片的外形&#xff08;宽高、边框样式、边距&#xff09;以及版面的布局和外观显示样式 目录 准备工作 Chrome调…

关于反射机制的简单理解

1、反射的简单认识 1.1 定义 Java的反射&#xff08;reflection&#xff09;机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff0c;既然能拿到,那么我…

持续集成交付CICD:Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前后端应用

目录 一、实验 1.部署Ansible自动化运维工具 2.K8S 节点安装nginx 3.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前后端应用 二、问题 1.ansible安装报错 2.ansible远程ping失败 3. Jenkins流水线通过ansible命令直接ping多台机器的网络状态报错 一、实验 …

Photoshop插件3D Map Generator Geo的使用记录1(版本说明、安装卸载使用和高程数据生成3D地形图的准备工作)

3D Map Generator是一款强大的地图创建和定制化工具&#xff0c;具有以下特点和功能&#xff1a; 快速创建3D地图&#xff1a;用户可以通过该工具快速创建出高质量的3D地图&#xff0c;而无需具备专业的GIS或PS技能。支持多种图层类型&#xff1a;3D Map Generator支持多种图层…

pytest之allure测试报告03:allure动态自定义报告

1、测试用例模块中引入allure&#xff1a;import allure 2、yaml文件中定义添加title、story的值&#xff1a; 3、测试用例中读取调用。eg:allure.dynamic.title() 4、运行报告查看&#xff1a;成功动态展示yaml文件中配置的story、title