当前位置: 首页 > news >正文

快速搭建Kubernetes集群

快速搭建Kubernetes集群

1 MacOS

1.1 下载

从 docker 下载 docker-desktop (opens new window),并完成安装

1.2 启用 k8s 集群

启动 docker-desktop,打开preference 面板

alt

切换到 Kubernetes 标签页,并勾选启动 Enable Kubernetes,点击 Apply

alt

2 Linux(CentOS7)

https://kubernetes.io/zh-cn/docs/setup/production-environment/

至少两台机器:

  • k8s master
  • k8s slave

设置好两个主机的 hostname 后,设置配置文件:

2.1 服务器配置最低要求

  • 2g内存
  • 2CPU
  • 30g硬盘
  • 内网互通(防火墙务必关闭)

按照上面的要求创建至少2台(一主一从)云服务器。

2.2 Linux配置

① 设置不同的hostname
hostnamectl set-hostname xxx 
② 设置host与ip绑定

每个节点都要操作

vim /etc/hosts

## hosts
172.17.32.8 k8s-master
172.17.32.13 k8s-node
③ 关闭firewalld服务
systemctl stop firewalld

systemctl disable firewalld
④ 时间同步

若使用的云服务器,则忽略此步。

因为本地机器和云服务器时间可能不一致,所以需要同步时间。

启动chronyd服务

systemctl start chronyd

systemctl enable chronyddate
alt
⑤ 关闭 selinux 安全策略

需要重启后生效!

$ sed -i 's/enforcing/disabled/' /etc/selinux/config

$ vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
# 临时关闭
$ setenforce 0
⑥ 关闭 swap 分区

swap分区即虚拟内存分区,云服务器没有这个概念,可不设置。

作用:物理内存使用完,之后将磁盘空间虚拟成内存来使用。

启用swap设备会对系统的性能产生很负面影响,因此k8s要求每个节点都要禁用swap设备。

vi /etc/fstab
# /etc/fstab
# Created by anaconda on Thu May 17 07:47:58 2018
#
# 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
#
UUID=434ab0f6-eed6-49f5-9118-3744d8cbfb7e /                       ext4    defaults        1 1

# 如果有,则注释该⾏
/dev/mapper/centos-swap swap


# 临时关闭
swapoff -a
# 重启
reboot

# 检测  若 total 或者 free 正数,说明你没关闭成功
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          16045        7769         961         927        7315        7014
Swap:             0           0           0
⑦ 添加网桥过滤和地址转发功能

转发 IPv4 并让 iptables 看到桥接流量。

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

# 应⽤ sysctl 参数使其⽣效⽽不重新启动
$ sysctl --system

基础环境(每台云服务器)

  • 安装JDK环境
  • 安装Docker,设置开机自启动

配置cgroup

vim /etc/docker/daemon.json

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

保证 k8s 和 docker 使用同一个systemd。

重启刷新

[root@javaedge-monitor-platform-dev ~]# systemctl daemon-reload
[root@javaedge-monitor-platform-dev ~]# systemctl restart docker
# 验证cgroupdriver 是否⽣效,看到systemd就表示OK
[root@javaedge-k8s-node-2 ~]# docker info -f {{.CgroupDriver}}
systemd
[root@javaedge-k8s-node-2 ~]
[root@javaedge-k8s-node-1 ~]# docker info | grep -i cgroup
Cgroup Driver: systemd
Cgroup Version: 1
[root@javaedge-k8s-node-1 ~]

以上内容全部配置好以后,重启 。所有节点都要执行以上操作!!!

获取更多干货内容,记得关注我哦。

本文由 mdnice 多平台发布

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot3核心特性-核心原理
  • 【已解决】使用JAVA实现递归算法-从自然数中取3个数进行组合之循环算法
  • Vue3教程 - 1 Vue简介
  • JavaScript 网页设计案例详解( 最新技术趋势)
  • linux中怎么一次提交多条命令
  • BiRefNet 教程:基于 PyTorch 实现的双向精细化网络
  • word批量裁剪图片,并调整图片大小,不锁定纵横比
  • 付费电表系统的通用功能和应用过程参考模型(上)
  • 如何使用Optuna在PyTorch中进行超参数优化
  • OpenCV特征检测(12)检测图像中的潜在角点函数preCornerDetect()的使用
  • 网络管理:网络故障排查指南
  • HarmonyOS元服务与卡片
  • iOS 顶级神器,巨魔录音机更新2.1正式版
  • Python PDF转图片自定义输出
  • SQL_UNION
  • 时间复杂度分析经典问题——最大子序列和
  • 〔开发系列〕一次关于小程序开发的深度总结
  • android 一些 utils
  • Android单元测试 - 几个重要问题
  • CSS居中完全指南——构建CSS居中决策树
  • CSS中外联样式表代表的含义
  • es的写入过程
  • flutter的key在widget list的作用以及必要性
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Laravel 中的一个后期静态绑定
  • MySQL用户中的%到底包不包括localhost?
  • react-native 安卓真机环境搭建
  • Vue实战(四)登录/注册页的实现
  • 一道面试题引发的“血案”
  • 与 ConTeXt MkIV 官方文档的接驳
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​ubuntu下安装kvm虚拟机
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # 数据结构
  • #APPINVENTOR学习记录
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (arch)linux 转换文件编码格式
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (附源码)php新闻发布平台 毕业设计 141646
  • (算法)前K大的和
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)UDP基本编程步骤
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)mysql使用Navicat 导出和导入数据库
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .Net Core缓存组件(MemoryCache)源码解析
  • .Net Core中Quartz的使用方法
  • .Net 垃圾回收机制原理(二)
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET关于 跳过SSL中遇到的问题
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑