K8S 集群的安装
K8S 集群的安装本文主要结合自己安装K8S集群的经历介绍一下K8S集群的安装过程安装过程主要参考博文 https://www.cnblogs.com/spl
K8S 集群的安装
本文主要结合自己安装K8S集群的经历介绍一下K8S集群的安装过程
安装过程主要参考博文 https://www.cnblogs.com/spll/p/10033316.html
言归正传。
集群部署在自己的虚拟机上,首先要保证每一个虚拟机至少2核,否则集群无法运行。集群规划如下
master:192.168.56.4
node1:192.168.56.2
node2:192.168.56.3
系统基于Centos7,node节点需要安装docker,由于虚拟机资源有限,后续再考虑master的HA等问题
集群规划好了,开始安装
1. 关闭防火墙和selinux
关闭所有节点的防火墙和selinux
修改 /etc/selinux/config ,设置SELINUX为disabled
关闭防火墙
# service firewalld stop
防止防火墙开机启动
# systemctl disable firewalld.service
修改后,重启server
2. 在master节点上安装 K8S Master
安装etcd和kubernates-master
yum -y install etcd kubernetes-master
2.1 修改etcd的配置文件
此次etcd使用单机版
vi /etc/etcd/etcd.conf
修改内容如下
ETCD_DATA_DIR="/data/etcd" # etcd存储数据的路径
ETCD_NAME="default" #etcd的名字
ETCD_LISTEN_CLIENT_URLS="http://192.168.56.4:2379" # etcd对外提供服务的地址,如果是集群用逗号分割,此处不要写域名,也不要使用127.0.0.1,使用机器的实际ip,否则api-server连接会有问题,2379是etcd的默认端口。
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.56.4:2379" # 此成员的客户端URL列表,用于通告群集的其余部分。这些URL可以包含域名。
2.2 修改api-server的配置文件
vi /etc/kubernetes/apiserver
修改如下内容
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" # 监听地址,改成0.0.0.0,监听所有接口
KUBE_API_PORT="--port=8080" #监听的端口,默认8080,酌情修改
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.56.4:2379" #etcd的地址,不要使用127.0.0.1
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" # 删掉value中的serviceAccount,serviceAccount与证书有关,此次安装先不配置证书,所以要先删掉
2.3 启动 etcd ,api-server,controller-manager,scheduler
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done
2.4 在etcd中定义flannel网络
etcdctl mk /http://atomic.io/network/config '{"Network":"172.17.0.0/16"}'
此次安装集群的网络使用flannel实现
至此,master的安装完成
3. 在node节点上安装
下面的操作需要在两个node节点上完成
安装flannel和kubenates-node
yum -y install flannel kubernetes-node
3.1 修改/etc/sysconfig/flanneld配置文件
修改内容如下
FLANNEL_ETCD_ENDPOINTS="http://192.168.56.4:2379" #etcd的url
FLANNEL_ETCD_PREFIX="/http://atomic.io/network" # etcd中定义的网络的key,在2.4节定义,注意,我们在2.4节定义的是/http://atomic.io/network/config,此处不要写config
3.2 修改/etc/kubernetes/config配置文件
修改内容如下
KUBE_MASTER="--master=http://192.158.56.4:8080" # master的url
3.3 修改/etc/kubernetes/kubelet
修改内容如下
KUBELET_ADDRESS="--address=0.0.0.0" # 监听所有接口
KUBELET_HOSTNAME="--hostname-override=192.168.56.2" # kubelet name,配置成本机的ip,(此处应该只是用来展示用,应该没有其他的实际作用,这只是猜测,没有验证)
KUBELET_API_SERVER="--api-servers=http://192.168.56.4:8080" # api-server的url
3.4 启动 kube-proxy,kubelet,docker,flannel
for SERVICES in kube-proxy kubelet docker flanneld;do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done
至此node节点也安装完成
4. 验证
在master节点上执行命令
kubectl get nodes
看到以下结果,说明安装成功
5. 后记
在安装node节点的时候,出现了kubelet启动失败的情况 报错204/MEMORY, 开始还以为是内存不够了,但是几个虚机的配置都一样,应该不会是内存不够问题,查阅资料说是要关闭swap,否则kubelet会有错误,关闭了swap还是不好用,这次安装其他节点并没有关闭swap,也没有出问题。关于swap的问题,如果后面出问题再修改。最后重装了kubelet,问题jiejue。
这次安装是最简单的安装方式,没有安装证书,etcd和master都是单点。后面会继续完善。