搭建Kubernetes具体流程(上)

Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。

一、准备工作

搭建集群最好方便的就是购买几个云服务器,搭建起来很舒服,当然这是资金允许的情况下!没足够的money的话就和我一样搭个虚拟机玩吧~~

由于是虚拟机,电脑性能一般般,我这里搭建是单节点,各位看官请知悉哈~~~

基础环境

以下是我此次实验的环境需求

  • 2核2G服务器
  • 20g磁盘
  • centos7
  • 服务器之间内网互通
  • 可以科学上网

这里多说一句,之前部署这个东西,我的服务器是可以科学上网的,部署过程简直不要太流畅,不过为了写给大家看,特意写了国内环境通用的文章,过程比较艰辛~~~

二 、开始部署

为了方便起见,以下操作都是在root用户下执行

1. 配yum源

我这里使用的的是阿里云的yum源 在配置yum源之前把以前的做个备份

root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
总用量 32
-rw-r--r--. 1 root root 1664 9月   5 21:05 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 9月   5 21:05 CentOS-CR.repo
-rw-r--r--. 1 root root  649 9月   5 21:05 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 9月   5 21:05 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 9月   5 21:05 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 9月   5 21:05 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639 9月   5 21:05 CentOS-Vault.repo
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv * bak
mv: 无法将目录"bak" 移动至自身的子目录"bak/bak" 下
[root@localhost yum.repos.d]# ll
总用量 0
drwxr-xr-x. 2 root root 187 1月  10 11:17 bak

配置yum源

[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0  23632      0 --:--:-- --:--:-- --:--:-- 23801

配置kubernetes源

cat  /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

配置docker源

[root@localhost yum.repos.d]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost yum.repos.d]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

生成缓存

[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache

关闭swap分区

理由如下:

kubernetes是将实例紧密包装到尽可能接近100%。 所有的部署应该与CPU /内存限制固定在一起。 所以如果调度程序发送一个pod到一台机器,它不应该使用交换。 设计者不想交换,因为它会减慢速度。所以关闭swap主要是为了性能考虑。

[root@localhost yum.repos.d]# swapoff -a

[root@localhost yum.repos.d]# vim /etc/fstab  #懒得写sed 就这样看看吧~
注释掉这一行:/dev/mapper/centos-swap swap

写kubernetes配置

[root@localhost yum.repos.d]#  vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1    
vm.swappiness=0

加载配置

sysctl --system

关闭seliunx和防火墙

[root@localhost yum.repos.d]#  setenforce 0
[root@localhost yum.repos.d]#  systemctl disable firewalld
[root@localhost yum.repos.d]#  systemctl stop firewalld
[root@localhost yum.repos.d]#  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

开启路由转发

[root@localhost yum.repos.d]#  sysctl -w net.ipv4.ip_forward=1

# 默认情况下,由于安全原因,linux是关闭了路由转发的,即同台机器不止一个网卡,将数据包从一个网卡传到另一个网卡,让另一个网卡继续路由,即实现两个不同网段的主机通信。service 的 IP 是通过 proxy(即 kube-proxy 或 kube-router )路由的,并不需要路由器参与,node 收到数据包时,数据包的目的 IP 为本机的内网 IP,proxy 将数据包的目的IP转化成Service IP并路由转发到Serive IP 对应网段的虚拟网卡上,最终路由到正确的Pod

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/9159.html

(0)
晴川运维晴川运维
上一篇 2025年6月14日
下一篇 2025年6月14日

相关推荐

  • Linux下通过命令行管理KVM虚拟环境具体方法

    KVM 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块,使用 KVM 可允许多个包括 L…

    Linux系统 2025年6月8日
  • Linux中通过 kill 和 killall管理进程

    在 Linux 中,每个程序和守护程序daemon都是一个“进程process”。 大多数进程代表一个正在运行的程序。而另外一些程序可以派生出其他进程,比如说它会侦听某些事件的发生…

    Linux系统 2025年6月8日
  • 如何使用 Linux anacron 命令

    与其手动执行重复性的任务,不如让 linux 为你做。 在 2021 年,人们有更多的理由喜欢 Linux。在这个系列中,我将分享使用 Linux 的 21 个不同理由。自动化是使…

    Linux系统 2025年6月8日
  • Hadoop —MapReduce 编程思想

    MapReduce,本质就是一种编程模型,也是一个处理大规模数据集的相关实现。之所以会有这个模型,目的是为了隐藏“并行计算、容错处理、数据分发、负载均衡”,从而实现大数据计算的一种…

    Linux系统 2025年6月10日
  • 详解Shell脚本的条件测试和if条件语句

    本篇文章重点为大家讲解一下shell脚本的条件测试操作,并通过正确使用if语句,使Shell脚本具有一定的“判断”能力,以根据不同的条件来完成不同的管理任务。 一、条件测试操作 要…

    Linux系统 2025年9月23日
  • Linux grep基础入门

    grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予…

    Linux系统 2025年6月13日
  • tomcat 性能优化

    tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈,本篇文章重点为大家讲解一下tomcat 性能优化。 Tomcat连接器…

    Linux系统 2025年10月6日
  • Linux下常用的剪贴板

    Linux下有哪些常用的剪贴板?本篇文章将为大家分享一下Linux下常用的剪贴板,有需要的小伙伴可以参考一下。 1.CopyQ 这种高级的剪贴板管理器适用于大多数平台上。它有编辑和…

    Linux系统 2025年6月10日
  • Linux下安装CUDA详细步骤

    CUDA是并行计算的平台和类C编程模型,我们能很容易的实现并行算法,就像写C代码一样。只要配备的NVIDIA GPU,就可以在许多设备上运行你的并行程序,无论是台式机、笔记本抑或平…

    Linux系统 2025年10月6日
  • 非常实用的Vim插件

    工欲善其事必先利其器,windows 环境下有诸多好用的 IDE,但在 linux 环境下,可供选择的工具并不多,但是 VIM 作为一款可扩展文本编辑工具,配合丰富的功能插件,同样…

    Linux系统 2025年9月21日

发表回复

登录后才能评论