首页 > 其他分享 >k8s环境搭建

k8s环境搭建

时间:2024-10-13 23:43:13浏览次数:7  
标签:cri -- 环境 apt docker k8s kubeadm 搭建

k8s环境搭建

有一台以上虚拟或者真机就可以搭建。

cat /proc/version # 查看系统版本, 此次使用的是ubuntu20.0, docker版本是27.2.1意味着,k8s版本必须在1.20以上

安装docker运行时

# 选择对应系统的deb安装包进行下载
wget https://https://github.com/Mirantis/cri-dockerd/releases/tag/v0.3.4/cri-dockerd_0.3.4.amd64.tgz
tar -zxvf cri-dockerd-0.3.4.amd64.tgz -C /tmp


cp /tmp/cri-dockerd/cri-dockerd /usr/bin/


# 将下载的cri-docker.service和cri-docker.socket放置到合适位置
cp cri-docker.service cri-docker.socket /etc/sytemd/system
cd /etc/systemd/system
vim cri-docker.service

# 在cri-docker.service添加以下两句 fd:// --network-plugin=cni  --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni  --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

# 修改完毕之后加载配置,设置开机启动
systemctl daemon-reload
systemctl enable --now cri-docker.service cri-docker.socket
systemctl enable cri-docker # 开机启动
systemctl start cri-docker

关闭防火墙以及安全模式

# 设置group driver为systemd
vim /etc/docker/daemon.json
# 增加配置内容
"exec-opts":[
	"native.cgroupdriver=systemd"
]
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 禁用selinux安全模式
apt install selinux-utils
getenforce # 查看enforce
setenforce 0
# 禁用swap
free # 查看交换区
swapoff -a # 禁用交换区
# 打开文件交换区注释定义
vim /etc/fstab
注释/swap.img行 /swapfile

# 修改系统主机名
hostnamectl set-hostname k8s-master
reboot # 重启使主机名生效

# 增加主机名与本机IP映射
vim /etc/hosts
172.0.1.1 k8s-master

安装kubeadm

# kubeadm基本工具安装
# 导入k8s镜像源
apt-get update
# 安装GPG密钥准备
apt-get install -y apt-transport-https ca-certificates curl
# 安装GPG密钥
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
# 设置k8s镜像源
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
# 查看k8s版本
apt-cache madison kubelet kubeadm kubectl
# 安装k8s特定版本
apt-get install -y kubelet=1.24.1-00 kubeadm=1.24.1-00 kubectl=1.24.1-00
# 安装最新版本
apt-get install -y kubelet kubeadm kubectl
# 如果需要卸载,使用以下指令
# apt-get remove kubelet kubectl kubeadm
# 锁定软件版本-禁止升级
apt-mark hold kubelet kubeadm kubectl
# kublet刚安装完成时,会处于一个自启动状态,
systemctl status kubelet

初始化主节点

# 在有init.default.yaml文件的目录下初始化master
kubeadm config print init-defaults > init.default.yaml

# 修改配置文件
vim init.default.yaml
# 修改以下内容
advertiseAddress:192.168.137.131 # 设置为自己的ip
criSocket:///var/run/cri-dockerd.sock # 设置sock
name:k8s-master # 更改名字
imageRepository:registry.aliyuncs.com/google_containers # 镜像容器更改
kubernetesVersion: 1.24.1
# 增加podSubnet,由于后续会安装flannel 网络插件,该插件必须在集群初始化时指定pod地址
# 10.244.0.0/16 为flannel组件podSubnet默认值,集群配置与网络组件中的配置需保持一致
networking.podSubnet: 10.244.0.0/16

# 拉取相关镜像
kubeadm config images pull --config=init.default.yaml
# 初始化集群主节点
kubeadm init --config=init.default.yaml --ignore-preflight-errors=all

# 普通用户和根用户二选一
# 普通用户执行
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
source /etc/profile

# 添加节点到集群命令
kubeadm join 192.168.137.131:6443 --token abcdef.0123456789abcdef \
	--discovery-token-ca-cert-hash sha256:3384be2b7788c450fc7d43250f37bd4bfa9a5f7782ff25ca277ae673be0b1ff8 
	
# 查看集群状态
# 查看所有pod
kubectl get pods --all-namespaces
# 查看节点
kubectl get node
# 查看所有组件 cs代表的资源是componentstatuses
kubectl get cs

标签:cri,--,环境,apt,docker,k8s,kubeadm,搭建
From: https://www.cnblogs.com/solicit/p/18463284

相关文章

  • 【环境配置教程】MYSQL----win系统本地同时安装MySQL5.7.xx、MySQL8.0.xx
    文章目录1.下载mysql8和mysql5.7的压缩包2.解压到本地3.安装MySQL8.xx.xx第一步配置环境变量第二步新建配置文件第三步MySQL数据库初始化第四步临时密码第五步安装并开启mysql8服务第六步登陆mysql8修改密码4.安装MySQL5.7第一步配置环境变量第二步新建......
  • 在K8S中,CNI模型有哪些?
    在Kubernetes(K8S)中,CNI(ContainerNetworkInterface,容器网络接口)模型是一个标准化的接口规范,用于在容器创建时配置和管理其网络连接。以下是关于K8S中CNI模型的详细介绍:1.CNI模型概述CNI是由CloudNativeComputingFoundation(CNCF)维护的一个标准,它定义了一组简单、统一的接口,允......
  • 在K8S中,网络模型有哪些?
    在Kubernetes(K8S)中,网络模型的设计是为了满足容器化应用之间的通信需求。K8S网络模型主要涵盖以下几种:1.基础网络模型Pod内容器间的通信:Pod内的各个容器共享同一网络名称空间,该名称空间由构建Pod对象的基础架构容器所提供。同一个Pod内的容器,通过lo接口(即本地回环接口)完成交......
  • 在K8S中,网络策略原理是什么?
    在Kubernetes中,网络策略(NetworkPolicy)的原理是为了提供一种机制,使得Pod之间的网络通信可以被精细控制。网络策略通过API对象的形式定义了Pod之间通信的规则,从而增强了集群的安全性。以下是网络策略的原理及其工作方式的详细介绍:1.网络策略的基本原理API对象:网络策略是一个K......
  • 在K8S中,网络策略有哪些?
    在Kubernetes(K8S)中,网络策略(NetworkPolicy)是一种重要的资源对象,用于定义Pod之间的通信规则,实现微服务应用程序中的细粒度网络隔离和安全控制。以下是Kubernetes网络策略的一些详细内容:网络策略的核心概念:选择器(Selectors):用于标识特定Pod集合的标签选择器。规则(Rules):定义允许......
  • 在K8S中,flannel的作用?
    Flannel是Kubernetes生态系统中最常用的网络插件之一,它主要用于实现覆盖网络(OverlayNetwork),使得Pod之间的通信可以跨越多个物理主机。Flannel的主要作用在于简化跨主机的容器网络连接,确保容器(Pod)之间的网络通信高效且可靠。以下是Flannel的具体作用及其工作机制的详细说明:1.Fla......
  • 简单快速搭建文件共享服务Samba(最后有企业实践综合案例)
    1Samba服务基本概念1.1什么是Samba服务Samba是一个用于在Linux/Unix系统上实现与MicrosoftWindows系统之间文件和打印共享的开源软件Samba由服务器及客户端程序构成。SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的......
  • 列出 查 virtualenv 创建的虚拟环境
    1.手动检查虚拟环境目录通常,虚拟环境创建时会存储在一个指定的目录下。如果你在一个特定的目录下创建了多个虚拟环境,可以通过列出该目录中的内容来查看所有虚拟环境。例如,如果你在 /envs 目录下创建虚拟环境:<BASH>ls/envs这将列出 /envs 目录下的所有子目录,其中每个子......
  • Centos7---k8s集群 20241013
    目录一、硬件准备(虚拟主机)二、环境准备1、所有机器关闭防火墙2、所有机器关闭selinux3、所有机器关闭swap4、所有机器上添加主机名与ip的对应关系5、在所有主机上将桥接的ipv4流量传递到iptables的链三、为所有节点安装docker四、集群部署1、为所有节点修改仓库,安......
  • Windows环境下手动安装MySQL
    下载MySQL安装包:前往MySQL官网下载适合你系统的安装包,例如mysql-installer-web-community.0.8.5.msi。手动运行安装程序:双击下载的安装包,启动安装向导。按照向导的提示完成安装过程。检查安装路径:安装完成后,检查MySQL的安装路径,例如C:\ProgramFiles\MySQL\MySQL......