千家信息网

Kubernetes——docker集群管理(理论+mini

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Kubernetes的概述Kubernetes是一个开源的Docker容器编排系统,Kubernetes简称K8S。调度计算集群的节点,动态管理上面的作业通过使用[labels]和[pods]的概念,
千家信息网最后更新 2026年11月01日Kubernetes——docker集群管理(理论+mini

Kubernetes的概述

Kubernetes是一个开源的Docker容器编排系统,Kubernetes简称K8S。调度计算集群的节点,动态管理上面的作业通过使用[labels]和[pods]的概念,将应用按逻辑单元进行分组K8S用于容器应用程序的部署,扩展和管理K8S提供了容器编排,资源调度,弹性伸缩,部署管理,服务发现等一系列功能Kubernetes目标是让部署容器化应运简单高效官方网站:http://www.kubernetes.io

Kubernetes的特性

自我修复:
在节点故障时重新启动失败的容器,替换和重新部署,保证预测的副本数量;杀死健康检查失败的容器,并且在未准备好之前不会处理客户端请求,确保线上服务不中断。
弹性伸缩:
使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用程序实例,保证应用业务高峰并发时的高可用性;业务低峰时回收资源,以最小成本运行服务
自动部署和回滚:
K8S采用滚动更新应用,一次更新一个Pod,而不是同时删除所有Pod,如果更新过程中出现问题,将回滚更改,确保升级不受影响业务
服务发现和负载均衡:
K8S为多个容器提供一个统一的访问入口(内部IP地址和UI个DNS地址),并且负载均衡关联的所有容器,使得用户无需考虑容器IP问题
机密和配置管理:
管理机密数据和应用程序配置。而不需要把敏感数据暴露在镜像里,提高敏感数据安全性。并且可以将一些常用的配置存储在K8S中,方便应用程序使用
存储编排:
挂载外部存储系统,无论是来自本地存储,公有云(如AWS),还是网络存储(NFS、GlusterFS)都作为集群资源的一部分使用,极大提高存储使用灵活性
批处理:
提供一次性任务,定时任务;满足批量数据处理和分析的场景。

Kubernetes集群的架构与组件


master组件

kube-apiserver:
Kubernetes API,集群的统一入口,各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。
kube-controller-manager:
处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的
kube-scheduler:
根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上
etcd:
分布式键值存储系统,用于保存集群状态数据,比如Pod、Server等对象信息。

node组件

kubelet:
kubelet是MAster在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器,Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet将Pod转换成一组容器。
kube-proxy:
在Noed节点上实现Pod网络代理,维护网络规划和四层复=负载均衡工作
docker或rocket:
容器引擎,运行容器

Kubernetes核心概念

Pod:
最小部署单元
一组容器的集合
一个Pod中的容器共享网络命名空间
Pod是短暂的
Controllers:
ReplicaSet:确保 预期的Pod副本数量
Deployment :无状态应用部署
StatefulSet: 有状态应用部署
DaemonSet :确保所有Node运行同一个Pod
Job:一次性任务
Cronjob: 定时任务
更高级层次对象,部署和管理Pod
Service:
防止Pod失联
定义一组Pod的访问策略
Label: 标签,附加到某个资源上,用于关联对象。查询和筛选
Namespaces: 命名空间, 将对象逻辑上隔离
Annotations: 注释

flannel容器集群网络部署


minikube

minikube是一个工具,可以在本地快速运行一个单点的kubernetes,仅用于尝试k8s或日常开发的用户使用

实验环境

master 192.168.13.131  安装etcd kubernetes flannelnode    192.168.13.132  安装flannel kubernetes

1,在master上配置etcd

[root@promote ~]# yum install etcd kubernetes flannel -y   ##安装组件[root@promote ~]# vim /etc/etcd/etcd.conf  ##配置etcd配置文件    3 ETCD_DATA_DIR="/var/lib/etcd/default.etcd"  ##数据目录    6 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"  ##监听任意网络和端口    9 ETCD_NAME="default"  ##默认名称 21 ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"  ##群集访问地址段落

2,在master上配置apiserver

 [root@promote ~]# vim /etc/kubernetes/apiserver ##配置apiserver配置文件     8 KUBE_API_ADDRESS="--address=0.0.0.0"  ##修改api地址 11 KUBE_API_PORT="--port=8080"  ##api监听端口号 14 KUBELET_PORT="--kubelet-port=10250"  ##kubelet端口号 17 KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"   ##etcd服务地址 20 KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" ##服务地址池 23 KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExis    ts,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" ##控制器模式 26 KUBE_API_ARGS=""  ##api参数

3,在master上配置flannel网络

    [root@promote ~]# vim /etc/sysconfig/flanneld    FLANNEL_ETCD_ENDPOINTS="http://192.168.13.131:2379"   ##修改etcd地址为本机的地址    FLANNEL_ETCD_PREFIX="/atomic.io/network"  ##网络指定文件

4,在master上启动所有服务

[root@promote ~]# for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES; systemctl enable $SERVICES ; systemctl status $SERVICES; done##启动 etcd kube-apiserver kube-controller-manager kube-scheduler四个服务,设置开机自启并查看状态

5,在master上设置etcd网络

[root@promote ~]# etcdctl -C //192.168.13.131:2379 set /atomic.io/network/config '{"Network":"10.1.0.0/16"}'[root@promote ~]# systemctl stop firewalld.service   ##关闭防火墙[root@promote ~]# setenforce 0

6,在node服务器配置kubernetes配置文件

[root@promote ~]# yum install flannel kubernetes -y[root@promote ~]# vim /etc/kubernetes/config 13 KUBE_LOGTOSTDERR="--logtostderr=true"  ##错误日志 16 KUBE_LOG_LEVEL="--v=0"  ##级别 19 KUBE_ALLOW_PRIV="--allow-privileged=false"  ##权限 22 KUBE_MASTER="--master=http://192.168.13.131:8080"   ##指定master地址 23 KUBE_ETCD_SERVERS="--etcd_server=http://192.168.13.131:2379"  ##指定etcd地址

7,在node配置kubelet配置文件

[root@promote ~]# vim /etc/kubernetes/kubeletKUBELET_ADDRESS="--address=0.0.0.0"  ##所有地址KUBELET_PORT="--port=10250"   ##端口号KUBELET_HOSTNAME="--hostname-override=192.168.13.132"  ##本地主机地址KUBELET_API_SERVER="--api-servers=http://192.168.13.131:8080"  ##apiserver地址KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"##pod容器KUBELET_ARGS=""  ##参数

8,在node配置flannel网络配置文件

[root@promote ~]# vim /etc/sysconfig/flanneld FLANNEL_ETCD_ENDPOINTS="http://192.168.13.131:2379"  ##指定etcd服务地址

9,在node开启所有服务

[root@promote ~]# systemctl stop firewalld.service   ##关闭防火墙[root@promote ~]# setenforce 0[root@promote ~]# for SERVICES in flanneld kube-proxy kubelet docker; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done##开启flanneld kube-proxy kubelet docker服务

10,在master服务器上查看node节点

[root@promote ~]# kubectl get nodesNAME             STATUS    AGE192.168.13.132   Ready     1m

谢谢阅读!

容器 配置 地址 服务 网络 节点 应用 管理 存储 集群 数据 文件 资源 任务 对象 状态 组件 运行 应用程序 程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 广州紫鲸互联网科技有限公司 科技互联网龙头 美国互联网科技巨头监管 朗涯互联网科技 奔汉互联网科技 互联网 科技服务平台 剑昆互联网络科技有限公司临桂 智腾互联网科技有限公司 互联网科技和信息 互联网科技创新的路径 保险科技服务互联网营销体系 互联网科技圈年度人物 合肥互联网科技公司公章图片 本届互联网大会上的黑科技 世界互联网科技成果奖 玉溪新华互联网科技怎么选 青岛易易互联网科技 保山浩联互联网科技有限公司 东风日产互联网科技公司叫什么 南京欣网互联网络科技 天津市摩尔互联网科技 丰台科技园 互联网公司 太原新华互联网科技学校怎么样 互联网科技产品 中国的互联网科技企业的崛起 汽车互联网创新科技园 栖莱科技互联网股份有限公司 浙南科技城互联网大厦建设工程 广州梦谷互联网科技有限公司领导
0