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