在这里插入图片描述
参考:https://www.likecs.com/show-203423232.html

一。Kubernetes集群里有三种IP地址,分别如下:

Node IP:Node节点的IP地址,即物理网卡的IP地址。
Pod IP:Pod的IP地址,即docker容器的IP地址,此为虚拟IP地址。
Cluster IP:Service的IP地址,此为虚拟IP地址。
二。k8s-集群搭建的三种方式,
目前主流的搭建k8s集群的方式有
1
使用kubeadm离线安装
2
通过yum官方仓库
3
minikube
4
二进制包形式安装
(1).关闭swap:swapoff -a
linux swap指的是linux交换分区,是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是两者的组合;swap类似于Windows的虚拟内存,就是当内存不足时,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
(2)关闭selinux,这个是用来加强安全性的一个组件,但非常容易出错且难以定位,一般上来装完系统就先给禁用了.临时关闭,在终端输入“setenforce 0”命令。
2、永久关闭,输入命令vim /etc/selinux/config
在这里插入图片描述

(3)关闭iptables防火墙,会对所有网络流量进行过滤、转发,如果是内网机器一般都会直接关闭,省的影响网络性能,但k8s不能直接关了,k8s是需要用防火墙做ip转发和修改的,当然也看使用的网络模式,如果采用的网络模式不需要防火墙也是可以直接关闭的
systemctl stop firewalld
在这里插入图片描述

三。学习yum部署k8s
四。虚拟机上搭建分布式基础环境
(1) 安装准备
Windows10 64位,vmware workstation 12、CentOS-7-x86_64-DVD-1611.iso
(2) 安装过程
1) 安装VMware
按步骤安装。
2) 安装CentOS
按步骤安装。注意设置用户密码。
3) 开启安装成功的虚拟机,配置网络。
联网,配置静态IP,静态IP为192.168.5.101。可以根据自己需要配置一些基础环境,比如JDK等。
4) 克隆虚拟机
刚才已经创建了一台虚拟机,并配好了静态IP等,接下来可以根据VMware的克隆功能快速扩充新的虚拟机,克隆前先将电源关闭。
首先右键选择拍摄快照,之后在克隆时克隆源选择“现有快照”,之后修改虚拟机名称,按步骤进行克隆。
添加快照:
在这里插入图片描述
克隆:
在这里插入图片描述
启动克隆后的虚拟机,确保虚拟机之间能互相ping通。
五。虚拟机设置固定ip,进入network-scripts
在这里插入图片描述
修改master,node主机名 hostnamectl set-hostname master
六。测试docker是否安装成功
在这里插入图片描述
七。添加docker用户组
groupadd docker
授予已有的登录用户于执行docker的权限
查看用户所属组
在这里插入图片描述
普通用户执行docker语句命令后的提示,权限被拒绝

在这里插入图片描述
登录root用户,向docker用户组添加普通用户:usermod -aG docker 用户名
在这里插入图片描述
八。安装kubernetes
1)Master节点上安装:
yum install kubernetes-master etcd flannel -
2)两个Node节点上分别安装:
yum install kubernetes-node etcd flannel -y

九。etcd集群配置
master修改etcd配置文件:在这里插入图片描述

参考
在这里插入图片描述
解释
在这里插入图片描述
11.设置静态ip地址,master和node节点都需要设置
12.配置k8s master(以下配置操作均在master节点上)
1)首先配置/etc/kubernetes/config文件
修改/etc/kubernetes/config文件如下:主要修改kube_master
在这里插入图片描述
在这里插入图片描述
(2)配置启动apiserver
在这里插入图片描述
(3)Kube-Controller-Manager,Kube-Scheduler配置文件暂时不做修改
13。配置k8s node(以下配置操作均在node节点上)
(1) node1,node2节点上均要配置/etc/kubernetes/config文件
vim /etc/kubernets/config
在这里插入图片描述
(2)node1,node2上均要修改kubelet配置:
KUBELET_HOSTNAME=“–hostname-override=k8s-node1” #注意配置为对应node的hostname
在这里插入图片描述
14。k8s flannel网络配置
flannel以插件的形式配置在kubernetes集群中,flannel作用:
flannel通过与etcd进行通信获取整个集群网段信息并进行子网的二次分配,使得每个minion节点都能拥有一个唯一的子网网段,进而确保在整个k8s集群中运行的docker容器都能获得唯一的ip地址。
不同主机的容器实现互联互通
flannel在docker之前启动
(1) master,node1,node2上配置flannel
vim /etc/sysconfig/flanneld
在这里插入图片描述
(2)为flannel创建分配的网络
1)指定Flanneld服务读取ETCD数据库地址和端口(ETCD Master节
点)FLANNEL_ETCD_ENDPOINTS=“http://192.168.80.120:2379”
2)指定Flanneld服务读取ETCD数据库的KEY;
FLANNEL_ETCD_PREFIX=“/atomic.io/network”
在这里插入图片描述
3)master主服务器启动docker服务,etcd服务等:systemctl start etcd docker kube-apiserver kube-controller-manager kube-scheduler
设置开机自启动:
systemctl enable etcd docker kube-apiserver kube-controller-manager kube-scheduler

4)node节点上启动docker服务,etcd服务等:systemctl start docker etcd kubelet kube-proxy
设置开机自启动:
systemctl enable docker etcd kubelet kube-proxy
十七。排查etcd安装情况
查看etcd启动状态:systemctl status service
启动etcd服务:systemctl start etcd.service或者service etcd start
在这里插入图片描述
获取etcd节点数据,有报错(node节点etcd没有启动,)
etcdctl get /
在这里插入图片描述

4)在ETCD数据库服务器(单点|Master节点)-创建网络信息(KEY)并启动flannel服务,只在master上etcd执行
/atomic.io/network/ 可以参考/etc/sysconfig/flanneld上的内容
172.17.0.0可以参考启动docker服务后ifconfig查看到的额docker0的ip地址
命令:etcdctl mk /atomic.io/network/config ‘{“Network”:”172.17.0.0/16”}’
查看创建的key: etcdctl get /atomic.io/network/config
在这里插入图片描述
node节点可以查看到flanneld地址
在这里插入图片描述
十八。确认集群是否可用
kubectl get nodes
在这里插入图片描述
十九。虚拟机重启后获取不到node节点信息
重启master节点的kube-scheduler和kube-apiserver 即可
在这里插入图片描述

Flannel使用etcd存放网络配置、已分配 的subnet、host的IP等信息

1)只在master上etcd执行
etcdctl mk /coreos.com/network/config ‘{“Network”: “172.17.0.0/16”}’
2)若要重新建,先删除
etcdctl rm /coreos.com/network/ --recursive
3):重置docker0网桥的配置
删除docker启动时默认创建的docker0网桥,flannel启动时会获取到一个网络地址,并且配置docker0的IP地址,作为该网络的网关地址,若此时docker0上配置有IP地址,那么flannel将会启动失败。
删除docker启动时默认创建的docker0网桥:ip link del docker0

参考原文链接:https://blog.csdn.net/qq_38252499/article/details/99214276

Kubeadm仅关心如何初始化并启动集群,余下的其他操作,例如安装Kubernetes Dashboard、监控系统、日志系统等必要的附加组件则不在其考虑范围之内,需要管理员自行部署

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐