使用Kubeadm快速部署K8S集群
一、简介
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 |
三、整体搭建步骤
- 在三个节点安装 docker kubelet kubeadm kubectl
- 在 master 节点执行 kubeadm init 命令初始化
- 在 node 节点上执行 kubeadm join 命令,把 node 节点添加到当前集群
- 配置CNI网络插件,用于节点之间的连通
- 通过拉取一个 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
- 查看节点,目前有一个master节点已经运行,但还处于未准备状态
kubectl get nodes
5.4 集群加入节点
- nodeN 加入集群,次命令为 master 初始化完成后输出的目录,如果 token 过期,在 master 从新创建
docker swarm join --token SWMTKN-1-2hwisw74jk5g0nttsrq85ank1hhr7wgd9z57fg2m0eku73690q-05w3j0k91qgszc31eon8l7vru 192.168.200.164:2377
- 查看集群成员,可以看到此时集群中有 1 个maser ,2 个工作节点
kubectl get nodes
5.5 CNI 网络插件部署
- 下载网络插件配置
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 添加
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
6.5 测试集群
K8S 是容器化技术,可以联网去下载镜像,用容器的方式进行启动。
6.1 创建 pod
- 此命令会下载 nginx 镜像
kubectl create deployment nginx --image=nginx
- 查看状态,如果状态为 running ,示已经成功运行
kubectl get pod
6.2 创建 svc
我们需要将端口暴露出去,让其它外界能够访问
- 暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
- 查看对外端口
kubectl get pod,svc
6.3 访问
输入任意一台 node 的 ip+port,即可访问。(包括 master)
使用Kubeadm快速部署K8S集群相关推荐
- 2、使用 kubeadm 方式快速部署K8S集群
文章目录 一.kubernetes 官方提供的三种部署方式 二.使用kubeadm搭建k8s集群 2.1 基础环境设置 2.2 安装Docker 2.3 添加kubernetes软件源 2.4 安装k ...
- ② kubeadm快速部署Kubernetes集群
文章目录 1. 安装要求 2. 目标 3. 准备环境 4. 所有节点安装Docker/kubeadm/kubelet 4.1 安装Docker(以一台为例,其他相同) 4.2 添加kubernetes ...
- k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA
作者:杨紫熹 原文链接: https://fs.tn/post/PmaL-uIiQ/ RKE全称为Rancher Kubernetes Engine,是一款经过CNCF认证的开源Kubernetes发 ...
- 使用minikube快速部署k8s集群
本文个人博客地址:http://www.huweihuang.com/article/kubernetes/install-k8s-by-minikube/ 以下内容基于Linux系统,特别为Ubun ...
- Kubeadm 快速搭建 k8s 集群安装可视化管理界面
文章目录 1. 实验准备 2. 安装 docker 3. 配置阿里云 K8S repo 源(三个节点) 4. 安装 kubeadm,kubelet,kubectl(三个节点) 5. 部署 kubern ...
- 快速部署 k8s 集群
部署3个节点的k8s 集群,三个虚机的信息如下所示: 主机名 ip地址 角色 系统os k8s-master 192.168.1.38 worker Ubuntu 18.04.2 LTS k8s-no ...
- kubeadm方式部署k8s集群(1.18版本,亲测可用)
文章目录 一.系统环境 1.设置系统主机名以及Host文件 2.关闭防火墙 3.关闭系统Swap 二.安装Docker 1.安装docker 2.所需镜像 三.安装kubelet.kubeadm 和 ...
- sealos快速部署k8s集群
1.测试环境 主机名 IP地址 配置 操作系统 系统密码 master 192.168.1.200 1C2G40G centos7.9 123456.com node1 192.168.1.201 1 ...
- kubeadm部署k8s集群
1.准备环境 虚拟机操作系统: Centos7 角色 IP Master 192.168.150.140 Node1 192.168.150. ...
最新文章
- plsql导入到mysql数据库乱码问题_PLSQL打开sql文件中文乱码解决方案
- linux centos7 报错: “Repository base is listed more than once in the configuration“和“没有可用软件包 xxx“ 解决方法
- java执行器是什么_Java 并发编程:任务执行器 Executor 接口
- 【Leetcode】376. Wiggle Subsequence
- c 语言26个小写字母,26个字母表大小写
- C语言学习之1到10的奇数相乘1到10的偶数相乘
- 【计算机网络】协议,接口,服务
- linux sshd启动失败 sshd re-exec requires execution with an absolute path
- 阿里巴巴大数据实践—实时技术
- 【OJ】洛谷函数与结构体题单题解锦集
- CSS3 过渡和动画
- How to Fix Git Push Time Consuming Issue in a Big Team?
- 无人车是怎样一步步学会开车的? | 自动驾驶科普
- 深入理解Linux中内存管理
- eclipse出现Package jdk.internal.jimage.decompressor in both module java.base and module jrt.fs错误解决办法
- 实时网速监测app_实时网速-实时网速app安卓版下载v1.0-我爱秘籍
- WIN10下配置Yolov3(VS2019,GPU)+opencv训练自己的数据集(绝对详细,小白型记录)
- 便宜实惠的移动自动快充:50元仅需48.90元
- Google Chrome无法添加扩展程序(插件)的解决方案
- c语言用字符输出李字,二级C语言历年真题汇总__第10篇对文件的输入输出-李赛红.doc...
热门文章
- 视频:忆童年有摇杆,《暗黑破坏神3》街机版演示
- 2022GPLT团体程序设计天梯赛L1-086 斯德哥尔摩火车上的题
- carLife 车机端集成
- CSS单行、多行文本溢出隐藏
- 纪中暑假培训 :Date:7 终章-剑之魂
- ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)1
- GitHub中开启二次验证Two-factor authentication,如何在命令行下更新和上传代码
- 技术人的充电时刻,200分钟QA交流,尽在SDCC 2017·深圳站
- python股票预测的意义是什么_股票预测python,python 设计一个名为Stock的类来表示...
- C语言编写一个四位数的和,c语言编写一段程序,输入一个四位数,输出各位数字的和...