给大家kubernetes核心技术详解之一

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
全局流量管理 GTM,标准版 1个月
简介: 给大家kubernetes核心技术详解之一

好长时间没写文章了,昨天刚倒霉一天,今天写篇文章安慰的自己,废话不多说直接看题。

 

kubernetes核心技术详解
1.概述
模块化,可插拔化
公有云,私有云,混合云部署
可挂载
可组合
自动恢复
自动复制
自动重启
使用
使用命令 kubectl 进行交互
kubectl  create -f    name.yaml 创建pod
kubectl   get  pods   查看创建的pods
READY是1 表明是成功的服务正常
kubectl   delete  pods  nameserver   删除创建的的pods
kubectl   get  pods     nginx -o yaml       以yaml形式查看创建的服务的pods
Pods
创建,调度以及管理的最小单元
共存的一组容器的集合
容器共享PID,网络,IPC以及UTS的命名空间
容器共享存储卷
短暂存在
Volumes
解决数据卷持久化
Pad中容器共享数据
生命周期和定义pods生命周期一样的
支持多种类型的数据卷
emptyDir 本地创建数据卷其初始是一个空文件夹可以读写
hostpatch 本机自定义数据卷,映射存储路径进行存储
gcePersistentDisk 云端
awkElasticBlockStore 云存储
nfs 网络磁盘
iscsi 网络磁盘
gluserfs 网络磁盘
secrets 用来保存一些敏感的数据,一般用来保存用户加密的密码
labels
用以标示对象(如Pod)的key/value对
组织并选择对象的子集
范例
kubectl  create -f    labels.yaml
格式  labels:
app: nginx
kubectl  get   pods   -l  app=nginx 查看对应的lables值
Replication Controllers
当某个节点出现故障,如何确保新的节点进行替补
确保在任意时刻运行指定的数据的Pod
容器重新调度
规模调整简单
在线升级
多个版本的跟踪
特别的注意️:使用新版本的RC和旧版本的RC需要至少有一处不同的labels以标记版本的Pods
范例如下
kubectl    create  -f  rc.yaml 创建一个rc
apiVersion: v1     版本是v1
kind: ReplicationController  对象是rc
metadata:
name: my-nginx  命名是 my-nginx
spec:
replicas: 2       定义任何时刻确保有2个nginx运行
template:        运行时pods的定义
metadata:
labels:
app: nginx
spec:              定义container一样
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
kubectl    get  rc 查看创建的rc
kubectl    get  pods  -l  app=nginx  查看lables的数目
Services
抽象一系列Pod并定义其访问规则
固定IP地址和DNS域名
通过环境变量和DNS发现服务
负载均衡
外部服务访问方式
ClusterIP 当前的集群内访问
NodePort 在集群内暴露某一个端口,通过集群的某一工作节点IP和端口来访问这个服务
LoadBalancer 云服务商提供外部负载均衡可以使用这种类型
范例:
kubectl    create  -f  services.yaml 创建一个service.yaml
apiVersion: v1     版本是v1
kind: Service 对象是Service 类型
metadata:
name: nginx-service  命名是 nginx-service
spec:
ports:  定义端口
- containerPort: 8000 内网
targetPort:80  映射外网端口80
Protocol:tcp
Selector:   定义选择器为那些pod提供服务
app:nginx
kubectl    get  services   查看创建的services
Names
Namespaces
Annotations
实战部署
数据持久化  volumes
保密数据管理  secrets
kubectl    create  -f  secrets.yaml 创建一个secrets.yaml
apiVersion: v1     版本是v1
kind: Secret 对象是Secret 类型
metadata:
name: mySecret 命名是 mySecret
type: Opaque—表式是随机用户数据—
date:
Password:      sdfsdfsdfsdfsddfok
Username:     sdfsdfsdfsdfsddfok
kubectl    get  secret 查看创建 my  secret
资源管理  resources
健康检测  liveness/readinessprobes
生命周期钩子函数和退出警告
组织资源配置
kubectl批量处理
有效的利用label
在线应用升级以及回退
实时更新资源
kubectl   describe   pod  查看某个节点状态
kubectl   logs   pod  《container》 查看某个节点日志状态
kubectl   exec  container  command  查看某个节点执行命令
核心模块
master上的模块
etcd模块
高可用的key/Value存储
只有apiserver有读写权限
使用etcd集群确保数据可靠性
apiserver模块
作为kubernetes的系统入口,REST 提供增,减,改,查等
认证
授权
hosts.deny
hosts.allow
访问控制
服务账号
资源限制
kube-controller-manager执行各种控制器模块
Replication Controller 确保定义的复制数量和实际运行数量的总和是一致的。
Endpoint      Controller定期关联server和pod关联信息保证server关联到pods总是最新的
Namespace    Controller 控制命名空间
Serviceaccount    Controller 控制服务账号
kube-scheduler资源调度模块
资源需求
服务需求
硬件/软件/策略限制
关联性和非关联性
数据本地化
work上的模块
kubele 管理控制dockert模块
节点管理器
确保调度到本节点的Pod的运行和健康
kube-proxy代理模块
Pod网络代理
tcp/udp 请求转发
负载均衡(Round Robin插件形式存在的)
服务发现
环境变量
DNS-kube2sky,etcd,skydns  DNS查询
每周五定期分享docker 相关核心技术
dockercore
网络
容器间的通信
节点和容器间互相通信
每个Pod使用一个全剧唯一的IP
高可用
kubelet保证每一个master节点的
服务正常运行
系统监控程序确保kubelet正常运行
Etcd 集群

Master选举确保kube-scheduler和kube-contrller-manager高可用

发表于:2017年04月14日 星期五 17时42分45秒  -0.469260 秒。

679945b53c8803436dbb332315129800ace96095


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
3月前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
91 14
|
3月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
3月前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
71 3
|
3月前
|
Kubernetes 监控 安全
容器化技术:Docker与Kubernetes的实战应用
容器化技术:Docker与Kubernetes的实战应用
|
4月前
|
Kubernetes Cloud Native 云计算
云原生时代的技术演进:Kubernetes与微服务架构的完美融合
随着云计算技术的飞速发展,云原生概念逐渐深入人心。本文将深入探讨云原生技术的核心——Kubernetes,以及它如何与微服务架构相结合,共同推动现代软件架构的创新与发展。文章不仅剖析了Kubernetes的基本工作原理,还通过实际案例展示了其在微服务部署和管理中的应用,为读者提供了一条清晰的云原生技术应用路径。
117 2
|
4月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes的奇妙之旅
【9月更文挑战第34天】在数字化浪潮中,云原生技术如Kubernetes已经成为IT行业的重要力量。本文旨在通过浅显易懂的方式,向初学者揭示Kubernetes的核心概念、架构设计及其在实际业务中的应用价值,帮助读者快速理解并掌握这一技术,为进一步深入学习和实践打下坚实基础。
90 1
|
5月前
|
Cloud Native 持续交付 Docker
云原生技术入门与实践:Docker容器化部署示例
【9月更文挑战第25天】在数字化转型的浪潮下,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,为初学者揭示云原生技术的核心概念及其应用价值。我们将以Docker容器为例,逐步引导读者了解如何将应用程序容器化,并在云端高效运行。这不仅是对技术趋势的跟随,更是对资源利用和开发效率提升的探索。
81 4
|
5月前
|
Kubernetes 负载均衡 Cloud Native
探索云原生技术:Kubernetes的魔法
【9月更文挑战第24天】 在数字化浪潮中,云原生技术如同现代航海的罗盘,指引着企业航向灵活、高效的未来。本文将深入剖析云原生世界的璀璨明星——Kubernetes,揭秘其如何在容器化的基础上,实现复杂应用的自动化部署、扩展和管理。从概念到实践,我们将一同领略Kubernetes如何简化运维、提高资源利用率,并推动微服务架构的发展。通过实际的代码示例,我们将手把手教你如何在云上构建和运行第一个Kubernetes集群,让理论与实践相结合,开启云原生之旅。
|
4月前
|
Kubernetes Cloud Native 调度
深入探讨容器化技术:Kubernetes 的魅力
【10月更文挑战第6天】深入探讨容器化技术:Kubernetes 的魅力
104 0
|
5月前
|
Kubernetes 负载均衡 监控
深入云原生技术:Kubernetes集群部署与管理
【9月更文挑战第17天】在数字化转型的浪潮中,云原生技术以其灵活性和可扩展性成为企业新宠。本文将引导读者探索云原生的核心组件——Kubernetes,通过实际案例分析其部署与管理流程,旨在帮助技术从业者和企业决策者理解如何利用Kubernetes提升应用的可用性和性能。从基础概念到操作实践,我们将一同见证云原生技术的变革力量。