kubernetes 安装与部署

news2024/12/28 20:18:16

kubernetes 安装与部署

  • 环境almalinux,centos,rockylinux,redhat的9.1版本
  • 使用containerd容器运行时
  • kubernetes v1.25.4
  • root用户

1.设置主机名
2.禁用防火墙
3.禁用selinux
4.禁用swap
5.同步时间
5.桥接流量
6.安装nerdctl-full
7.确认cgroup驱动默认为systemd
8.安装kubeadm,kubectl,kubelet
9.kubeadm创建集群
10.安装网络插件


设置主机名

# 避免多节点,主机名重复
hostnamectl set-hostname <main>

禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

禁用selinux

# 和kubelet有关
# 永久禁用
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

# 临时,配置即时生效
setenforce 0 

禁用swap分区

# 和kubelet有关
# 永久禁用
sed -i 's/.*swap.*/#&/' /etc/fstab
# sed -i '/swap/d' /etc/fstab

# 临时,配置即时生效
swapoff -a

同步时间

# 这个... 不设置也可以

桥接流量

# 和流量监控有关
# 转发 IPv4 并让 iptables 看到桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# 应用 sysctl 参数而不重新启动
sudo sysctl --system

安装nerdctl-full

# nerdctl-full包含nerdctl,containerd,cni等
# nerdctl 替代docker命令
# containerd 容器运行时
# cni 网络实现相关
# https://github.com/containerd/nerdctl`https://github.com/containerd/nerdctl/releases` 下载 nerdctl-full-1.0.0-linux-amd64.tar.gz

# 安装
tar Cxzvvf /usr/local nerdctl-full-1.0.0-linux-amd64.tar.gz

# 设置为默认容器运行时,root用户执行,非root参考官方文档
sudo systemctl enable --now containerd
crictl config runtime-endpoint unix:///run/containerd/containerd.sock
crictl config image-endpoint unix:///run/containerd/containerd.sock

# 修改拉取镜像的配置,避免error: RunPodSandbox
vi /etc/containerd/config.toml
找到sandbox_image修改为registry.aliyuncs.com/google_containers/pause:3.8

[plugins]
  ...

  [plugins."io.containerd.grpc.v1.cri"]
    ...
    sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.8"

cni初始化

# 不初始化,kublet运行时候会有error:NetworkPluginNotReady
# 配置参考 https://github.com/containernetworking/cni
mkdir -p /etc/cni/net.d

cat >/etc/cni/net.d/10-mynet.conf <<EOF
{
	"cniVersion": "0.2.0",
	"name": "mynet",
	"type": "bridge",
	"bridge": "cni0",
	"isGateway": true,
	"ipMasq": true,
	"ipam": {
		"type": "host-local",
		"subnet": "10.22.0.0/16",
		"routes": [
			{ "dst": "0.0.0.0/0" }
		]
	}
}
EOF
$ cat >/etc/cni/net.d/99-loopback.conf <<EOF
{
	"cniVersion": "0.2.0",
	"name": "lo",
	"type": "loopback"
}
EOF

systemd设置

# 可以跳过,containerd默认是systemd
# 手动设置参考:https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/

安装kubeadm,kubectl,kubelet

# kubeadm:用来初始化集群的指令
# kubelet:在集群中的每个节点上用来启动 Pod 和容器等
# kubectl:用来与集群通信的命令行工具

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

kubeadm创建集群

# 以下3个命令都行,默认用第一个就行
kubeadm init --image-repository registry.aliyuncs.com/google_containers

kubeadm init --pod-network-cidr 10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers

kubeadm init --apiserver-advertise-address=10.0.35.12 --control-plane-endpoint=10.0.35.12 --pod-network-cidr 10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers

# 留意安装成功的提示信息,需要配置KUBECONFIG
export KUBECONFIG=/etc/kubernetes/admin.conf

安装 Pod 网络附加组件

flannel和calico都可以,如果是虚拟机可以考虑flannel
flannel: https://github.com/flannel-io/flannel
calico:https://github.com/projectcalico/calico
cilium:https://github.com/cilium/cilium

查看pods

kubectl get pods --all-namespaces

监控kubelet日志

# 日志监控命令
journalctl -u kubelet -f

error

可参考:https://dev.fir8.com/app/kubernetes/k8s125.html


注:封面图片由AI生成
AI绘画

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

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

相关文章

Intel MediaSDK sample_decode 官方GPU解码流程学习(一) - DirectX11 D3D11和Vulkan共享资源

很久以前研究过 用NV_DX_interop扩展让D3D和OpenGL共享资源 &#xff0c; OpenGL在当初设计的时候电脑和操作系统还是个相对比较简单的东西&#xff0c;因此OpenGL API设计没有考虑到现在计算机架构的一些特性&#xff0c;比如多核编程和多显卡并发。最近几年出来个Vulkan来接O…

Androguard Documentation:官方文档阅读笔记

打算快速阅读下官方文档&#xff0c;然后做一个笔记方便查阅&#xff0c;文章目录按照官方文档目录来的 DOCUMENTATION Getting Started 使用 androguard axml和androguard arsc解码分析AndroidManifest.xml或者resources.arsc。 创建call graphs可以使用androguard cg&…

快消品b2b电子商务网站建设方案

互联网在改造电商行业商业运作模式和提升运营效率作用方面功不可没&#xff0c;目前B2B电商发展正处在交易上升期特别是B2B快消品电商&#xff0c;这个以万亿为单位的流通规模市场必将掀起巨大的社会价值和运营效率。当然在讨论快消品流通B2B电商行业之前&#xff0c;我们先简单…

C++语言的return语句的一点说明

C语言的return语句的一点说明 为了完成某一功能的程序指令&#xff08;语句&#xff09;的集合&#xff0c;称为函数。在程序中&#xff0c;编写函数的主要目的是将一个需要很多行代码的复杂问题分解为一系列简单的任务来解决&#xff0c;而且&#xff0c;同一个任务&#xff0…

程序员副业之无货源闲鱼

我将从以下这些方面来介绍闲鱼副业。 1. 闲鱼平台能不能挣钱? 2. 闲鱼平台都有哪几种挣钱方式&#xff1f; 3. 小白在闲鱼上怎么挣钱&#xff1f; 4. 能挣多少&#xff1f; 5. 如何养号&#xff1f; 6. 得到高权重的账号闲鱼上架该选什么商品&#xff1f; 7. 卖…

城市消费券,拒绝恶意爬取

作为提振经济的重要把手&#xff0c;城市消费券的作用不言而喻。公开数据显示&#xff0c;2022 年全国各地公布的消费券累计超 100 万亿&#xff0c;在撬动各地消费的过程中起到了举足轻重的作用。 然而&#xff0c;仔细分析各地的核销率就会发现&#xff0c;有很大一部分消费…

Zookeeper系列文章—入门

目录 前言 测试 创建节点 更改节点 删除节点 前言 遵照前文已经对Zookeeper进行了安装 linux安装Zookeeper3.5.7详解_兜兜转转m的博客-CSDN博客 接下来我们从整体架构方面了解一下Zookeeper&#xff1a; ZooKeeper 是一个树形目录服务,其数据模型和Unix的文件系统目录树很类…

安装完Vmware-tools后找不到共享文件夹的解决办法-Ubuntu 18有效

首先确认VMware-tools安装好了 如果VMware-tools一直灰色&#xff0c;可以根据这篇文章的方式解决&#xff1a;解决VMware Tools灰色的方法 设置共享文件夹 如果找不到共享文件夹&#xff0c;可以先尝试这个方法&#xff1a;共享文件夹设置方式 特殊情况解决方法 在VMware…

Java:阻塞队列BlockingQueue与应用场景

目录 阻塞队列 BlockingQueue的常用方法 生产者消费者应用场景 阻塞队列 阻塞队列BlockingQueue继承自父类Queue&#xff0c;该队列是线程安全的&#xff0c;可以安全的与多个生产者和消费者线程一起使用。 与阻塞队列相对的&#xff0c;存在“非阻塞队列”的概念&#xff0c…

Python采集某购物软件数据信息,轻松拿捏千元外包项目

前言 嗨嗨&#xff0c;想必知道外包这个词的人应该不少吧 话说&#xff0c;接外包有多的也有少的&#xff0c;少的几十&#xff0c;多的emm上限我就不说了&#xff0c;嘿嘿 今天要不要来看看一个千元的外包项目&#xff1f; 是采集某购物软件的一些数据信息 咋说&#xff…

Excel常用图表,看看哪个还不会?

图表是指可以直接展示数据关于时间、数量等关系&#xff0c;对知识挖掘和信息直观生动感起关键作用的图形结果&#xff0c;是对数据关系进行形象“可视化”的手段。所以将数据转换为图表能使数据更为直观。 常见图表 Excel为用户提供了10几种图表&#xff0c;包括柱形图、折线…

【网安神器篇】——Crunch字典生成工具

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门 创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座…

小啊呜产品读书笔记001:《邱岳的产品手记-07》第13讲 无用却必要:产品规划【上】 第14讲 留白与节奏:产品规划【下】

小啊呜产品读书笔记001&#xff1a;《邱岳的产品手记-07》第13讲 无用却必要&#xff1a;产品规划【上】 & 第14讲 留白与节奏&#xff1a;产品规划【下】一、今日阅读计划二、泛读&知识摘录1、第13讲 无用却必要&#xff1a;产品规划【上】2、第14讲 留白与节奏&#…

Linux set 命令的使用方法

Linux set 命令的使用方法 set 语句是内置的 shell 命令&#xff0c;可以显示并设置 shell 和 Linux 的环境变量。在这篇文章中&#xff0c;我们将尝试使用 set 命令&#xff0c;并且进行一些简单的剖析。 预备工作 请登录您的终端&#xff0c;或者打开虚拟机并且连接&#x…

出海淘金TikTok,正确姿势是什么?

提起海外版抖音TikTok&#xff0c;相信大家并不陌生。TikTok在继美国封禁风波之后&#xff0c;虽然在美国市场的扩张受到了一定阻碍&#xff0c;但并不妨碍它的电商领域在英国市场以及东南亚市场混得风生水起。据统计&#xff0c;TikTok目前是Apple App Store上下载次数最多的应…

显示DataFrame中每行(或列)中,每个位置以前出现过的最小值:cummin()函数

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 显示DataFrame中每行(或列)中 每个位置以前出现过的最小值 cummin()函数 选择题 下列说法错误的是? import pandas as pd myDF pd.DataFrame({"A":[5,2,6], "B":[9…

通用后台管理系统前端界面Ⅸ——数据表格渲染及处理+前端分页

1、找 在页面添加table表格&#xff0c;从element-ui官网查找&#xff0c;包括数据一起复制过来&#xff0c;查看显示没有问题后&#xff0c;把tableData清空为空数组。 <template><div><el-table :data"tableData" height"auto" border …

智慧燃气解决方案-最新全套文件

智慧燃气解决方案-最新全套文件一、建设背景二、建设思路三、建设方案四、获取 - 智慧燃气全套最新解决方案合集一、建设背景 近年来城市燃气取得了巨大的发展&#xff0c;我们在享受清洁能源带来方便的同时&#xff0c;也带来了新的问题&#xff1a; ● 居民用户数量的大量增…

想知道如何图片转文字?这几个方法你别错过

工作中我们经常要处理很多含有文字的图片&#xff0c;并且大多数时候我们都需要里面的文字内容&#xff0c;如果你一个一个对照着码出来的话&#xff0c;这是很费时费力的工程&#xff0c;其实我们可以想办法将图片内容转换成文字&#xff0c;然后直接复制就可以使用了。那么你…

第十章:字典树(trie)与并查集

第十章&#xff1a;字典树&#xff08;trie&#xff09;与并查集一、字典树&#xff08;trie&#xff09;引入1、什么是字典树&#xff1f;2、思路分析3、复杂度分析4、模板&#xff08;1&#xff09;问题&#xff1a;&#xff08;2&#xff09;模板&#xff1a;&#xff08;3&…