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

简介: 给大家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


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
20天前
|
Kubernetes 调度 Docker
深入探讨容器编排技术:从Docker到Kubernetes
容器编排在现代IT中日益关键,从Docker到Kubernetes,助力应用的自动化部署和扩展。Docker提供容器技术,打包应用及环境为镜像,通过引擎、镜像、容器、网络和存储组件实现隔离运行。Kubernetes作为高级容器编排平台,管理Pod(多容器集合),其核心包括API服务器、控制器管理器、调度器和Kubelet。Kubernetes集群由Master和Worker节点构成,实现Pod的高效调度和运行。
|
2天前
|
Kubernetes Java 调度
Java容器技术:Docker与Kubernetes
Java容器技术:Docker与Kubernetes
12 0
|
1月前
|
JSON Kubernetes API
kubernetes核心技术之ConfigMap知识点总结
kubernetes核心技术之ConfigMap知识点总结
22 0
|
1月前
|
Kubernetes 网络协议 调度
kubernetes核心技术之探针知识总结
kubernetes核心技术之探针知识总结
18 0
|
1月前
|
存储 Kubernetes API
kubernetes核心技术之PV与PVC知识总结
kubernetes核心技术之PV与PVC知识总结
57 1
|
1月前
|
Kubernetes 调度 Docker
kubernetes核心技术之Volume知识点总结
kubernetes核心技术之Volume知识点总结
15 0
|
1月前
|
Kubernetes 网络协议 应用服务中间件
kubernetes核心技术之Service知识点总结
kubernetes核心技术之Service知识点总结
21 0
|
1月前
|
运维 Kubernetes 容灾
kubernetes核心技术之Controller控制器知识总结
kubernetes核心技术之Controller控制器知识总结
19 1
|
1月前
|
存储 Kubernetes 调度
kubernetes核心技术之Pod知识总结
【4月更文挑战第2天】kubernetes核心技术之Pod知识总结
56 0
|
2月前
|
存储 Kubernetes 数据安全/隐私保护
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(配置与密码安全)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(配置与密码安全)
39 0