其他分享
首页 > 其他分享> > kubernete

kubernete

作者:互联网

 

一、安装前主题环境准备

1.1、docker安装

1.2、关闭所有节点的selinux

1.3、关闭防火墙

1.4、时间同步

1.5、安装私有仓库环境Harbor

1.6、软件规划

软件

版本

操作系统

redhat 7.5

kubernetes

1.12

Docker

18.06

Etcd

3.x

Flannel

0.10

 

1.7、主机规划

角色

IP

组件

推荐配置

iim-master

192.168.3.21

kube-aipserver

kube-controller-manager

kube-scheduler

CPU:x2

内存:4G+

zx-registry

192.168.3.22

Harbor

docker

etcd01

iim-node1

192.168.3.23

kubelet

kube-proxy

docker

flannel

etcd01

iim-node2

192.168.3.24

kubelet

kube-proxy

docker

flannel

etcd01

 

1.8、拓扑图

 

 

 

 

 

二、文件列表

 

序号

文件名

用途

 

1

certificate.sh

证书生成脚本

cer

2

etcd.sh

etcd安装脚本

etcd

3

etcd-v3.2.12-linux-amd64.tar.gz

etcd安装包

4

cfssl

 

 

5

cfssl-certinfo

 

 

6

cfssljson

 

 

7

flanneld.sh

flannel安装脚本

flannel

8

flannel-v0.9.1-linux-amd64.tar.gz

flannel安装包

9

kubeconfig.sh

node证书请求文件生成脚本

master

10

apiserver.sh

apiserver安装脚本

11

controller-manager.sh

controller-manager安装脚本

12

kube-apiserver

kube-apiserver二进制文件

13

kube-controller-manager

kube-controller-manager二进制文件

14

kubectl

kubectl二进制文件

15

kube-scheduler

kube-scheduler二进制文件

16

scheduler.sh

scheduler安装脚本

17

kubelet

kubelet二进制文件

node

18

kubelet.sh

kubelet安装脚本

19

kube-proxy

kube-proxy二进制文件

20

proxy.sh

kube-proxy安装脚本

 

三、安装步骤预览

1、创建 TLS 证书和秘钥

2、创建kubeconfig 文件

3、创建高可用etcd集群

4、部署master节点

5、安装flannel网络插件

6、部署node节点

7、安装kubedns插件

8、安装dashboard(后面教程已经更换为coredns)插件

9、安装heapster插件

10、安装EFK插件

 

 

 

 

 

四、创建TLS证书和秘钥

组件

使用的证书

etcd

ca.pem,server.pem,server-key.pem

flannel

ca.pem,server.pem,server-key.pem

kube-apiserver

ca.pem,server.pem,server-key.pem

kubelet

ca.pem,ca-key.pem

kube-proxy

ca.pem,kube-proxy.pem,kube-proxy-key.pem

kubectl

ca.pem,admin.pem,admin-key.pem

 

 

4.1 安装cfssl工具

在192.168.1.22上执行

把cfssl,cfssljson,cfssl-certifo文件上传至 /usr/local/bin下

 

 

 

并赋予执行权限

[root@zx-registry ssl]# chmod +x /usr/local/bin/*

 

 

4.2 上传证书生成脚本到 /tools/ssl 下

 

 

4.3 执行生成证书脚本

[root@zx-registry ssl]# sh certificate.sh

 

 

4.4 查看证书生成文件以及生成的证书

 

 

 

 

 

 

 

五、安装Etcd集群

在192.168.1.22上执行

5.1 创建目录

[root@zx-registry ssl]# mkdir -p /opt/etcd/{bin,cfg,ssl}

 

 

5.2 上传所需文件至 /opt/etcd

 

 

5.3 复制etcd所需证书文件到 /opt/etcd/ssl 下

[root@zx-registry etcd]# cp /tools/ssl/{ca,server,server-key}.pem /opt/etcd/ssl/

 

 

5.4 复制二进制文件到 /opt/etcd/bin 下

[root@zx-registry etcd]# tar xf etcd-v3.2.12-linux-amd64.tar.gz

[root@zx-registry etcd]# mv etcd-v3.2.12-linux-amd64/{etcd,etcdctl} /opt/etcd/bin/

 

 

 

5.4 安装etcd 节点1

[root@zx-registry etcd]# sh etcd.sh etcd01 192.168.3.22 etcd02=https://192.168.3.23:2380,etcd03=https://192.168.3.24:2380

 

5.5 复制 /opt/etcd 和 etcd.service 到其他 两个节点

[root@zx-registry opt]# scp -r etcd/ iim-node1:/opt/

[root@zx-registry opt]# scp -r etcd/ iim-node2:/opt/

[root@zx-registry opt]# scp /usr/lib/systemd/system/etcd.service iim-node1:/usr/lib/systemd/system/etcd.service

[root@zx-registry opt]# scp /usr/lib/systemd/system/etcd.service iim-node2:/usr/lib/systemd/system/etcd.service

 

 

5.6 修改节点IP 

 

192.168.3.23 如下

 

修改完成后启动服务、检查服务

[root@iim-node1 ~]# systemctl start etcd

[root@iim-node2 ~]# ps -ef |grep etcd

 

 

192.168.3.24 如下

 

修改完成后启动服务、检查服务

[root@iim-node2 ~]# systemctl start etcd

[root@iim-node2 ~]# ps -ef |grep etcd

 

 

 

5.7 检查集群状态

192.168.3.22 上操作

[root@zx-registry etcd]# /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.3.22:2379,https://192.168.3.23:2379,https://192.168.3.24:2379" clust

er-health

 

 

 

六、证书kubeconfig文件创建

6.1 复制所有证书到

[root@zx-registry ~]# scp /tools/ssl/*.pem iim-master:/opt/kubernetes/ssl/

 

 

6.2 上传文件

 

6.3 生成配置文件

[root@zx-registry ~]# scp /tools/ssl/*.pem iim-master:/opt/kubernetes/ssl/

[root@iim-master cfg]# ll

 

 

 

 

七、安装flannel网络插件

 

7.1 写入分配的子网段到 etcd ,供 flanneld 使用

[root@zx-registry ~]# /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem --

endpoints="https://192.168.3.22:2379,https://192.168.3.23:2379,https://192.168.3.24:2379" set /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'

 

 

 

7.1 准备相关目录

[root@iim-master ~]# mkdir -p /opt/kubernetes/{bin,cfg,ssl}

 

 

7.2 准备所需文件

[root@iim-node1 kubernetes]# cd /opt/kubernetes/

[root@iim-node1 kubernetes]# tar xf flannel-v0.9.1-linux-amd64.tar.gz

[root@iim-node1 kubernetes]# mv flanneld mk-docker-opts.sh /opt/kubernetes/bin/

 

 

7.3 安装

[root@iim-node1 kubernetes]# cd /opt/kubernetes/

[root@iim-node1 kubernetes]# tar xf flannel-v0.9.1-linux-amd64.tar.gz

[root@iim-node1 kubernetes]# mv flanneld mk-docker-opts.sh /opt/kubernetes/bin/

[root@iim-node1 kubernetes]# sh flanneld.sh https://192.168.3.22:2379,https://192.168.3.23:2379,https://192.168.3.24:2379

 

 

 

 

 

 

八、Master节点安装

作为k8s的核心,master节点主要包含三个组件,分别是:

kube-apiserver

kube-scheduler

kube-controller-manager

这个三个组件密切联系,再次提醒关闭selinux,关闭防火墙,最好禁用掉。

首先安装kube-apiserver

 

安装思路:

准备二进制文件--->准备证书文件--->配置文件--->system管理组件--->启动

(其中后三步利用脚本自动完成)

 

8.1 上传所需文件

创建目录

[root@iim-master ~]# mkdir -p /opt/kubernetes/{bin,cfg,ssl}

 

上传文件

 

 

准备二进制可执行文件

[root@iim-master master]# cp /opt/kubernetes/master/{kube-apiserver,kube-controller-manager,kube-scheduler} /opt/kubernetes/bin/

[root@iim-master master]# chmod +x /opt/kubernetes/bin/*

[root@iim-master master]# cp /opt/kubernetes/master/kubectl /usr/local/bin/

[root@iim-master master]# chmod +x /usr/local/bin/kubectl

 

 

 

 

 

 

8.2 准备TLS证书

这些证书我们在第四章节中已经创建,共8个(.pem后缀文件),这里master需要5个证书

ca.pem

ca-key.pem

admin.pem

admin-key.pem

server.pem

server-key.pem

 

复制所需证书到master节点上

在192.168.1.22上执行

[root@zx-registry ~]# scp /tools/ssl/{ca,ca-key,admin,admin-key,server,server-key}.pem iim-master:/opt/kubernetes/ssl/

 

 

8.3 安装kube-apiserver插件

[root@iim-master master]# sh apiserver.sh 192.168.3.21 https://192.168.3.24:2379,https://192.168.3.23:2379,https://192.168.3.22:2379

 

 

8.4 检查启动状态

[root@iim-master master]# ps -ef |grep kube-apiserver

[root@iim-master master]# ss -tln

 

 

8.5 安装kube-controller-manager 插件

[root@iim-master master]# sh controller-manager.sh 127.0.0.1

[root@iim-master master]# ps -ef |grep kube-controller-manager

 

 

 

8.6 安装kube-scheduler 插件

[root@iim-master master]# sh scheduler.sh 127.0.0.1

[root@iim-master master]# ps -ef |grep kube-scheduler

 

 

九、Node节点安装

9.1 准备所需文件

192.168.3.23 上操作

 

 

9.2 准备二进制执行文件

[root@iim-node1 node]# cd /opt/kubernetes/node/

[root@iim-node1 node]# mv kubelet kube-proxy /opt/kubernetes/bin/

[root@iim-node1 node]# chmod +x /opt/kubernetes/bin/*

 

9.3 安装kubelet

[root@iim-node1 node]# sh kubelet.sh 192.168.3.23

 

 

9.4 通过认证

在 192.168.3.21 上操作

[root@iim-master cfg]# kubectl certificate approve node-csr-IEMIV1eQG1k8igRu5aOShfhljYlkkQuv82_0680QrDc

[root@iim-master cfg]# kubectl get node

 

 

9.5 安装kube-proxy

[root@iim-node1 node]# sh proxy.sh 192.168.3.23

[root@iim-node1 node]# ps -ef |grep proxy

 

 

 

9.6 node2 安装

与node1安装方式一样(不再重复)

 

 

 

十、检查集群状态

在192.168.3.21 上操作

 

[root@iim-master cfg]# kubectl get nodes

标签:opt,kubernete,pem,master,etcd,iim,root
来源: https://www.cnblogs.com/setchio/p/11394855.html