Day72
Kubernetes master概述
kubernetes概述
kubebnets介绍
kubectl是谷歌研发的大规模容器管理技术Borg的开源管理Borg的开源版本。可以简写为k8s.
K8S的用途
k8s是一套能够对容器进行更高级更灵活的编排管理和调度等操作的系统。
K8s是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动化扩容缩容、维护等功能。
Kubernetes适用场景
有大量跨主机的容器需要管理
快速部署应用、
快速扩展应用
无缝对接新应用的功能
节省资源,优化硬件资源的使用
Kubernetes架构
核心角色
master(管理节点)
node(计算节点)
image(镜像仓库)
master架构解析
naster是做什么的
Master提供集群的控制,对集群进行全局决策,检测和响应集群事件,Master主要有apiserver,kuberproxy,scheduler,contorllermanager和etcd服务组成
master节点服务
API Server
是整个系统对外的接口,供客户端和其他组件调用,后端元数据存储在etcd中(键值数据库)
Scheduler
负责对集群内部资源进行调度,相当于调度室
Controller manager
负责管理控制器,相当于大总管
etcd
etcd的定义:
etcd是CoreOS发起的开源项目,它的目标是构建一个高可用的分布式键值数据库,基于Go语言实现,在分布式系统中,各种服务的配置信息的管理分享,服务发现是一个很基本同时也很重要的问题。
kubernetes在运行过程中产生的元数据全部存储在etcd中
etcd键值管理
在键的组织上etcd采用了层次化的空间结构(类似于文件系统中,目录的概念),用户指定的键可以为单独的名字,也可以指定目录结构
etcd有kubernetes集群自动管理,无需用户手动干预
etcdctl是etcd的客户端管理程序
Kubernetes master
准备工作
基础知识
官网:https://kubernetes.io/
源码&二进制
下载源码或编译好的二进制,手工添加参数启动服务
kubernetes采用证书认证的方式,需要创建大量证书
容器
官方把服务做成镜像,下载镜像、启动镜像即可
官方工具kuberadm采用的方式
部署环境要求
内核版本>=3.10
最低配置2cpu,2G内存
节点之间不可以有重复的主机名、MAC地址或者product_uuid
卸载防火墙,禁用swap 禁用selinux
服务端口
协议 | 端口范围 | 软件 | 用途 |
---|---|---|---|
TCP | 6443 | kube-apiserver | 所有组件接口服务 |
TCP | 2379-2380 | ectd | kuber-api,etcd服务 |
TCP | 10250 | kubelet | kubelet服务 |
TCP | 10251 | kube-scheduler | kube-scheduler服务 |
TCP | 10252 | kube-controller-manager | kube-controller-mamnger服务 |
机器列表
kubeadm的YUM仓库
官网下载地址:https://packages.cloud.google.com/
kube-master安装
1、防火墙相关配置
参考前面知识点完成禁用 selinux,禁用 swap,卸载 firewalld-*
2、配置yum仓库
[root@ecs-proxy ~]# cp -a v1.17.6/k8s-install /var/ftp/localrepo/
[root@ecs-proxy ~]# cd /var/ftp/localrepo/
[root@ecs-proxy localrepo]