Kubernetes v1.28.0安装详解

news2024/9/23 13:18:19

Kubernetes v1.28.0安装详解

一.环境初始化

要在所有节点执行命令进行配置

1、检查操作系统的版本

此部署环境为CentOS 7.9

[root@CentOS7 ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@CentOS7 ~]#

2、主机名解析

为了方便集群节点间的互相调用,配置主机名解析

hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-noed1
hostnamectl set-hostname k8s-noed2

cat >>/etc/hosts<<-'EOF'
172.16.0.20 k8s-master
172.16.0.21 k8s-node1
172.16.0.22 k8s-node2
EOF

3、时间同步

kubernetes要求集群节点时间必须精确一致,使用chronyd服务从阿里云同步时间

yum install chrony -y
sed -i '3,6 s/^/# /' /etc/chrony.conf
sed -i '/server 3.centos/a\server ntp.aliyun.com iburst' /etc/chrony.conf
systemctl restart chronyd
chronyc sources

4、禁用swap分区

swap分区:虚拟内存分区,它的作用是物理内存使用完,之后将磁盘空间虚拟成内存来使用,启用swap设备会对系统性能产生很大的影响,kubernetes集群要求所有节点禁用swap分区

临时关闭:swapoff -a
永久关闭:sed  -i 's/^[^#].*swap/#&/' /etc/fstab

5、关闭selinux

selinux是linux系统下的一个安全服务,一般选择直接关闭

临时关闭:setenforce 0
永久关闭:sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

#: s替换
#: ^开头匹配
#: [^#]:匹配非#
#: #&:中的&代表匹配整行,整个意思就是行前面加上#号
#: g:全部(只匹配特定行不加)

6、禁用iptable和firewalld服务

kubernetes集群在运行的中会产生大量的iptables规则,为了不和系统规则混淆,直接关闭系统的规则

systemctl stop iptables
systemctl disable iptables
systemctl stop firewalld
systemctl disable firewalld

7、修改linux的内核参数

1).修改linux的内核参数,添加网桥过滤和地址转发功能
cat >>/etc/sysctl.d/kubernetes.conf<<-'EOF'
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
2).重新加载配置
sysctl -p
3). 加载网桥过滤模块
modprobe br_netfilter
4). 查看网桥过滤模块是否加载成功
lsmod | grep br_netfilter

8、安装ipvs

iipvs(IP Virtual Server) 实现了传输层负载均衡,ipvs 可以将基于 TCP 和 UDP 的服务请求转发到真实服务器上,并使真实服务器上的服务在单个 IP 地址上显示为虚拟服务。

1).安装ipset和ipvsadm
yum install ipset ipvsadm -y
2).添加需要加载的模块写入脚本文件
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
3).为脚本添加执行权限
chmod +x /etc/sysconfig/modules/ipvs.modules
4).执行脚本文件
/bin/bash /etc/sysconfig/modules/ipvs.modules
5).查看对应的模块是否加载成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

9、安装docker

1).安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
2).添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3).安装docker
yum -y install docker-ce docker-ce-cli 
4).启动并添加开机自启
systemctl start docker && systemctl enable docker
5).添加镜像加速
cat >/etc/docker/daemon.json<<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.gcr.io",
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn"
  ]
}
EOF
6).重新加载配置文件并重启
systemctl daemon-reload
systemctl restart docker
7).查看源是否生效
docker info

10、安装containerd

1).安装containerd
yum install -y containerd.io
2).生成config.toml配置
containerd config default > /etc/containerd/config.toml
3).配置 systemd cgroup 驱动
#修改SystemdCgroup

sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml

#将sandbox_image下载地址替换为阿里云地址

[plugins."io.containerd.grpc.v1.cri"]
    ...
    ...
    sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
4).重启containerd 并设置开机自启动

systemctl restart containerd && systemctl enable containerd

二、安装kubernetes

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、安装kubeadm、kubelet、kubectl

所有节点执行

yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0 --disableexcludes=kubernetes
systemctl enable kubelet

3、初始化master节点

master节点执行

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

4、初始化结果

出现一下提示说明初始化成功


Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 172.16.0.20:6443 --token yo82fc.pzvoqvx6zo71snxp \
	--discovery-token-ca-cert-hash sha256:7f63e081bc13138eb9e28a41581d1e8e33d113d20fd9a1e9a76bbd6a57feba40 

在这里插入图片描述

5、按提示执行命令

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

6、添加从节点

node节点执行

kubeadm join 172.16.0.20:6443 --token yo82fc.pzvoqvx6zo71snxp \
	--discovery-token-ca-cert-hash sha256:7f63e081bc13138eb9e28a41581d1e8e33d113d20fd9a1e9a76bbd6a57feba40

在这里插入图片描述
在这里插入图片描述

7、查看集群节点

kubectl get node

在这里插入图片描述

8、coredns服务出现 Pending

1).查看coredns服务的状态
kubectl get pod -A

在这里插入图片描述

2).查看pod的详细信息
kubectl describe pod coredns-66f779496c-2pfpg -n kube-system

在这里插入图片描述

3).查看node节点的污点

在这里插入图片描述

4).去除污点
kubectl taint nodes k8s-node1 node.kubernetes.io/not-ready-
kubectl taint nodes k8s-node2 node.kubernetes.io/not-ready-

在这里插入图片描述

5).再查看coredns服务的状态

在这里插入图片描述

三、安装网络组件calico

1、下载calico.yaml文件

wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml

2、修改配置文件

# 修改pod容器网络
sed -i 's/192.168.0.0/10.244.0.0/g' calico.yaml

#添加网卡信息
            - name: IP_AUTODETECTION_METHOD
              value: "interface=ens33"

在这里插入图片描述

3、部署calico

kubectl apply -f calico.yaml

在这里插入图片描述

4、查看calico的pod状态

kubectl get pod -A 

在这里插入图片描述

5、查看集群状态

kubectl get node

在这里插入图片描述

四、集群简单测试

1、创建一个nginx服务

kubectl create deployment nginx  --image=nginx:1.24-alpine

2、暴露端口

kubectl expose deploy nginx  --port=80 --target-port=80  --type=NodePort

3、查看pod和svc服务

kubectl get pod,svc

在这里插入图片描述

4、浏览器进行访问测试

在这里插入图片描述

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

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

相关文章

活动系统开发之采用设计模式与非设计模式的区别-数据库设计及代码设计

1、数据库ER图 2、应用框架选用 PHP语言对应的thinkphp6.1应用框架 3、功能代码设计(后端) a、父类Base.php i&#xff1a;控制登录&#xff0c;只能登录后管理员才能操作&#xff1b; ii&#xff1a;控制按钮权限&#xff0c;管理员不仅要登录&#xff0c;且必须要有对应菜单…

报错处理:超过Uobject最大数量

处理方式 一、打包时项目中设置游戏中UObject的最大数量为100000000 二、打包后的配置文件中设置 打包路径&#xff1a; 一厅统管\Windows\YZ_YTTG\Saved\Config\Windows\Engine.ini文件下添加配置文件 [/Script/Engine.GarbageCollectionSettings] gc.MaxObjectsInEditor1000…

API 网关 OpenID Connect 实战:单点登录(SSO)如此简单

作者&#xff1a;戴靖泽&#xff0c;阿里云 API 网关研发&#xff0c;Higress 开源社区 Member 前言 随着企业的发展&#xff0c;所使用的系统数量逐渐增多&#xff0c;用户在使用不同系统时需要频繁登录&#xff0c;导致用户体验较差。单点登录&#xff08;Single Sign-On&a…

2024最新!Facebook手机版和网页版改名教程!

Facebook作为全球最大的社交平台之一&#xff0c;允许用户自定义名字和昵称。在Facebook更新姓名可以帮助您更好的展现账号形象。本文将为您提供详细的步骤指导&#xff0c;帮助您在手机APP和网页版上轻松完成Facebook改名操作。 Facebook手机版改名 打开Facebook APP并登录账号…

区块链ARC如何能让节点能够大规模处理交易数据

​​发表时间&#xff1a;2024年8月7日 TAAL技术主管Michael Bckli表示&#xff0c;TAAL公司一直在对ARC进行测试&#xff0c;并准备在今年年底全面发布。因TAAL在区块链交易处理方面具备深厚的专业知识&#xff0c;BSV区块链委托TAAL进行ARC开源参考落地方案的开发。 ARC是一个…

魔珐科技受邀参与外滩大会:以3D数字人AIGC产品赋能大资管行业,重塑金融服务边界

在人工智能浪潮的推动下&#xff0c;金融行业正经历着前所未有的场景革命。2024年Inclusion外滩大会作为行业交流的盛会&#xff0c;汇聚了众多学者、专家及企业领袖&#xff0c;共同探讨AI技术在多领域的深度应用&#xff0c;特别是其在金融行业中的革新潜力。 在外滩大会上&…

在桌面商业分析应用程序中启用高级 Web UI

挑战 Mercur Business Control 应用程序在企业界&#xff0c;尤其是金融领域&#xff0c;拥有悠久的应用历史。它帮助企业处理、可视化和分析海量数据&#xff0c;从而做出明智的商业决策。 随着产品的不断演进和现代化&#xff0c;Mercur Solutions AB 为该应用创建了 Web 客…

使用RestTemplate获取国内大盘股票数据的基本信息并存入数据库中

目录 使用RestTemplate获取国内大盘股票数据的基本信息并存入数据库中 第一步&#xff1a;导入RestTemplate依赖&#xff0c;并配置RestTemplate让其加入到SpringIoC容器中 第二步&#xff1a;在yml文件定义股票的相关参数 第三步&#xff1a;向新浪网发送请求&#xff0c;获…

FP7195:非同步升压恒流LED区动IC

前言&#xff1a;LED驱动芯片是什么&#xff1f; LED驱动芯片是一种能够将电源的电压和电流转换为适合LED&#xff08;发光二极管&#xff09;使用的电压和电流的芯片。这种芯片的主要作用是控制LED的亮度和电流&#xff0c;从而保证LED的正常工作和长寿命。简单来说&#xff…

【C++二分查找】1802. 有界数组中指定下标处的最大值

本文涉及的基础知识点 C二分查找 LeetCode 1802. 有界数组中指定下标处的最大值 给你三个正整数 n、index 和 maxSum 。你需要构造一个同时满足下述所有条件的数组 nums&#xff08;下标 从 0 开始 计数&#xff09;&#xff1a; nums.length n nums[i] 是 正整数 &#xf…

Vue组件:使用$emit()方法监听子组件事件

1、监听自定义事件 父组件通过使用 Prop 为子组件传递数据&#xff0c;但如果子组件要把数据传递回去&#xff0c;就需要使用自定义事件来实现。父组件可以通过 v-on 指令&#xff08;简写形式“”&#xff09;监听子组件实例的自定义事件&#xff0c;而子组件可以通过调用内建…

Ollama Qwen2 支持 Function Calling

默认 Ollama 中的 Qwen2 模型不支持 Function Calling&#xff0c;使用默认 Qwen2&#xff0c;Ollama 会报错。本文将根据官方模板对 ChatTemplate 进行改进&#xff0c;使得Qwen2 支持 Tools&#xff0c;支持函数调用。 Ollama 会检查对话模板中是否存在 Tools&#xff0c;如…

wlanapi.dll丢失怎么办?有没有什么靠谱的修复wlanapi.dll方法

在遇到各种系统文件错误当中&#xff0c;其中之一就是“wlanapi.dll文件丢失”的问题。这种问题通常发生在Windows操作系统上&#xff0c;特别是当系统试图执行与无线网络相关的任务时。wlanapi.dll是一个重要的系统文件&#xff0c;它负责处理Windows无线网络服务的许多功能。…

一种非接触式智能垃圾桶设计(论文+源码+实物)

1系统方案设计 通过对需求展开分析&#xff0c;本设计非接触式智能垃圾桶采用STM32F103单片机作为控制器&#xff0c;通过红外传感器实现垃圾桶的满溢检测&#xff0c;通过三个SG90舵机分别控制可回收、不可回收、其他垃圾桶盖的开关&#xff0c;并通过WiFi通信模块将数据信息…

Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK

Windows编译Hikari-LLVM15[llvm-18.1.8rel]并集成到Android Studio NDK 工具1、w64devkit2、ndk3、cmake 编译1、准备工作2、开始编译 集成1、替换文件2、使用 工具 1、w64devkit w64devkit 解压出来给个环境变量 验证一下 2、ndk 通过android studio安装 ndk\27.1.1229…

PaddleOCR基础入门

1、下载paddle源码 https://github.com/PaddlePaddle/PaddleOCR2、新建conda虚拟环境 conda create --name paddleocr_env python3.103、激活conda虚拟环境 conda activate paddleocr_env4、解压paddleOCR并进入ocr目录&#xff0c;运行安装所需库&#xff1a; pip install…

包拯断案 | 数据库从库GTID在变化 为何没有数据写入@还故障一个真相

提问&#xff1a;作为DBA运维的你是否遇到过这些烦恼 1、数据库从库复制链路如何正确配置表过滤信息&#xff1f; 2、数据库从库的GTID在变化&#xff0c;实际却没有数据写入&#xff0c;究竟是什么原因&#xff1f; 心中有章&#xff0c;遇事不慌 作为DBA的你&#xff0c;…

KCP实现原理探析

KCP 是一个轻量级的、高效的、面向 UDP 的传输协议库&#xff0c;专为需要低延迟和高可靠性的实时应用设计。本文针对 KCP 的主要机制和实现与原理进行分析。 1. 术语 术语 全称 说明 TCP Transmission Control Protocol 传输控制协议 RTT Round Trip Time 往返时延 …

SQL Server导入导出

SQL Server导入导出 导出导入 这里已经安装好了SQL Server&#xff0c;也已经创建了数据库和表。现在想导出来给别人使用&#xff0c;所以需要导入导出功能。环境&#xff1a;SQL Server 2012 SP4 如果没有安装&#xff0c;可以查看安装教程&#xff1a; Microsoft SQL Server …

远程控制不止向日葵,这四款工具千万别错过!

不管是什么职业&#xff0c;总有些朋友会需要远程控制电脑&#xff0c;无论是从家里连接到办公室的机器&#xff0c;还是在出差时需要紧急访问我的开发环境。今天&#xff0c;我想和大家分享一下我使用过的几款远程控制软件它们在实际使用中的表现如何。 一、向日葵 网址&…