k8s集群组成
k8s部署环境
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#prerequisites
01 安装方式
关于安装方式,目前除去云服务商本身提供的K8S集群服务, 本地集群安装方式主要有3种:
- 基于二进制的安装方式
- 基于官方工具kubeadm的安装方式
- 基于第三方工具的安装
1、基于yum直接将相关组件部署为系统级守护进程,缺点:controller-manager故障,需要手动重启;
节点网络:192.168.0.0/16
Pod网络地址:10.244.0.0/16
Service网络地址:10.96.0.0/12 //掩码是12位的
etcd部署在master节点上,不独立;
2、使用kubeadm进行部署,将k8s的核心组件部署为pod,但需要在master和node上手动部署kubelet和docker(docker是运行容器的引擎,kubelet是运行pod化的容器的核心组件);
使用kubeadm进行部署,每一个节点都需要作为k8s底层的docker运行的节点,即包括master都需要安装docker,同时每一个节点都需要安装、运行kubelet、docker,并且确保这两者启动并运行。把第一个节点初始化为master,把其他节点初始化为node。将master上的组件API Server、etcd、controller-manager、scheduler都运行为pod(都是静态pod,不受k8s管理,只是运行为pod的形式),即都跑在kubelet之上,以容器化的形式运行(k8s自己的组件都运行为pod)。node上将kube-proxy运行为Pod。每一个节点包括master都需要以pod运行flannel(动态pod,由k8s自身管理),
k8s在github上的地址:https://github.com/kubernetes
kubeadm初始化并安装、生成k8s集群的过程
https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.10.md
kubeadm初始化、安装集群的步骤:
1、master、nodes:安装kubelet、kubeadm、docker
2、master:kubeadm init //在master运行kubeadm init,初始化集群
3、nodes:kubeadm join //在各nodes节点执行kubeadm join,将节点加入到集群中去
安装实践
master:IP:192.168.184.141 主机名:node1
node1:IP:192.168.184.142 主机名:node2
node2:IP:192.168.184.142 主机名:node3