单机部署K8S集群

这篇具有很好参考价值的文章主要介绍了单机部署K8S集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 系统准备

操作系统:

  • Kubernetes 支持多种Linux发行版,包括但不限于 CentOS、Ubuntu、RHEL等。通常建议使用稳定版本,并且是64位系统。我这里使用的是CentOS 8.1版本
cat /etc/centos-release
# CentOS Linux release 8.1.1911 (Core)

 硬件配置:

  • 内存(RAM):每台机器至少需要2GB或更多,具体需求根据集群规模和应用程序负载来定。
  • CPU核心数:每个节点至少需要2个物理核心或虚拟核心。
  • 存储空间:硬盘空间一般建议在30GB以上,以确保有足够的空间用于容器镜像、日志和其他数据存储。
  • 网络连接:所有节点之间必须能够通过网络相互连接,无论是内部私有网络还是公网连接。

配置网络

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
# 添加以下内容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=039303a5-c70d-4973-8c91-97eaa071c23d
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.122.21
NETMASK=255.255.255.0
GATEWAY=192.168.122.1
DNS1=223.5.5.5

添加阿里源

rm -rfv /etc/yum.repos.d/*

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

配置主机名

vim /etc/hosts
# 删除原内容填写以下内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.21 master01.paas.com master01

关闭swap,注释swap分区

swapoff -a

vim /etc/fstab
# 删除原内容填写以下内容
#
# /etc/fstab
# Created by anaconda on Tue Mar 31 22:44:34 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#

/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=5fecb240-379b-4331-ba04-f41338e81a6e /boot                   ext4    defaults        1 2
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
#/dev/mapper/cl-swap     swap                    swap    defaults        0 0

 配置内核参数,将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

2 安装常用包

yum install vim bash-completion net-tools gcc -y

 3 使用aliyun源安装docker-ce

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce

 安装docker-ce如果出现以下错

CentOS-8 - Base - mirrors.aliyun.com                                                                               14 kB/s | 3.8 kB     00:00
CentOS-8 - Extras - mirrors.aliyun.com                                                                            6.4 kB/s | 1.5 kB     00:00
CentOS-8 - AppStream - mirrors.aliyun.com                                                                          16 kB/s | 4.3 kB     00:00
Docker CE Stable - x86_64                                                                                          40 kB/s |  22 kB     00:00
Error:
 Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
  - package containerd.io-1.2.13-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
  - package containerd.io-1.2.2-3.el7.x86_64 is excluded
  - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
  - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

 解决办法

wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

yum install containerd.io-1.2.6-3.3.el7.x86_64.rpm

然后再安装docker-ce即可成功
添加aliyundocker仓库加速器

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fl791z1h.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload

systemctl restart docker

 4 安装kubectl、kubelet、kubeadm

 添加阿里kubernetes源

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

 安装,注意:我使用的是1.13.3版本

yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.3

5 初始化k8s集群

注意:版本v1.13.3

kubeadm init \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.13.3 \--pod-network-cidr=10.244.0.0/16

初始化成功以后,根据提示执行以下命令:

安装单机版的k8s集群,kubernetes,linux,容器

需牢记You can now join any number of machines by running the following on each node
as root:以下的token,如果需要多节点部署k8s,需要用到token

 6 初始化pod网络

安装容器网络

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

7 单机部署集群

默认情况下,Kubernetes(k8s)集群的 Master 节点通常不会被配置为工作节点,也就是说,不会调度普通用户的应用程序Pod在其上运行。为了确保Master节点资源主要用于控制平面组件,并且避免因应用程序Pod导致的安全风险或性能问题,Kubernetes 通常会在 Master 节点上添加特定的污点(Taints),从而阻止调度器将Pod调度到该节点上。

具体来说,使用 kubeadm 初始化的 Kubernetes 集群会自动给 Master 节点加上一个名为 node-role.kubernetes.io/master:NoSchedule 的污点(在较新版本中可能是 node-role.kubernetes.io/control-plane:NoSchedule 或类似的形式),这意味着没有明确容忍这个污点(Toleration)的Pod是不会被调度到 Master 节点上的。

如果确实需要让 Pod 在 Master 节点上运行,有两种方法可以实现:

  1. 移除 Master 节点上的污点: 生产环境中不推荐这样做,因为这可能会导致控制平面受到影响。

    kubectl taint nodes <master-node-name> node-role.kubernetes.io/master:NoSchedule-
  2. 配置 Pod 容忍相关污点: 在应用的 Deployment、StatefulSet 等资源定义中,添加容忍(toleration)以允许 Pod 运行在带有特定污点的节点上。

    spec:
      tolerations:
      - key: "node-role.kubernetes.io/master"
        effect: "NoSchedule"

不过,在大多数情况下,最佳实践仍然是保持 Master 节点专注于运行控制平面服务,并避免在其上部署任何非关键的应用程序工作负载。文章来源地址https://www.toymoban.com/news/detail-830903.html

到了这里,关于单机部署K8S集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S如何部署Redis(单机、集群)

    在今天的讨论中,我们将深入研究如何将Redis数据库迁移到云端,以便更好地利用云计算的优势提高数据管理的灵活性。 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种数据结构,如字符串、列表、集

    2024年02月11日
    浏览(40)
  • CentOS安装k8s单机/集群及一些命令

    目录 前言 1. 安装docker 2. 安装要求 3.准备网络(如果只装单机版可跳过此部) 4. 准备工作 5. 安装 5.1. 配置阿里云yum k8s源 5.2 安装kubeadm、kubectl和kubelet 5.3 初始化,只在master执行,子节点不要执行 5.3.1 一些错误(没有错误直接忽略) 5.4 使用kubectl工具 5.5 子节点加入(单机

    2024年01月17日
    浏览(43)
  • K8S历险记-从零开始kubeadm单机安装部署k8s保姆级教程

    1.查看系统版本信息以及修改配置信息 1.1 查看cpu信息 k8s安装至少需要2核2G的环境,否则会安装失败 1.2 安装k8s时,临时关闭swap ,如果不关闭在执行kubeadm部分命令会报错 1.3 安装k8s时,可以临时关闭selinux,减少额外配置 1.4 关闭防火墙 1.5 设置网桥参数 1.6 修改hosts文件

    2024年02月08日
    浏览(53)
  • hadoop伪分布式集群的安装(不是单机版)

    三台虚拟机,关闭防火墙,关闭selinux 查看防火状态 systemctl status firewalld 暂时关闭防火墙 systemctl stop firewalld 永久关闭防火墙 systemctl disable firewalld 查看 selinux状态 getenforce 暂时关闭 selinux setenforce 0 永久关闭 selinux 在/etc/selinux/config文件中将SELINUX改为disabled   三台主机 根据自己

    2023年04月14日
    浏览(95)
  • K8S单机部署-01.单机部署K8S

    转载请注明出处 K8S单机部署-00.旧版本卸载 K8S单机部署-01.单机部署K8S K8S单机部署-02.Kuboard面板部署 K8S单机部署-03.验证K8S的第一个Deployment K8S单机部署-04.NFS服务器搭建 K8S单机部署-05.静态持久化之PV、PVC(基于NFS) K8S单机部署-06.动态持久化StorageClass(基于NFS) K8S单机部署-07.调整

    2024年04月24日
    浏览(36)
  • Azkaban学习——单机版安装与部署

    目录 1.解压改名 2.修改装有mysql的虚拟机的my.cnf文件 3.重启装有mysql的虚拟机 4.Datagrip创建azkaban数据库,执行脚本文件 5.修改/opt/soft/azkaban-exec/conf/azkaban.properties文件 6.修改commonprivate.properties 7.传入mysql-connector-java-8.0.29.jar 8.开启Azkaban服务 9.进入Datagrip查看是否成功激活 10.激活

    2024年02月04日
    浏览(51)
  • 安装部署k8s集群

    系统: CentOS Linux release 7.9.2009 (Core) 准备3台主机 192.168.44.148 k8s-master 92.168.44.154 k8s-worker01 192.168.44.155 k8s-worker02 3台主机准备工作 关闭防火墙和selinux 关闭swap分区(swap分区会降低性能,所以选择关闭) 参考如下链接: 设置node的主机名,并配置/etc/hosts (这样可以方面看到pod调

    2024年02月19日
    浏览(38)
  • 安装部署(卸载)k8s集群

    Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。  序号 ip地址 hostname 节点 1 10.10.80.220 appnode1 主节点 2 10.10.80.221 appnode2 工作节点 3 10.10.80.222 dbnode 预留  1、安装docker: 2、添加阿里云YUM软件源   3、安装kubeadm,kubelet和kubectl 要求master node和worke

    2024年02月08日
    浏览(39)
  • Kubernetes(k8s)集群安装部署

    名称 IP 系统 配置 主控节点 192.168.202.101 CentOS 7.9.2009 2核4G 工作节点1 192.168.202.102 CentOS 7.9.2009 2核4G 工作节点2 192.168.202.103 CentOS 7.9.2009 2核4G 2.1 升级操作系统内核 导入elrepo gpg key 安装elrepo YUM源仓库 安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本 设置grub2默认引导为0 重

    2024年02月10日
    浏览(74)
  • K8S集群安装与部署(Linux系统)

    一、环境说明:CentOS7、三台主机(Master:10.0.0.132、Node1:10.0.0.133、Node2:10.0.0.134) 二、准备环境: 映射 关闭防火墙 三、etcd集群配置 安装etcd(Master) 修改etcd配置文件/etc/etcd/etcd.conf(Master) 安装K8S节点组件、etcd、flannel以及docker(Node1和Node2) 修改etcd配置文件/etc/etcd/et

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包