首页 > 其他分享 >搭建k8s集群完整版本

搭建k8s集群完整版本

时间:2024-05-15 20:30:45浏览次数:13  
标签:mirrors containerd 集群 registry https yum docker k8s 搭建

搭建k8s集群完整版

基础设置

设置主机ip

nmcli con add ifname ens33 con-name ens33 autoconnect yes type ethernet
nmcli con modify ens33 ipv4.method manual ipv4.dns 114.114.114.114 ipv4.addresses 192.168.109.102/24 ipv4.gateway 192.168.109.2 

修改主机名

hostnamectl set-hostname master

关闭防火墙

systemctl stop firewalld

关闭selinux

vim /etc/selinux/config
SELINUX=disabled

关闭swap

swapoff -a //临时关闭
vim /etc/fstab 
#注释掉swap的挂载条目

修改内核参数

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
# 将 overlay 和 br_netfilter 这两行文本写入
# 到 /etc/modules-load.d/containerd.conf 文件中
# 这两个模块是 Docker 或 containerd 这类容器运行时经常需要的
# 用于提供 overlay 文件系统支持和网络桥接功能
modprobe overlay
modprobe br_netfilter
# 手动加载内核模块
# modprobe 命令用于添加或移除内核模块

cat /etc/sysctl.d/99-kubernetes-cri.conf 
net.bridge.bridge-nf-call-iptables = 1  # 这个设置允许 iptables 规则应用于桥接流量
net.ipv4.ip_forward = 1  # 这个设置允许 IP 转发。在 Kubernetes 集群中,节点(Node)之间以及节点与 Pod 之间的网络流量可能需要通过 IP 转发来路由
net.bridge.bridge-nf-call-ip6tables = 1  # 与 bridge-nf-call-iptables 类似,但这个设置是针对 IPv6 流量的。它允许 ip6tables 规则应用于桥接流量。

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

sysctl --system

安装docker

yum install -y yum-utils

yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

yum install docker-ce -y

systemctl enable docker --now

containerd config default > /etc/containerd/config.toml

containerd config default | \
sed -e 's|registry\.k8s\.io/pause:[0-9.]\+|registry\.aliyuncs\.com/google_containers/pause:3.9|g'  \
    -e 's,SystemdCgroup = .*,SystemdCgroup = true,' \
    -e 's/\[plugins."io.containerd.grpc.v1.cri".registry.mirrors\]/&\n        \[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]\n          endpoint = \["https:\/\/mirror.ccs.tencentyun.com"]\n/' \
    -e 's/\[plugins."io.containerd.grpc.v1.cri".registry.mirrors\]/&\n        \[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]\n          endpoint = \["https:\/\/registry\.aliyuncs\.com\/google_containers"]/' \
    -e '/^\s*$/d' |
tee /etc/containerd/config.toml

vim /etc/containerd/config.toml
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
  endpoint = ["https://mirror.ccs.tencentyun.com"]

[root@node1 ~]# vim /etc/docker/daemon.json 

{
 "registry-mirrors":["https://mirror.ccs.tencentyun.com"],
 "exec-opts": ["native.cgroupdriver=systemd"]
}      

安装k8s

cat /etc/yum.repos.d/kubernetes.repo 
[kubernetes]
name=kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
gpgcheck=0

yum install -y kubelet kubectl kubeadm
systemctl enable kubelet

crictl config runtime-endpoint /var/run/containerd/containerd.sock
crictl config image-endpoint /var/run/containerd/containerd.sock
systemctl restart containerd


升级内核

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y
sed -i "s#http://elrepo.org/linux#https://mirrors.tuna.tsinghua.edu.cn/elrepo#g" /etc/yum.repos.d/elrepo.repo
yum --enablerepo="elrepo-kernel" -y install kernel-lt.x86_64
grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

初始化

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f  kube-flannel.yml
(kubectl delete -f kube-flannel.yml    删除)

标签:mirrors,containerd,集群,registry,https,yum,docker,k8s,搭建
From: https://www.cnblogs.com/humlogs/p/18194504

相关文章

  • 高效调度新篇章:详解DolphinScheduler 3.2.0生产级集群搭建
    转载自tuoluzhe8521导读:通过简化复杂的任务依赖关系,DolphinScheduler为数据工程师提供了强大的工作流程管理和调度能力。在3.2.0版本中,DolphinScheduler带来了一系列新功能和改进,使其在生产环境中的稳定性和可用性得到了显著提升。为了帮助读者更好地理解和应用这一版本,我们精......
  • k8s-Service资源
    Service资源的作用: 因为k8s是使用RC来管理保证它的高可用,RC是管理k8spod的.如果一个pod挂掉了,就会马上自动启动一个可用的pod,那么新的pod的IP肯定就是新的。如果是采用端口映射的话,就会出现刚配置好的pod端口和ip在pod挂了后新的pod被启动了新pod又是一个新的ip,难道又马上......
  • 解决k8s调度不均
    在近期的工作中,我们发现k8s集群中有些节点资源使用率很高,有些节点资源使用率很低,尝试重新部署应用和驱逐Pod,发现并不能有效解决负载不均衡问题。调度不均衡的问题可能有多个原因导致,下面是一些可能的原因:节点资源分配不均:某些节点可能被分配了更多的资源(如CPU、内存)而导致......
  • hive-3.1.2分布式搭建文档
    hive-3.1.2分布式搭建文档1.上传解压配置环境变量#1、解压tar-zxvfapache-hive-3.1.2-bin.tar.gz-C/usr/local/soft/#2、重名名mvapache-hive-3.1.2-binhive-3.1.2#3、配置环境变量vim/etc/profile#4、在最后增加配置exportHIVE_HOME=/usr/local/soft/hiv......
  • K8S之yaml 文件详解pod、deployment、service(转)
    原文:https://blog.csdn.net/footless_bird/article/details/125946101作者:墨鸦_Cormorant来源:CSDN K8S中的yaml文件yaml语法学习 Kubernetes支持YAML和JSON格式管理资源对象 JSON格式:主要用于api接口之间消息的传递 YAML格式:用于配置和管理,YAML是一种简......
  • k8s nodeName与nodeSelector的简单应用(转)
    原文:https://blog.csdn.net/xhredeem/article/details/127687465作者:xhredeem来源:CSDN默认情况下,k8smaster管理节点有污点标签,默认是NoSchedule,即不会被调度。新创建的pod会随机选择除了master管理节点的以外的node工作节点上创建。如果想要使某个新建pod在某个node节点创建......
  • docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES
    一、前言在数据量大的企业级实践中,Elasticsearch显得非常常见,特别是数据表超过千万级后,无论怎么优化,还是有点力不从心!使用中,最首先的问题就是怎么把千万级数据同步到Elasticsearch中,在一些开源框架中知道了,有专门进行同步的!那就是Logstash。在思考,同步完怎么查看呢,这时Kibana映入......
  • windows下volumetric video conference环境搭建
    最近在做volumetricvideo的rtc,在此记录下相关内容方便之后复习。所采用的endtoend平台来自于mmsys'24的ScalableMDC-BasedVolumetricVideoDeliveryforReal-TimeOne-to-ManyWebRTCConferencing.源码地址:https://github.com/MatthiasDeFre/webrtc-pc-streaming论文相......
  • k8s 维护有状态服务难的问题,他解决了
        介绍:它是基于Kubernetes的云原生数据基础设施,为用户提供了关系型数据库、NoSQL数据库、向量数据库以及流计算系统的管理控制功能。可以使用提供的命令轻松部署处理数据库实例。github:https://github.com/apecloud/kubeblocks官网:https://kubeblocks.io......
  • 十分钟搭建自己的私有NuGet服务器-BaGet
    三分钟搭建自己的私有NuGet服务器-BaGet   目录前言开始搭建BaGet上传程序包在vs中使用其他最后前言NuGet是用于微软.NET(包括.NETCore)开发平台的软件包管理器。NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。通常使用NuGet都是......