Kubernetes(2)——集群部署

k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。

k8s最初是在Google公司内部使用了10多年的技术,它的前身是叫做Borg(博格),直到2015年才被Google公司捐赠为开源项目。

如果之前我们有接触过OpenStack,那么应该知道管理VM虚拟机资源可以用OpenStack。那么管理容器所对应的开源平台是什么呢?k8s就是其中之一,在k8s之前也有很多容器管理平台,有docker自身的docker swarm,也有apache推出的Mesos等等。相比较而言,虽然k8s比其他推出的晚了些,但是丝毫不影响其火爆程度。

关于k8s更详细的介绍,可以移步至k8s中文文档或者k8s官方网站 ,以便查看更多资料

一、环境准备

172.25.254.2集群master
172.25.254.3集群slave
172.25.254.4集群slave
172.25.254.6habor仓库

上述四台虚拟机,均运行docker服务,如果是测试环境,那么master节点和habor仓库的虚拟机内存最少2G,CPU至少双核。

二、部署前准备

1、检查docker版本、关闭防火墙及Selinux、清空iptables规则、禁用Swap交换分区
注:以下操作需要在三台docker主机上分别配置一次,哪怕是在生产环境,都需要进行以下操作,因为k8s有它自己的安全策略。


[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
#关闭Selinux
[root@master ~]# setenforce 0    
[root@master ~]# vim /etc/sysconfig/selinux 
SELINUX=disabled          #将此处改为disabled
[root@master ~]# iptables -F    #清空iptables规则
#重启docker服务
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl restart docker
#禁用swap交换分区
[root@master ~]# swapoff -a   #临时禁用swap
[root@master ~]# vim /etc/fstab     #打开自动挂载的配置文件,将swap配置项注释掉
#/dev/mapper/cl-swap     swap                    swap    defaults        0 0
#就注释掉上面那行
[root@node02 ~]# mount -a    #重新加载挂载的配置文件
[root@node02 ~]# free -h     #确认输出的swap行如下(都为0):

(1)

所有节点部署docker引擎
# yum install -y docker-ce docker-ce-cli

# vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

# sysctl --system

# systemctl enable docker
# systemctl start docker

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)每个节点修改内核参数

vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)指定docker的启动方式为systemd,这是因为docker默认的启动方式为cgroup,而k8s的启动方式为systemd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)每个节点禁用swap分区
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.保证每台虚拟机都可以上网【打开iptables桥接功能及路由转发】。

三、配置k8s群集

1、部署下载k8s的yum源在这里插入图片描述
(2)所有节点安装k8s的工具
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)启动并设置为开机自动开启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)查看默认配置信息

 kubeadm config print init-defaults	

在这里插入图片描述

在这里插入图片描述
默认从k8s.gcr.io上下载组件镜像,需要翻墙才可以,所以需要修改镜像仓库:
(5)列出所需的镜像
在这里插入图片描述
(6)从阿里云上拉取所需的镜像

kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

(7)将拉取到的镜像上传到私有仓库【方便集群的从节点可以快速拉取所需的镜像】
由于habor仓库开启了认证,故server2、server3、server4需要认证
在这里插入图片描述
注:我的habor仓库的客户认证在/etc/docker/certs.d/westos.org/ca.crt
添加解析——每个节点都要添加解析【第一次搭建,从节点无法拉取到镜像,就是这个错误导致的】
在这里插入图片描述
将拉取到的镜像修改为私有仓库,并上传带私有仓库
在这里插入图片描述

先登录habor仓库
docker login westos.org
登录成功后:在上传
docker push westos.org/library/etcd:3.4.3-0 ##以这个镜像为例

2、初始化k8s集群【在master上进行就可以了】

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository westos.org/library
--pod-network-cidr=10.244.0.0/16	//使用flannel网络组件时必须添加
--kubernetes-version 	//指定k8s安装版本

在这里插入图片描述
建立用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、从节点加入master的集群

kubeadm join --token b3a32e.7cef20447b55261e 172.25.0.11:6443 --discovery-token-ca-cert-hash sha256:bc718df41fdceb0db6c5380c7e27c204589b41dcb5f9a3bc52c254b707377f2f

在这里插入图片描述
4.查看集群的节点
在这里插入图片描述

在这里插入图片描述

5、安装flannel网络组件
注:下载这个二进制文件后,会在本地拉取到一个flannel镜像

https://github.com/coreos/flannel
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

6、其他的从节点会自动拉取所需的镜像
在这里插入图片描述
注:

Master查看状态:
# kubectl get cs
# kubectl get node
# kubectl get pod -n kube-system


kubectl命令指南: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
补充:

配置kubectl命令补齐功能
echo "source <(kubectl completion bash)" >> ~/.bashrc

在这里插入图片描述
在这里插入图片描述
到这里我们的k8s平台就拉建好了

四、当主节点的token失效了,怎么办

模拟实验:
当server4出现故障,并被集群踢出集群
在这里插入图片描述
可以执行token list ,重新生成一个token
在这里插入图片描述
再次连接
在这里插入图片描述
再次查看集群状态
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值