一、部署环境

操作系统:CentOS Linux release 7.6.1810 (Core)

安装软件:

docker:18.06.3-ce

kubernetes:v1.15.4

二、部署架构:

部署开始前,先把主机名改成如上图所示。

同时修改/etc/hosts,如下:

三、部署过程

1、安装docker(所有节点)

1.1、卸载可能存在的依赖包

sudo yum remove docker docker-common container-selinux docker-selinux docker-engine

1.2、安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源

sudo yum install -y yum-utils

1.3、最后,添加yum源并更新索引。(docker ce的源使用的阿里云的,因为阿里云有详细的使用介绍,并且速度还可以。)

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
##更新索引
sudo yum clean all##推荐先清空索引,特别是新版本docker需要换成老版本docker的时候
sudo yum makecache fast

1.4、安装docker-ce

##查看下自己能安装的版本都有哪些
yum list docker-ce --showduplicates | sort -r
##不指定版本,安装最新版本的docker
sudo yum install docker-ce
##此处也可以安装指定版本的docker,如下:
sudo yum install -y docker-ce-18.09.9-3.el7

1.5、启动docker-ce 并设置开机启动

 systemctl enable docker && systemctl start docker

1.6、配置镜像加速

[root@master ~]# vi /etc/docker/daemon.json

{

"registry-mirrors": ["https://4ym6pzzt.mirror.aliyuncs.com"]

}

1.7、重启docker

systemctl restart docker

2、安装kubernetes

2.1、配置阿里k8s源(所有主机)

[root@master yum.repos.d]# cat <<EOF > /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

2.2、k8s版本查看(任意一台主机)

yum list kubelet --showduplicates | sort -r

找到我们需要安装的版本

2.3、安装组件(所有主机)

 yum install -y kubelet-1.15.4 kubeadm-1.15.4 kubectl-1.15.4

2.4、修改docker服务管理方式为systemd(所有主机)

sed -i "s#^ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd#g" /usr/lib/systemd/system/docker.service

2.5、master初始化,仅在master节点操作

kubeadm init --apiserver-advertise-address=10.0.0.17 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.15.4 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

2.6、按照提示执行以下命令

[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

2.7、下载并安装flannel资源配置清单(所有主机)

# 手动拉取flannel的docker镜像
docker pull easzlab/flannel:v0.11.0-amd64
# 修改镜像名称
docker tag easzlab/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64 # wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# kubectl apply -f kube-flannel.yml

2.8、验证

至此,master节点部署完毕

3、将node节点添加进集群

3.1、在master节点执行,获取TOKEN

[root@master ~]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
qb289r.phfyq6rd0vlf19w7 23h 2021-07-07T03:47:46-04:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token

证书有效期仅为24小时,若过期后需添加node节点,可重新生成:

kubeadm token create

3.2、在master节点执行,获取哈希值

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

3.3、在node节点执行,加入master集群

kubeadm join --token qb289r.phfyq6rd0vlf19w7 10.0.0.17:6443 --discovery-token-ca-cert-hash sha256:1823760d5ae6223edc3d8f44ec82a28b4d1d4cf31002968f64daacde4eb64a2e

3.4、把传输到node节点

scp /etc/kubernetes/admin.conf 10.0.0.27:/etc/kubernetes/
scp /etc/kubernetes/admin.conf 10.0.0.37:/etc/kubernetes/
#添加到环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
#使环境变量生效
source ~/.bash_profile

3.5、验证

[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 59m v1.15.4
node01 Ready <none> 31m v1.15.4
node02 Ready <none> 32m v1.15.4

查看POD

可见集群已成功同步并已调度到node节点。

至此,kubernetes集群搭建完毕!

Centos7搭建k8s集群的更多相关文章

  1. kubeadm 搭建 K8S集群

    kubeadm是K8s官方推荐的快速搭建K8s集群的方法. 环境: Ubuntu 16.04 1 安装docker Install Docker from Ubuntu’s repositories: ...

  2. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

  3. 教你用multipass快速搭建k8s集群

    目录 前言 一.multipass快速入门 安装 使用 二.使用multipass搭建k8s集群 创建3台虚拟机 安装master节点 安装node节点 测试k8s集群 三.其他问题 不能拉取镜像:报 ...

  4. CentOS7 使用 kubeadm 搭建 k8s 集群

    一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker ...

  5. 1 搭建K8s集群

    官网:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing ...

  6. 从0到1搭建k8s集群系列1:安装虚拟机及docker

    前言 本系列文章记录了本人学习k8s集群搭建的过程,从k8s基本组件的安装.到部署mysql服务到k8s集群.部署web项目到k8s集群以及安装可视化界面管理工具kuboard. 因为k8s的组件安装 ...

  7. CentOS7 部署K8S集群

    虚拟机:   VMware® Workstation 12 Pro 12.5.9 build-7535481操作系统:CentOS Linux release 7.6.1810 (Core)   部署 ...

  8. 搭建K8S集群

    一.前言 我们将现有的虚拟机称之为Node1,用作主节点.为了减少工作量,在Node1安装Kubernetes后,我们利用VirtualBox的虚拟机复制功能,复制出两个完全一样的虚拟机作为工作节点. ...

  9. CentOS7 部署K8S集群,最新版1.17.3-0

    小白在网上找了很多关于k8s集群部署的文档,但是版本老旧,到处踩坑,终于部署成功,记录下过程. 一.准备工作 虚拟机:VMware® Workstation 15 Pro Xhell 6:Xshell ...

随机推荐

  1. CentOS6 YUM 源失效问题解决办法

    问题解决 网站好不容易找到一个 Yum 源还能用,地址:https://vault.centos.org/6.9/ 操作简单,把CentOS-Base.repo 里面的东西全部删掉,添加如下内容即可. ...

  2. property - 必应词典 美['prɑpərti]英['prɒpə(r)ti] n.属性;财产;财产权;【戏】道具

    英语 (已检测) 自动检测 阿拉伯语 自动检测 爱尔兰语 自动检测 爱沙尼亚语 自动检测 保加利亚语 自动检测 冰岛语 自动检测 波兰语 自动检测 波斯尼亚语(拉丁语) 自动检测 波斯语 自动检测 丹 ...

  3. ELK学习实验019:ELK使用redis缓存

    1 安装一个redis服务 [root@node4 ~]# yum -y install redis 直接启动 [root@node4 ~]# systemctl restart redis [roo ...

  4. HEX与ASCII之间装换

    static const char bcd_ascll[20]={0x30,0x31,0x32,0x33,0x34, 0x35,0x36,0x37,0x38,0x39,                 ...

  5. 20192113 2020-2021-2 《Python程序设计》实验三报告

    20192113 2020-2021-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...

  6. VMware Tanzu Kubernetes Grid 1.3 发布 - VMware 构建、签名和支持的开源 Kubernetes 容器编排平台的完整分发版

    Tanzu Kubernetes 集群是由 VMware 构建.签名和支持的开源 Kubernetes 容器编排平台的完整分发版.可以通过使用 Tanzu Kubernetes Grid 服务在主管集 ...

  7. 3. servlet 和 springmvc框架关系

    在springmvc上我们会编写很多相关的配置 编写springmvc.xml 配置映射器 配置 处理适配器 ... web.xml 配置前端控制器 (DispatcherServlet) 官网: h ...

  8. Lua 业务 脚本

    Lua 脚本 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice ...

  9. GO语言异常处理03---自定义异常

    package main import ( "fmt" "time" ) /* type error interface { Error() string } ...

  10. Echarts-2.2.7中统计出来的统计图保存为图片

    今天在做一个图形报表,有个需求是要把展现的统计图保存为图片, 图形报表用的Echarts-2.2.7, 以前有用过 Echarts,记得echarts插件是可以帮助我们把统计图保存为图片的. 只是不记 ...