(2)二进制文件方式部署Kubernetes高可用集群----------部署环境准备

目录

1 环境准备

1.1集群节点说明

1.2 主机关联设置

1.3网络环境设置

1.4集群详情

1.5 部署步骤

1.6 注意事项


1 环境准备

1.1集群节点规划

K8S对底层机器只有三点要求:

一是正确的操作系统,Ubuntu 16.04 / Debian9/CentOS 7/RHEL7/Fedora 25 / HypriotOS v1.0.1 其中一个都可以。比较常见的是Ubuntu或者CentOs。

二是硬件配置要求你至少有1GB的内存。

三是网络上要求集群里的节点之间网络互通。

只要满足这三个要求,无论是虚拟机、物理机还是云主机都是可以的。

对于集群节点规划,因为前期规划失误,导致后期各种返工,比较耗时。这是一个教训,我们再搭建集群之前一定要提交做好集群节点规划工作。

本文中的 etcd 集群、master 节点、node节点均使用下面这三台机器。

hostname IP地址 节点说明 虚拟机 组件配置
master01 192.168.72.143 主节点(复用节点) CentOS 7.2\CPU:2G\内存:2G\硬盘:20G etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy、docker
master02 192.168.72.144 主节点 CentOS 7.2\CPU:2G\内存:2G\硬盘:20G etcd、kube-apiserver、kube-controller-manager、kube-scheduler、docker
master03 192.168.72.145 主节点 CentOS 7.2\CPU:2G\内存:2G\硬盘:20G etcd、kube-apiserver、kube-controller-manager、kube-scheduler、docker

因为误删除操作,上面三台机器环境后来经过重新搭建,IP地址已发生变化,依次变更为:

192.168.0.143 master01

192.168.0.144 master02

192.168.0.145 master03

                                                                                   集群虚IP
VIP                                                           192.168.0.140

1.2 主机关联设置

【1】分别设置三台机器的永久主机名称,然后重新登录

# sudo hostnamectl set-hostname master01

# sudo hostnamectl set-hostname master02

# sudo hostnamectl set-hostname master03

【2】修改 /etc/hostname 文件,添加主机名和 IP 的对应关系

# vim /etc/hosts

192.168.72.143 master01

192.168.72.144 master02

192.168.72.145 master03

1.3网络环境设置

关闭网络管理服务

#systemctl stop NetworkManager.service

#systemctl disable NetworkManager.service

关闭防火墙

#systemctl disable firewalld

#systemctl stop firewalld

关闭SELinux

#vi etc/selinux/config

SELINUX=disabled

 

iptables策略配置

安装iptables.service

#yum install -y iptables-services

添加策略:

#vi /etc/sysconfig/iptables

新增以下端口:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2379 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 2380 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 10250 -j ACCEPT

注释掉这俩行:

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

新增这两行:

-A INPUT -j ACCEPT

-A FORWARD -j REJECT

重启防火墙配置生效

systemctl restart iptables.service

设置防火墙开机启动

systemctl enable iptables.service

1.4集群详情

Kubernetes 1.14.0

Docker 3.18.09(yum安装)

Etcd 3.3.12

Flanneld 0.7 vxlan网络

TLS认证通信(所有组件,如etcd、kubernetes master和node)

RBAC授权

kublet TSL BoostStrapping

kubedns、dashboard、heapster\EFK集群插件

私有docker镜像仓库harbor

1.5 部署步骤

由于启用了TLS双向认证、RBAC授权等严格的安全机制,建议从头开始部署,而不要从中间开始,否则可能会认证、授权等失败!部署过程中需要有很多证书的操作,一定耐心操作。

※【1】创建TLS证书和密钥

※【2】创建kubeconfig文件

※【3】创建高可用etcd集群

※【4】安装kubectl命令行工具

※【5】部署master节点

※【6】部署node节点

※【7】安装kubedns插件

※【8】安装dashboadr插件

※【9】安装healster插件

※【10】安装EFK插件

1.6 注意事项

【1】由于启用了 TLS 双向认证、RBAC 授权等严格的安全机制,建议从头开始部署,而不要从中间开始,否则可能会认证、授权等失败!

【2】部署过程中需要有很多证书的操作,请大家耐心操作

【3】该部署操作仅是搭建成了一个可用 kubernetes 集群,而很多地方还需要进行优化,heapster 插件、EFK 插件不一定会用于真实的生产环境中,但是通过部署这些插件,可以让大家了解到如何部署应用到集群上。

【4】自定义部署kubernetes时,如果想直接使用可执行程序命令,则需要配置环境变量:

export PATH=/opt/kubernetes/bin:$PATH

【5】所有组件均需要以下4个步骤:

(1)将kubernetes的二进制可执行文件复制到/opt/kubernetes/bin路径目录下

(2)创建systemd service启动服务文件,存放到/usr/lib/systemd/system路径目录下

(3)创建service中对应的配置参数文件,存放到/opt/kubernetes/config路径目录下

(4)生成的证书和秘钥,存放到/opt/kubernetes/ssl路径目录下

(5)将应用加入到开机启动项,并依次启动

systemctl daemon-reload

systemctl enable etcd

systemctl start etcd

systemctl enable kube-apiserver.service

systemctl start kube-apiserver.service

systemctl enable kube-controller-manager.service

systemctl start kube-controller-manager.service

systemctl enable kube-scheduler.service

systemctl start kube-scheduler.service

下载:wget https://github.com/kubernetes/kubernetes/releases/download/v1.14.3/kubernetes.tar.gz

从下面的地址下载kubernetes-server-linux-amd64.tar.gz

https://storage.googleapis.com/kubernetes-release/release/v1.14.3

 

你可能感兴趣的:((2)二进制文件方式部署Kubernetes高可用集群----------部署环境准备)