搭建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日

相关推荐

  • Linfo:实时显示你的 Linux 服务器运行状况

    Linfo 是一个自由开源的跨平台的服务器统计 UI 或库,它可以显示大量的系统信息。Linfo 是可扩展的,通过 composer,很容易使用 php5 库以程序化方式获取来自 …

    Linux系统 2025年6月8日
  • Linux中Postfix反病毒和垃圾邮件工具(十)

    amavisd-new amavisd-new呼叫器是一个连接MTA和内容检测工具(诸如病毒扫描工具和SpamAssassin)的高性能接口程序,使用perl语言写成。它一般通过S…

    Linux系统 2025年6月28日
  • 详解RPM 包制作方法

    RPM(RedHat Package Manager)一种通过资料库管理的方式将所需要的软件安装到主机上的管理程序,Linux就是通过rpm来管理和实现软件的安装、查看、删除的。 …

    Linux系统 2025年7月8日
  • 使用SSH远程运行Linux命令具体方法

    SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉,下面为大家分享…

    Linux系统 2025年6月26日
  • 通过命令行的方式查找公网动态 IP 地址

    公网IP是运行商给你的IP,是互联网上的一个“门牌号”。内网IP一般是你的局域网IP,比如你家有路由器,就必须有一个内网IP,是内网的一个“门牌号”。“门牌号”是“唯一”的,使别人…

    Linux系统 2025年6月24日
  • ldconfig命令使用方法

    ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享,本篇文章重点为大家讲解一下ldconfig命令使用方法,有需要的小伙伴可以参考一下。 ldconfig…

    Linux系统 2025年6月19日
  • mysql实现高可用架构之MHA

    MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能。MHA 在监控…

    Linux系统 2025年6月10日
  • 详解Linux下cpustat的安装和使用方法

    cpustat 是 Linux下用Go编写的系统性能测量程序,它通过使用 “用于分析任意系统的性能的方法(USE)”,以有效的方式显示 CPU 利用率和饱和度,本篇文章重点为大家讲…

    Linux系统 2025年6月9日
  • 快速上手Vue.js

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我…

    Linux系统 2025年7月9日
  • Linux下使用dd命令克隆硬盘

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,本篇文章为大家演示一下使用dd命令克隆硬盘具体方法。 只拷贝…

    Linux系统 2025年6月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注