Kubernetes 是一个开源的, 用于管理云平台中多个主机上的容器化的应用, Kubernetes 的目标是让部署容器化的应用简单并且高效, Kubernetes 提供了应用部署, 规划, 更新, 维护的一种机制.
Kubernetes 一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让 apache 一直运行, 用户不需要关心怎么去做, Kubernetes 会自动去监控, 然后去重启, 新建, 总之, 让 apache 一直提供服务), 管理员可以加载一个微型服务, 让规划器来找到合适的位置, 同时, Kubernetes 也系统提升工具以及人性化方面, 让用户能够方便的部署自己的应用.
Kubernetes 集群包含有节点代理 kubelet 和 Master 组件(APIs, scheduler, etc), 一切都基于分布式的存储系统. 下面这张图是 Kubernetes 的架构图.
Kubernetes 主要由以下几个核心组件组成:
etcd 保存了整个集群的状态;
apiserver 提供了资源操作的唯一入口, 并提供认证, 授权, 访问控制, API 注册和发现等机制;
controller manager 负责维护集群的状态, 比如故障检测, 自动扩展, 滚动更新等;
scheduler 负责资源的调度, 按照预定的调度策略将 Pod 调度到相应的机器上;
kubelet 负责维护容器的生命周期, 同时也负责 Volume(CVI)和网络 (CNI) 的管理;
Container runtime 负责镜像管理以及 Pod 和容器的真正运行(CRI);
kube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡.
基本环境
操作系统: redhat7.2
Docker:1.12.6
网络规划工具, 统一分配集群 Docker 容器的虚拟 IP, 并实现服务之间通信: Flannel 0.7.0
需要关闭防火墙, 并连接网络.
master:172.25.21.11 服务: apiserver, controller-manager, scheduler,etcd
node:172.25.21.12 服务: flannel, docker, kubelet, kube-proxy
master 端安装和配置 etcd
配置本地解析
- VIM /etc/hosts
- 172.25.21.11 server11 master
- 172.25.21.12 node1
安装 etcd
yum install -y etcd
配置 etcd
- VIM /etc/etcd/etcd.conf #修改部分内容如下
- ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
- ETCD_ADVERTISE_CLIENT_URLS="http://server11:2379"
其中 server11 表示 etcd 服务器主机名
运行 etcd
- systemctl start etcd #启动 etcd
- systemctl enable etcd #开机自启 etcd
配置 etcd 的 flannel 信息
etcdctl -C 172.25.21.11:2379 set /atomic.io/network/config '{"Network":"172.17.0.1/16"}'
master 端安装 kubernetes-master
安装
yum install kubernetes-master
修改配置文件
- VIM /etc/kubernetes/apiserver
- KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
- KUBE_ETCD_SERVERS="--etcd-servers=http://server11:2379"
- KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,
其中 KUBE_ADMISSION_CONTROL 的原有的 SecurityContextDeny 和 ServiceAccount 是权限相关的配置需要去掉.
配置全局配置文件
- VIM /etc/kubernetes/config
- KUBE_MASTER="--master=http://master:8080"
启动 master 服务
systemctl start kube-apiserver kube-scheduler kube-controller-manager
测试 master 服务
配置 node1 节点
配置本地解析
- VIM /etc/hosts
- 172.25.21.11 server11 master
- 172.25.21.12 node1
安装服务
yum install -y docker flannel kubernetes-node
配置 flannel
- VIM /etc/sysconfig/flanneld
- FLANNEL_ETCD_ENDPOINTS="http://server11:2379"
- FLANNEL_ETCD_PREFIX="/atomic.io/network"
配置全局配置文件
- VIM /etc/kubernetes/config
- KUBE_MASTER="--master=http://master:8080"
配置 kubelet 组件
- VIM /etc/kubernetes/kubelet
- KUBELET_HOSTNAME="--hostname-override=node1"
- KUBELET_API_SERVER="--api-servers=http://master:8080"
启动服务
systemctl start kubelet kube-proxy
测试集群
在 master 节点运行
kubectl get nodes
本文转自 CSDN-kubernetes(k8s)安装部署
来源: https://yq.aliyun.com/articles/679679