Kubernetes 玩转系列
带你走入Kubernetes的世界,对容器编排、管理,让容器更好的带来更好的基础架构。
叶康铭
云原生布道者,华为云享专家,阿里云栖专家。
公众号:云原生架构
展开
-
Kubernetes 项目介绍
什么是KubernetesKubernetes这个名字起源于希腊语,意思是舵手,由于k到s之间有8个字符又简称k8s。Google在2014年开源了Kubernetes项目,基于容器技术的分布式管理系统,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。为什么要使用Kubernetes0.轻量:与使用VM...原创 2020-01-15 01:24:14 · 1358 阅读 · 0 评论 -
Kubernetes 集群部署
Kubernetes 架构图部署Kubernetes节点信息System: CenOS 7.6 - x64Master IP:172.20.1.202kube-controller-manager kube-apiserver kube-scheduler etcd coredns kube-flannel kube-proxy docker-ceWorker1 IP:172.20...原创 2020-01-15 22:14:44 · 1112 阅读 · 0 评论 -
Kubernetes Dashboard
Kubernetes Dashboard是什么?Kubernetes Dashboard是Kubernetes集群的Web UI,用户可以通过Dashboard进行管理集群内所有资源对象,例如查看资源对象的运行情况,部署新的资源对象,伸缩Deployment中的Pod数量等等一系列操作。如何安装 Kubernetes Dashboard应用官方的DashBoard模板kubectl app...原创 2020-01-17 14:10:59 · 1081 阅读 · 0 评论 -
Kubernetes Pod
什么是Pod?Kubernetes中最小的管理单元,作为应用运行的载体。当Pod运行多个容器时,同一个Pod中的所有容器可以共享PID、Network、IPC、UTS命名空间。 打个比方,例如Pod是豆荚,Container容器就是豆子,一个豆荚里可以有一个或者多个豆子。Pod的使用方式通过kubectl创建kubectl run nginx-pod --image=nginx:1.16...原创 2020-01-23 10:09:01 · 1204 阅读 · 0 评论 -
Kubernetes ReplicationController
什么是ReplicationControllerReplicationController确保Pod的副本数量始终是在可用的状态。如果Pod过多时将删除多余的数量,较少时则创建新的Pod。ReplicationController操作通过yaml资源定义清单创建kubectl apply -f rc-demo.yamlapiVersion: v1kind: ReplicationCon...原创 2020-02-19 13:10:38 · 1086 阅读 · 0 评论 -
Kubernetes RelicaSet
什么是RelicaSet?ReplicaSet是为了保持维护的期待Pod副本数量与现时Pod副本数量一致。如在由于Pod异常退出导致期待的副本数量不足时,会自动创建新的Pod保证到与期望的Pod副本数量一致。ReplicaSet的工作流程定义副本数量,定义一个选择器,指定选择器如何获取到具有特定标识Pod,定义一个模板指定新创建的Pod的期望状态。通过yaml资源定义清单创建kubect...原创 2020-02-19 13:10:58 · 1107 阅读 · 0 评论 -
Kubernetes Deployment
什么是Deployment?Deployment提供了运行Pod能力,并且为Pod提供滚动升级、伸缩、副本等功能,一般用于运行无状态的应用。目前建议使用Deployment来代替RelicaSet及ReplicationController的使用。什么是无状态应用?无状态应用是不将数据或应用程序状态存储到容器中,这将使无状态应用程序更具可伸缩性。例如前端应用是无状态的,可以部署多个副本以提高...原创 2020-02-23 14:41:59 · 1733 阅读 · 0 评论 -
Kubernetes StatefulSet
什么是StatefulSet?StatefulSet表示一组具有唯一持久身份标识和稳定主机名的有状态Pod,无论Pod在哪一个Node上运行,身份标识及持久化的数据其都会保留。一般用于持久化存储、固定网络标记、有序部署、有伸缩等场景。什么是有状态应用?有状态应用是将数据或应用程序状态持久化到关联的存储中,例如MySQL、Kafka、Zookeeper等应用场景,需要对其进行唯一持久身份的标识...原创 2020-02-24 11:02:57 · 1233 阅读 · 0 评论 -
Kubernetes DaemonSet
什么是DaemonSet?DaemonSet是部署在所有节点上用于在集群存储、日志收集、性能监控等场景。Pod的生命周期跟随节点,保证集群内的每一个(或者一些)节点都运行一组相同功能的Pod。在新的Kubernetes节点加入时,将会在节点上自动新增一个Pod,在节点移除后Pod也进行回收。DaemonSet操作DaemonSet使用Pod模板,此模板包含适用于其Pod的规范。Pod规范确定...原创 2020-02-24 11:04:15 · 1108 阅读 · 0 评论 -
Kubernetes Job
什么是Job?Job一般用于数据处理、迁移等一次性任务处理场景,Job会创建Pod进行作业并确保完成。Job作业模式1.非并行作业: 作业完成后Pod自动终止。2.具有完成次数计数的并行作业:指定所需完成作业的次数,作业完成后Pod自动终止。3.具有工作队列的并行作业:指定Pod之间或外部服务的协调确定作业,Pod全部终止后作业完成。通过Yaml资源定义清单创建Jobkubectl ...原创 2020-02-24 13:32:30 · 1068 阅读 · 0 评论 -
Kubernetes CronJob
什么是CronJob?CronJob负责处理周期性的任务,基于时间点触发运行,一般用于备份、数据清理、更新等自动化场景。CronJob也是使用Job对象来执行任务,每一次运行都是会创建一个Job对象,对于CronJob的管理是与Job一样的。通过Yaml资源定义清单创建CronJobkubectl apply -f hello-cronjob.yamlapiVersion: batch/v...原创 2020-02-24 13:32:55 · 1052 阅读 · 0 评论 -
Kubernetes Service
什么是ServiceService是为一组Pod提供入口调度服务,并可以在Pod之间实现负载均衡。由于Pod是有生命周期的,每当Pod进行销毁而启动时IP地址也会随之改变,这将无法被调用者发现到,而Service出新就是为了解决服务发现这个问题,提供一个稳定的入口已便于服务调用者,而不用去关心Pod的IP地址变化。什么是EndPointService会根据资源定义清单中的选择器选择与之绑定的...原创 2020-02-25 12:53:03 · 1068 阅读 · 0 评论 -
Kubernetes Ingress
什么是IngressIngress可以将Kubernetes内部的Service通过HTTP/HTTPS的虚拟主机方式暴露到集群外部,可以由Ingress定义请求的路由规则。Ingress 基础操作通过资源定义清单创建Ingresskubectl apply -f nginx-ingress.yamlapiVersion: extensions/v1beta1kind: Ingress...原创 2020-02-25 20:22:07 · 1161 阅读 · 0 评论 -
Kubernetes ConfigMap
什么是ConfigMapConfigMap为Pod中的容器提供了配置文件、环境变量等非敏感信息,通过ConfigMap可以将Pod和其他组件分开,这将使得Pod更加有移植性,使得配置更加容器更改及管理,也使得Pod更加规范。Config基本操作通过kubectl create configmapkubectl create configmap nginx-configmap --from-...原创 2020-02-26 08:19:09 · 976 阅读 · 0 评论 -
Kubernetes Secrets
什么是Secret通过Secret可以将敏感信息注入到Pod中的容器,一般用于存储访问私有仓库的账号密码、TLS证书、Token等。Secret可以做为容器依附在Pod中使用,或者可以通过环境变量引入。这是比直接使用ConfigMap更加安全的方式,降低敏感数据直接暴露给未授权用户的风险。Secret 基本操作通过kubectl create secretkubectl create se...原创 2020-02-26 12:58:06 · 1146 阅读 · 0 评论 -
Kubernetes PersistentVolume & PersistentVolumeClaim
什么是数据卷 (Volumns)在Kubernetes Pod中的容器系统存储文件是临时的,Pod如果异常重启将会恢复到镜像的原始状态从而会丢失所有的状态包括系统存储文件,或者同一个Pod中多个容器需要共享数据。数据卷诞生就是为了解决这一类数据持久化及数据共享的场景,并与容器的生命周期分离开。什么是PV (PersistentVolume)PV是定义存储数据的方式,例如存储类、存储实现等,是...原创 2020-02-27 00:08:08 · 1275 阅读 · 0 评论 -
Kubernetes SerivceAccount
什么是Service AccountService Account是为了解决Kubernetes集群内部资源认证问题而诞生,例如Pod的进程想调用Kubernetes API或者其他外部服务。Service Account基本操作通过kubectl创建ServiceAccountkubectl create sa nginx-sa可以见到创建了ServiceAccount之后也自动创建...原创 2020-02-27 00:08:24 · 1124 阅读 · 0 评论 -
Kubernetes Role & ClusterRole
什么是RBACRBAC全称Role-Based Access Control,是Kubernetes集群基于角色的访问控制,实现授权决策,允许通过Kubernetes API动态配置策略。什么是RoleRole是一组权限的集合,例如Role可以包含列出Pod权限及列出Deployment权限,Role用于给某个NameSpace中的资源进行鉴权。通过YAML资源定义清单创建Rolekub...原创 2020-02-27 17:54:05 · 11242 阅读 · 0 评论 -
Kubernetes RoleBinding
什么是RoleBindingRoleBinding通过已经定义的Role权限授予到用户、用户组,从而让用户获得在NameSpace对应的操作资源权限。RoleBinding基本操作通过YAML资源定义清单创建RoleBindingkubectl apply -f pod-rolebinding.yamlapiVersion: rbac.authorization.k8s.io/v1bet...原创 2020-02-27 17:58:56 · 2165 阅读 · 1 评论