微服务之——Kubernetes 集群搭建(一)

微服务之——Kubernetes 集群搭建(一)

上篇文章,我们和大家谈了下k8s的基本概念以及基本的组件,这期我们就来动手搭建K8S的集群。在

部署集群前,我们先看下几种常见的K8S集群部署方式。

微服务之——Kubernetes 集群搭建(一)

K8S集群部署有3种方式:kubeadmin、minikube和二进制包。

前两者属于自动部署,简化部署操作,我们这里强烈推荐初学者使用二进制包部署,因为自动部署屏蔽了很多细节,使得对各个模块感知很少,非常不利用学习。

下面我们就来以二进制包的方式去部署K8S集群

本次规划 5台主机,ip地址,主机名如图所示:

环境:centos7 内核3.10.0 (docker 要求是内核3.8以上)

微服务之——Kubernetes 集群搭建(一)

主机信息说明

微服务之——Kubernetes 集群搭建(一)

集群架构图

微服务之——Kubernetes 集群搭建(一)

业务部署表

本实验是在vmware workstation 14pro 上 部署安装的

网络使用NAT 模式,网段为10.4.7.0/24 ; 网关为10.4.7.254

微服务之——Kubernetes 集群搭建(一)
微服务之——Kubernetes 集群搭建(一)
微服务之——Kubernetes 集群搭建(一)
  1. 所有主机关闭SELINUX,firewalld
  2. 所有主机都安装EPEL源

[root@hdss7-11 ~]# yum install epel-release

3. 安装一些必要的工具

[root@hdss7-11 ~]# yum install -y wget net-tools telnet tree nmap sysstat lrzsz dos2unix bind-utils

一、部署DNS 服务器

在10.4.7.11 上部署安装

[root@hdss7-11 ~]# yum install bind -y

[root@hdss7-11 ~]# cp /etc/named.conf /etc/named.conf_bak

[root@hdss7-11 ~]# vim /etc/named.conf

listen-on port 53 { 10.4.7.11; }; —修改监听地址

allow-query { any; }; –为哪些服务器提供解析服务

forwarders { 10.4.7.254; }; —用来指定上一层DNS地址,一般指定网关,确保服务能够访问公网

dnssec-enable no;—–是否支持DNSSEC开关 PS:dnssec作用:1.为DNS数据提供来源验证 2.为数据提供完整性性验证 3.为查询提供否定存在验证

dnssec-validation no;—-是否进行DNSSEC确认开关

#如果不适用IPV6,可以将以下配置删除:

listen-on-v6 port 53 { ::1; };

配置文件截图:(仅粘贴修改部分)

微服务之——Kubernetes 集群搭建(一)

named.conf

微服务之——Kubernetes 集群搭建(一)

named.conf

#检查配置文件:

[root@hdss7-11 ~]# named-checkconf

区域配置文件:

主机域 host.com

业务域 fxkj.com

[root@hdss7-11 named]# vim /etc/named.rfc1912.zones

在文件最后,添加本次需要用到的两个dns域:

zone “host.com” IN {

type master;

file “host.com.zone“;

allow-update { 10.4.7.11; };

};

zone “fxkj.com” IN {

type master;

file “fxkj.com.zone“;

allow-update { 10.4.7.11; };

};

编辑刚刚添加的两个域的配置文件:将用到的DNS域解析A记录添加到配置文件

[root@hdss7-11 named]# vim host.com.zone

$ORIGIN host.com.

$TTL 600 ; 10 minutes

@ IN SOA dns.host.com. dnsadmin.host.com. (

2019111001 ; serial

10800 ; refresh (3 hours)

900 ; retry (15 minutes)

604800 ; expire (1 week)

86400 ; minimum (1 day)

)

NS dns.host.com.

$TTL 60 ; 1 minute

dns A 10.4.7.11

HDSS7-11 A 10.4.7.11

HDSS7-12 A 10.4.7.12

HDSS7-21 A 10.4.7.21

HDSS7-22 A 10.4.7.22

HDSS7-200 A 10.4.7.200

微服务之——Kubernetes 集群搭建(一)

[root@hdss7-11 named]# vim fxkj.com.zone

$ORIGIN fxkj.com.

$TTL 600 ; 10 minutes

@ IN SOA dns.fxkj.com. dnsadmin.fxkj.com. (

2019111001 ; serial

10800 ; refresh (3 hours)

900 ; retry (15 minutes)

604800 ; expire (1 week)

86400 ; minimum (1 day)

)

NS dns.fxkj.com.

$TTL 60 ; 1 minute

dns A 10.4.7.11

harbor A 10.4.7.200 ;后面需要用到harbor 仓库的解析

微服务之——Kubernetes 集群搭建(一)

#10.4.7.11上执行

[root@hdss7-11 ~]# systemctl enable named

[root@hdss7-11 ~]# systemctl restart named

修改网卡配置(所有主机):如果网卡指定了DNS1配置

[root@hdss7-11 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DNS1=10.4.7.11

或者 使用nmtui 命令 编辑

微服务之——Kubernetes 集群搭建(一)

重启网卡(所有主机),重启named服务(bind主机)

[root@hdss7-11 ~]# systemctl restart network

[root@hdss7-11 ~]# systemctl restart named

在宿主机上,修改vmware8 上面的DNS地址为 10.4.7.11

微服务之——Kubernetes 集群搭建(一)
微服务之——Kubernetes 集群搭建(一)

打开CMD ping测试

微服务之——Kubernetes 集群搭建(一)

二、准备证书签发环境

部署在 运维主机 HDSS7-200.host.com 上(10.4.7.200)

配置CA证书服务:

使用cfssl:R1.2 证书签发工具

需要三个软件: cfssl ,cfssl-json ,cfssl-certinfo

微服务之——Kubernetes 集群搭建(一)

在主机hdss7-200上操作:

[root@hdss7-11 ~]# cd /usr/bin

[root@hdss7-11 ~]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/bin/cfssl

[root@hdss7-11 ~]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/bin/cfssl-json

[root@hdss7-11 ~]# wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/bin/cfssl-certinfo

赋予执行权限:

[root@hdss7-11 ~]# chmod +x /usr/bin/cfssl*

创建证书存放位置(可自己设置):

[root@hdss7-200 ~]# mkdir /opt/certs

创建CA证书申请文件:

[root@hdss7-200 certs]# vim /opt/certs/ca-csr.json

#这里注意”expiry”: “175200h”,key,如果使用kubeadmin安装,默认证书有效期是1年,我们这里手动部署为20年,这里如果证书失效,会导致整个k8s集群瘫痪。

{

“CN”: “fxkjnj“,

“hosts”: [

],

“key”: {

“algo”: “rsa”,

“size”: 2048

},

“names”: [

{

“C”: “CN”,

“ST”: “beijing”,

“L”: “beijing”,

“O”: “fxkjnj”,

“OU”: “fxkj”

}

],

“ca”: {

“expiry”: “175200h

}

}

微服务之——Kubernetes 集群搭建(一)

申请证书:

[root@hdss7-200 certs]# cfssl gencert -initca ca-csr.json | cfssl-json -bare ca

微服务之——Kubernetes 集群搭建(一)
微服务之——Kubernetes 集群搭建(一)

我们后面的所有证书,都是基于这套ca证书签发的。

三、部署docker 环境

分别部署在下面3台主机上:

HDSS7-200.host.com(10.4.7.200)

HDSS7-21.host.com(10.4.7.21)

HDSS7-22.host.com(10.4.7.22)

[root@hdss7-200 certs]# curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun

编辑docker配置文件:

[root@hdss7-200 certs]# mkdir /etc/docker

[root@hdss7-200 certs]# mkdir /data/docker

[root@hdss7-200 certs]# vim /etc/docker/daemon.json

{

“graph”: “/data/docker”,

“storage-driver”: “overlay2”,

“insecure-registries”: [“registry.access.redhat.com”,”quay.io”,”harbor.fxkj.com”],

“registry-mirrors”: [“https://q2gr04ke.mirror.aliyuncs.com”],

“bip”: “172.7.200.1/24”, #HDSS7-21.host.com 的docker 桥IP为172.7.21.1/24 ; HDSS7-22.host.com 的docker 桥IP为172.7.22.1/24,这样做是为了方便后面K8S快速定位pod在哪台机器上

“exec-opts”: [“native.cgroupdriver=systemd”],

“live-restore”: true

}

启动docker并添加开机启动:

[root@hdss7-200 certs]#systemctl start docker

[root@hdss7-200 certs]#systemctl enable docker

好了,本节内容就先说这些,下期我们来说 harbor 镜像仓库的部署

 

微服务之——Harbor企业级docker仓库搭建

 

本文版权归 飞翔沫沫情 作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接 如有问题, 可发送邮件咨询,转贴请注明出处:https://www.fxkjnj.com/433/

发表评论

登录后才能评论