一、简介

Kubeadm 是官方社区推出的一个用于快速部署 Kubernetes 集群的工具,能通过指令快速完成一个 Kubernetes 集群的部署。需要注意的是,Kubeadm 方式部署的 Kubernetes 集群,仅可用于学习与测试,生产环境不推荐使用。

二、环境

这里准备了三台服务器,一个 master、两台 node 节点,均为 CentOS 7.9

主机 描述
192.168.200.164 master
192.168.200.165 node1
192.168.200.166 node2

三、整体搭建步骤

  1. 在三个节点安装 docker kubelet kubeadm kubectl
  2. 在 master 节点执行 kubeadm init 命令初始化
  3. 在 node 节点上执行 kubeadm join 命令,把 node 节点添加到当前集群
  4. 配置CNI网络插件,用于节点之间的连通
  5. 通过拉取一个 nginx 进行测试,能否进行访问测试

四、环境准备

下面这些命令,对服务器进行一些安装前的准,在 master 与 node 都需执行,

4.1 关闭防火墙

执行下面命令,关闭服务器的防火墙

systemctl stop firewalld
systemctl disable firewalld

4.2 关闭 selinux

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

4.3 关闭 swap

sed -ri 's/.*swap.*/#&/' /etc/fstab

4.4 桥接流量

将桥接的 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

4.5 时间同步

执行下面命令,同步服务器时间

yum install ntpdate -y
ntpdate time.windows.com

4.6 Docker 安装

Master 与 Node 节点都需安装 Docker,教程参考其他博客 CentOS安装Docker详细步骤

五、部署流程

Kubeadm 方式部署 K8S 相对来说,还是比较快的,只需只需一些命令即可

5.1 添加 K8S 软件源

设置一下 K8S 软件 Yum 的源,这里设置为阿里云,可以下载快些,Master 、Node 都需要执行

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

5.2 安装 kubeadm,kubelet 和 kubectl

因为版本更新频繁,所以这里指定版本号部署,这里安装的是 v18.0,Master、Node 都需要执行

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

设置开机启动

systemctl enable kubelet

5.3 部署 k8s Master 节点

在 Master 节点执行下面命令,也就是 192.168.200.164,注意命令中的 IP 根据自己的服务器进行修改

kubeadm init --apiserver-advertise-address=192.168.200.164 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12  --pod-network-cidr=10.244.0.0/16

默认拉取镜像地址 k8s.gcr.io 国内无法访问,所以前面步骤指定阿里云镜像仓库地址。执行上面命令会下载有些 Docker Image 所以比较慢,提示完成后可以 Docker Images 命令查看经拉取的镜像

docker images


查看 Master 初始化目录执行情况,可以看到执行成功,并给出了两个执行命令

  • 在本机执行
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
  • 次命令只能在 node 节点执行,让执行命令的服务器加入集群
docker swarm join  --token SWMTKN-1-2hwisw74jk5g0nttsrq85ank1hhr7wgd9z57fg2m0eku73690q-05w3j0k91qgszc31eon8l7vru  192.168.200.164:2377

token 默认有效期为24小时,当过期之后,该token就不可用了,次时就需要重新创建token。
kubeadm token create --print-join-command

  1. 查看节点,目前有一个master节点已经运行,但还处于未准备状态
kubectl get nodes

5.4 集群加入节点

  1. nodeN 加入集群,次命令为 master 初始化完成后输出的目录,如果 token 过期,在 master 从新创建
docker swarm join  --token SWMTKN-1-2hwisw74jk5g0nttsrq85ank1hhr7wgd9z57fg2m0eku73690q-05w3j0k91qgszc31eon8l7vru  192.168.200.164:2377
  1. 查看集群成员,可以看到此时集群中有 1 个maser ,2 个工作节点
kubectl get nodes

5.5 CNI 网络插件部署

  1. 下载网络插件配置
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  1. 添加
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

6.5 测试集群

K8S 是容器化技术,可以联网去下载镜像,用容器的方式进行启动。

6.1 创建 pod

  1. 此命令会下载 nginx 镜像
kubectl create deployment nginx --image=nginx
  1. 查看状态,如果状态为 running ,示已经成功运行
kubectl get pod

6.2 创建 svc

我们需要将端口暴露出去,让其它外界能够访问

  1. 暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
  1. 查看对外端口
kubectl get pod,svc

6.3 访问

输入任意一台 node 的 ip+port,即可访问。(包括 master)

使用Kubeadm快速部署K8S集群相关推荐

  1. 2、使用 kubeadm 方式快速部署K8S集群

    文章目录 一.kubernetes 官方提供的三种部署方式 二.使用kubeadm搭建k8s集群 2.1 基础环境设置 2.2 安装Docker 2.3 添加kubernetes软件源 2.4 安装k ...

  2. ② kubeadm快速部署Kubernetes集群

    文章目录 1. 安装要求 2. 目标 3. 准备环境 4. 所有节点安装Docker/kubeadm/kubelet 4.1 安装Docker(以一台为例,其他相同) 4.2 添加kubernetes ...

  3. k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA

    作者:杨紫熹 原文链接: https://fs.tn/post/PmaL-uIiQ/ RKE全称为Rancher Kubernetes Engine,是一款经过CNCF认证的开源Kubernetes发 ...

  4. 使用minikube快速部署k8s集群

    本文个人博客地址:http://www.huweihuang.com/article/kubernetes/install-k8s-by-minikube/ 以下内容基于Linux系统,特别为Ubun ...

  5. Kubeadm 快速搭建 k8s 集群安装可视化管理界面

    文章目录 1. 实验准备 2. 安装 docker 3. 配置阿里云 K8S repo 源(三个节点) 4. 安装 kubeadm,kubelet,kubectl(三个节点) 5. 部署 kubern ...

  6. 快速部署 k8s 集群

    部署3个节点的k8s 集群,三个虚机的信息如下所示: 主机名 ip地址 角色 系统os k8s-master 192.168.1.38 worker Ubuntu 18.04.2 LTS k8s-no ...

  7. kubeadm方式部署k8s集群(1.18版本,亲测可用)

    文章目录 一.系统环境 1.设置系统主机名以及Host文件 2.关闭防火墙 3.关闭系统Swap 二.安装Docker 1.安装docker 2.所需镜像 三.安装kubelet.kubeadm 和 ...

  8. sealos快速部署k8s集群

    1.测试环境 主机名 IP地址 配置 操作系统 系统密码 master 192.168.1.200 1C2G40G centos7.9 123456.com node1 192.168.1.201 1 ...

  9. kubeadm部署k8s集群

    1.准备环境 虚拟机操作系统: Centos7 角色                IP Master        192.168.150.140 Node1        192.168.150. ...

最新文章

  1. plsql导入到mysql数据库乱码问题_PLSQL打开sql文件中文乱码解决方案
  2. linux centos7 报错: “Repository base is listed more than once in the configuration“和“没有可用软件包 xxx“ 解决方法
  3. java执行器是什么_Java 并发编程:任务执行器 Executor 接口
  4. 【Leetcode】376. Wiggle Subsequence
  5. c 语言26个小写字母,26个字母表大小写
  6. C语言学习之1到10的奇数相乘1到10的偶数相乘
  7. 【计算机网络】协议,接口,服务
  8. linux sshd启动失败 sshd re-exec requires execution with an absolute path
  9. 阿里巴巴大数据实践—实时技术
  10. 【OJ】洛谷函数与结构体题单题解锦集
  11. CSS3 过渡和动画
  12. How to Fix Git Push Time Consuming Issue in a Big Team?
  13. 无人车是怎样一步步学会开车的? | 自动驾驶科普
  14. 深入理解Linux中内存管理
  15. eclipse出现Package jdk.internal.jimage.decompressor in both module java.base and module jrt.fs错误解决办法
  16. 实时网速监测app_实时网速-实时网速app安卓版下载v1.0-我爱秘籍
  17. WIN10下配置Yolov3(VS2019,GPU)+opencv训练自己的数据集(绝对详细,小白型记录)
  18. 便宜实惠的移动自动快充:50元仅需48.90元
  19. Google Chrome无法添加扩展程序(插件)的解决方案
  20. c语言用字符输出李字,二级C语言历年真题汇总__第10篇对文件的输入输出-李赛红.doc...

热门文章

  1. 视频:忆童年有摇杆,《暗黑破坏神3》街机版演示
  2. 2022GPLT团体程序设计天梯赛L1-086 斯德哥尔摩火车上的题
  3. carLife 车机端集成
  4. CSS单行、多行文本溢出隐藏
  5. 纪中暑假培训 :Date:7 终章-剑之魂
  6. ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)1
  7. GitHub中开启二次验证Two-factor authentication,如何在命令行下更新和上传代码
  8. 技术人的充电时刻,200分钟QA交流,尽在SDCC 2017·深圳站
  9. python股票预测的意义是什么_股票预测python,python 设计一个名为Stock的类来表示...
  10. C语言编写一个四位数的和,c语言编写一段程序,输入一个四位数,输出各位数字的和...