您的位置:首页 > 运维架构 > Docker

(三)搭建容器云管理平台笔记—安装前准备工作

2018-03-16 15:04 603 查看

一、参考文档

1. 官网:https://kubernetes.io/
2. 官网文档: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ https://www.kubernetes.org.cn/
3. 源码库:https://github.com/kubernetes/kubernetes/releases
4. K8S的网络配置:
Docker自带、Calico还是Flannel? http://blog.csdn.net/ganpuzhong42/article/details/77853131 结论:使用Calico, 安装参考:http://blog.csdn.net/shenshouer/article/details/50624341
5. 安装参考:
从零开始搭建基于calico的kubenetes http://blog.csdn.net/shenshouer/article/details/52943493

二、规划与认识

1. 安装组件构成

(1)主控Master主机部署组件:
etcd (容器化,如果需要高可用,可部署奇数节点)
kube-apiserver (容器化、包含watch功能)(api:http://192.168.15.151:8080/)
kube-controller-manager(容器化)
cloud-controller-manager (是否必选)
kube-schedule(容器化)
kube-ctl (客户端命令工具,可选)
如果需要高可用,可布置奇数节点进行负载,用keeplive组件来保证可用

(2)节点Node部署组件:
kubelet
kube-proxy(容器化)

(3)扩展组件:
Flannel 默认网络配置功能(容器化)
calico 可选择网络配置功能(容器化)
kube-dns(容器化)
dashboard(容器化)
heapster + grafana + influxdb 监控组件(容器化)
反向代理均衡器:nginx

总结:Master 是 Kubernetes 的大总管,主要创建apiserver、Controller manager与Scheduler来组件管理所有 Node。
本步骤将下载 Kubernetes 并安装至 master1上,然后产生相关 TLS Cert 与 CA 密钥,提供给集群组件认证使用。tls是用于保证 组件和etcd通讯之间的消息安全加密,etcd集群需要使用到它,单etcd节点可以不用,etcd也可以不用tls的,使用http协议,tls是使用https协议的。

2. 安装办法

(1) 全命令执行
yum install kubernetes

(2)手动进行二进制组件安装
不过一些特殊环境,还有个人在学习的时候,考虑自己下载二进制组件安装,这样可以更全面的了解一下K8S。
Docker v1.13.1
Etcd v3.2.10 https://github.com/coreos/etcd/releases Calico v2.6.2 https://github.com/projectcalico/calico/releases Kubernetes v1.8.6 https://github.com/kubernetes/kubernetes/releases


三、前置工作

1. 内部网络最好的关闭防火墙,以确保网络通信畅通
systemctl disable firewalld
systemctl stop firewalld
(主机互信必备)

2. 关闭内存交互 swap,确保内存计算精确
执行命令:swapoff -a
再把vi /etc/fstab文件,把带有swap的行删了或者屏蔽,没有就无视

3. linux的辅助工具,建议安装
yum install -y ebtables socat
ebtables 参考:http://blog.csdn.net/u013485792/article/details/76522551
socat 参考:http://blog.csdn.net/koozxcv/article/details/50520057

4. 关闭安全策略
关闭SElinux
#vi /etc/selinux/config
编辑,令SELINUX=disabled。保存退出。
立即生效。
(主机互信必备)

5. Master和Nodes直接的通信访问,应该解决互信问题,即应该增加认证文件,这在安装组件的时候就必须预先考虑到。
证书生成:rbac证书 或者 rsa证书 (rsa证书属于自签发的ssl证书,rbac证书是基于角色签发的证书,k8s默认使用这个)
参考:Kubernetes 1.6新特性学习:RBAC授权 http://blog.csdn.net/shenshouer/article/details/71172701
6.RSA主机互信配置说明
参考:http://blog.csdn.net/lanmodadi/article/details/37910575
(1)检查是否生成过密钥
# ls -al ~/.ssh
当前用户为root,等同于 # ls -al /root/.ssh
目录结构如下:
-rw-------. 1 root root 1679 Dec 2 00:09 id_rsa
-rw-r--r--. 1 root root 408 Dec 2 00:09 id_rsa.pub
-rw-r--r--. 1 root root 396 Dec 1 23:20 known_hosts
-rw-r--r--. 1 root root 0 Dec 1 23:20 .known_hosts.lock
查看公钥:
# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCSqeQ85+W57iyqjjukC69AQsoket2MYM3HdiUT3cV2VL2FLoWyHf97OL513JwimP2dvrTs70U3cypgE0L6gceyTp1BsbfTYSExuUpMYv9LXT8Gk+kVjcqwZBqqxPnlWZRLyvU9oHnowzpNucnfOY4JMGTsYMLWZ40psOOWmCzZzSNpheerdNOMKJ2WMJQDUCuBKdLy7Tgpaj3BQEqMrdiOaiIbvbzkj/O67L1gCMUuw+fLjrGg3x4F9FuVsW6pXefyq97P3MJLMIGc0+o76gIhHkFsdNtGYUJ1oqVyXwuo0vB//2+F7sG+Ge3WG7KFed9B0AuGPKvf1L7uCm/FXOot root@localhost.localdomain

(2)如果未生成
# ssh-keygen -t rsa -C "robinliao@example.com"
一路回车即可

(3)将用ssh-copy-id 把公钥复制到远程主机上
这个命令相当于把产生的id_rsa.pub文件内容追加到机器B的 ~/.ssh/authorized_keys文件中
# cd /root/.ssh
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.80.131
检测是否成功
#ssh root@192.168.80.131
如果不需要输入密码,则表示成功
这个时候当前机器192.168.80.130访问192.168.80.131免密,到目前为止,单方面免密
到131进行相同的操作,则实现互信免密。

7.RABC主机互信配置说

暂略,后面补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Kubernetes Docker