kubenetes 集群二进制安装之kubenets 1.12.2安装 – 21运维
通知: .-...

kubenetes 集群二进制安装之kubenets 1.12.2安装

K8S 21运维 283浏览

    之前记录过k8s的yum安装(推荐初学者)以及kubeadm安装(仅推荐了解kubeadm安装过程),这两种安装方式仅限于学习了解,实际生产环境基本都是基于二进制精确控制安装,本文记录kubenetes v1.12.2 版本的二进制精确控制安装,适用于线上生产环境部署方式,当然坑还是不少的,谁装谁知道。
本文主要参考了jimmysong大神、朋友公司线上生产以及公司测试、线上生产环境的部署方式。
分为如下章节:

由于篇幅过长,本文记录一下服务器的前期准备工作,后续文章版本发布回滚、监控实现后续再更新:
1, kubenetes 集群二进制安装之创建TLS证书和密钥
2,kubenetes 集群二进制安装之安装etcd集群
3,
kubenetes 集群二进制安装之安装flannel网络组件
4,kubenetes 集群二进制安装之安装kubectl命令行工具
5,kubenetes 集群二进制安装之master安装部署
6,kubenetes 集群二进制安装之node节点docker-ce和kubenetes组件安装部署

环境平台 :CentOS Linux release 7.5.1804 (Core)
master01: 10.1.14.21
master02: 10.1.14.22
etcd01:     10.1.14.23
etcd02:     10.1.14.24
node01:     10.1.14.25
node02:    10.1.14.26
说明:mastr高可用线下建议采用keepalive或者haproxy或者其他代理工具,仅限学习或者本地测试环境。线上直接使用slb或elb等调度器实现。

一,集群服务器说明

1,服务器角色说明
master01和master02:分别是k8s集群的两个master节点,设置两个是考虑到高可用。内部机房或者虚拟机可以考虑keepalive或ha实现,线上生产建议考虑调度器比如slb或elb。
etcd01和etcd02:  etcd集群。用于存在集群的配置信息,机器宕机或者损坏则会导致集群异常甚至集群崩溃,设置两个也是为了防止单点故障以达到高可用的目的。
node01和node02: node节点,这里以两个举例,实际线上肯定是node x节点群。

2,各角色服务器配置组件
master:二进制安装kube-apiserver,kube-scheduler,kube-config-manager,命令行工具kubectl  【kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关; 同时只能有一个 kube-scheduler、kube-controller-manager 进程处于工作状态,如果运行多个,则需要通过选举产生一个 leader;】
etcd:     yum安装etcd
node:    安装flannel,kubelet,kube-proxy,docker-ce
haproxy:配置tcp代理haproxy组件。

3,软件版本信息
kubernetes: 1.12.2
etcd :         3.2.22
docker-ce : 18.06
flannel:        0.7.1
haproxy:    1.5.18

二,部署前期所有服务器准备工作(推荐使用批管理工具salt或者ansible)
1,关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

2,关闭selinux
修改/etc/selinux/config为SELINUX=disabled
重启后配置生效。不建议临时关闭(setenfore 0),防止机器重启失效。

3,配置yum源(为方便以后kubenetes组件安装提供yum源)

epel源:
yum install -y epel-release
 
#kubenetes yum源 ,采用阿里云,方便一些组件安装
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg  http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

4,host定向,将机器内部主机名通信打通:

vi /etc/hosts
10.1.14.21 master01
10.1.14.22 master02
10.1.14.23 etcd01
10.1.14.24 etcd02
10.1.14.25 node01
10.1.14.26 node02
10.1.14.27 mastercluster

5,master01生成密钥对,设置免密钥登陆其他机器

ssh-keygen   #生成密钥对
ssh-copy-id   -i  /root/.ssh/id_rsa.pub  master02
ssh-copy-id   -i  /root/.ssh/id_rsa.pub  etcd01
ssh-copy-id   -i  /root/.ssh/id_rsa.pub  etcd02
ssh-copy-id   -i  /root/.ssh/id_rsa.pub  node01
ssh-copy-id   -i  /root/.ssh/id_rsa.pub  node02
ssh-copy-id    -i /root/.ssh/id_rsa.pub  mastercluster

 

6,配置ntpdate保持时间一致

yum install  ntpdate  -y
systemctl enable ntpdate.service
systemctl start  ntpdate.service
临时同步:ntpdate   time7.aliyun.com
设置任务计划crontab -e:
*/30 * * * * /usr/sbin/ntpdate time7.aliyun.com >/dev/null 2>&1

7,关闭swap:
临时关闭:
swapoff -a
永久关闭:

sed -i 's/.*swap.*/#&/' /etc/fstab

否则会导致kubelet启动失败。

转载请注明:21运维 » kubenetes 集群二进制安装之kubenets 1.12.2安装