k8s-1.23版本安装

一、主机初始化

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
EOFsysctl -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 -ysystemctl enable chronyd --nowchronyc sourcesdate

在这里插入图片描述

二、安装集群公共组件

需要在所有节点上安装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"]
}
EOFsystemctl  start docker systemctl  daemon-reload  systemctl  enable  docker systemctl  restart dockersystemctl 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/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configexport 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/flanneld200          args:201          - --ip-masq202          - --kube-subnet-mgr203          - --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.1182          image: rancher/mirrored-flannelcni-flannel:v0.17.0197          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.localName:      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.mzph.cn/news/225586.shtml

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

相关文章

用Gemini Pro 来做开发?API出来了

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【中国海洋大学】操作系统随堂测试8整理

1. RAID系统使用多块磁盘改进性能或可靠性&#xff0c;其中构建RAID0至少需要&#xff08;&#xff09;个磁盘&#xff1b;RAID5阵列至少需要&#xff08;&#xff09;个磁盘。 答&#xff1a;2 3 2. 请描述一下磁盘存储空间管理方法&#xff1a;成组链接法的数据结构、盘块回…

上班摸鱼不被老板发现:设计模式--观察者模式

观察者模式 观察者模式&#xff0c;又叫做发布–订阅模式(Publish/Subscribe)模式 观察者模式定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时&#xff0c;会通知所有的观察者对象&#xff0c;使他们能够自动更…

【网络安全】网络防护之旅 - 非对称密钥体制的解密挑战

&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《网络安全之道 | 数字征程》⏰墨香寄清辞&#xff1a;千里传信如电光&#xff0c;密码奥妙似仙方。 挑战黑暗剑拔弩张&#xff0c;网络战场誓守长。 目录 &#x1f608;1. 初识网络安…

vue-实现高德地图-省级行政区地块显示+悬浮显示+标签显示

<template><div><div id"container" /><div click"showFn">显示</div><div click"removeFn">移除</div></div> </template><script> import AMapLoader from amap/amap-jsapi-load…

Spring Boot业务代码中使用@Transactional事务失效总结

1、概述 我们知道 Spring 声明式事务功能提供了极其方便的事务配置方式&#xff0c;配合 Spring Boot 的自动配置&#xff0c;大多数 Spring Boot 项目只需要在方法上标记 Transactional注解&#xff0c;即可一键开启方法的事务性配置。当然后端开发人员对数据库事务这个概念并…

模型评估指标

1.回归模型 回归模型常常使用MSE均方误差&#xff0c;预测值与真实值之间的平均差距 2.分类模型 2.1 Accuracy正确率 分类正确的数目的占比 但在类别不平衡的情况下&#xff0c;模型可能倾向于预测占多数的类别&#xff0c;导致Acc高但对少数类别的预测效果其实比较差的。…

Vue脚手架 Vue CLI安装

目录 0.为什么要安装Vue CLI脚手架 1.配置方法 1.全局安装 (一次) 2.查看Vue版本&#xff08;一次&#xff09; 报错&#xff1a;出现禁止运行脚本 3.创建项目架子&#xff08;可多次&#xff09; 报错npm err! 问题&#xff1a;已知npm换过国内源&#xff0c;且进度条…

go-zero目录结构和说明

. ├── code-of-conduct.md 行为准则 ├── CONTRIBUTING.md 贡献指南 ├── core 框架的核心组件 │ ├── bloom 布隆过滤器&#xff0c;用于检测一个元素是否在一个集合中 │ ├── breaker 熔断器&am…

MicroPython相关教程

WebRepl MicroPython-ESP32之WebRepl-1Z实验室 - 简书 https://www.jianshu.com/p/c2ddd4fd05be ESP32上面webrepl的开启与连接 - 简书 https://www.jianshu.com/p/f4163eae4a05 Esp32安装micropython和配置webrepl记录备忘 - 哔哩哔哩 https://www.bilibili.com/read/cv121…

工资计算_分支结构 C语言xdoj63

问题描述 小明的公司每个月给小明发工资&#xff0c;而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资为S元&#xff0c;则他应交的个人所得税按如下公式计算&#xff1a; 1&#xff09; 个人所得税起征点为3500元&#xff0c;若S不超过3500&#xff0c;则…

数据挖掘目标(客户价值分析)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as snsIn [2]: datapd.read_csv(r../教师文件/air_data.csv)In [3]: data.head()Out[3]: Start_timeEnd_timeFareCityAgeFlight_countAvg_discountFlight_mileage02011/08/182014/0…

android 13.0 app应用安装黑名单

1.概述 在13.0系统rom定制化开发中,客户需求要实现应用安装黑名单功能,在白名单之中的应用可以安装,其他的app不准安装,实现一个 控制app安装的功能,这需要从app安装流程入手就可以实现功能 PMS就是负责管理app安装的,功能就添加在这里就可以了,接下来看具体实现这个功能…

uniapp播放 m3u8格式视频 兼容pc和移动端

支持全自动播放、设置参数 自己摸索出来的,花了一天时间,给点订阅支持下,订阅后,不懂的地方可以私聊我。 代码实现 代码实现 1.安装dplayer组件 npm i dplayer2. static/index.html下引入 hls 引入hls.min.js 可以存放在static项目hls下面<script src="/static…

PyGame图形绘制函数详解

文章目录 五种图形矩形圆形 五种图形 除了直线之外&#xff0c;pygame中提供了多种图形绘制函数&#xff0c;除了必要的绘图窗口、颜色以及放在最后的线条宽度之外&#xff0c;它们的参数如下表所示 函数图形参数/类型rect矩形Rectellipse椭圆Rectarc椭圆弧Rect, st, edcircl…

Pytorch当中的.detach()操作是什么意思

.detach() 是 PyTorch 中用于从计算图中分离张量的方法。当我们在PyTorch中进行张量运算时&#xff0c;操作会构建一个计算图来跟踪计算历史&#xff0c;这个计算图用于自动求导和反向传播来计算梯度。 使用.detach()方法可以将一个张量从当前的计算图中分离出来&#xff0c;使…

如何实现填表后分配序列号、活动抢票抽奖、自助分配座位号?

&#x1f4f1;发布者想要实现让用户在填表后自动分配序列号、座位号&#xff0c;或制作活动抢票抽奖系统&#xff0c;该如何实现&#xff1f; &#x1f4cc;使用教程 &#x1f4d6;案例1&#xff1a;制作活动抽奖系统 使用预置数据分配的随机分配功能&#xff0c;以活动抽奖为例…

《C++新经典设计模式》之第9章 命令模式

《C新经典设计模式》之第9章 命令模式 命令模式.cpp 命令模式.cpp #include <iostream> #include <list> #include <memory> using namespace std;// 5种角色 // Receiver&#xff08;接收者&#xff09;&#xff0c;Cook&#xff0c;提供请求业务的处理接口…

标书整体实施方案

一、标书整体实施方案概述 标书整体实施方案是一种全面、系统的方法&#xff0c;旨在确保标书的顺利完成和成功实施。它涵盖了从项目背景到招标文件分析&#xff0c;再到投标文件编制和投标的全过程。实施方案不仅提供了明确的工作流程和分工&#xff0c;还为整个标书制作团队…

针对网页html中插入动图gif不能循环播放只播放一次的解决方案

针对网页html中插入动图gif不能循环播放只播放一次的解决方案 原因分析解决方案 原因分析 使用图片编辑软件制作的过程中未启用“循环播放”功能&#xff0c;这里以Photoshop为例&#xff0c;演示设置GIF图片循环播放的操作流程&#xff1a;所需材料&#xff1a;PS。第一步&am…