实验性迁移小结
迁移目标本文主要记录了将本地rails迁移到云上容器服务的过程, 包括如何部分重构本地应用代码和一些思考. 迁移本地应用的目的主要是为了能够将应用变得高可用和更好的扩展性, 以及为了更好的容器管理.
原来的系统状况本地的rails系统是一个典型的数据库-网页应用, 原来采用docker compose构建部署, 用到的技术栈主要有, 结构图如下:
rails5.0
my...
k8s的部署Deploymentk8s的Deployment提供了pods和ReplicaSets的更新.只需在Deployment对象声明你想要的部署状态, Deployment控制器就会更新到需要的状态.所以这种方式是声明式的.除非第一次部署,k8s采用的部署方式是rolling update(滚动更新). 大致意思是保证服务可用的情况下, 创建一定量的新pods,然后删除一定量的pod...
前言SED和AWK都是平时会用的Linux命令,正好看到NYU的一个PPT, 觉得不错,做一下总结。
SEDsed是一个流式、非交互的文本编辑器。类似grep, sed会读取一行文本然后查找一个pattern模板,再根据匹配与否做相应的动作。sed是可以改变文件内容的。sed作为非交互文本编辑器需要以脚本执行命令,有一个叫ed的交互式编辑器可以执行相同的命令。sed也可以认为是一个unix过...
https://v1-8.docs.kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
前言k8s可以给pod设置计算资源用量, 当遇到违反某些不满足性能的条件时,k8s会有一套机制来处理。限制资源在编排模拟中使用limits或requests.requests指定资源的最小要求,li...
https://v1-8.docs.kubernetes.io/docs/concepts/storage/dynamic-provisioning/
前言动态卷配置允许按需创建存储卷。如果没有动态配置,管理员必须手动配置创建新的存储, 然后创建PV对象。动态卷配置的功能能让管理员不必预先配置存储。而是当用户需要的时候自动配置存储。它可以按用户需要的用量配置存储空间,不像静态那样可能出现...
https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account
前言如果想要k8s能够拉取使用私有镜像需要创建secret, 然后有两种方法指定secret, 拉取image。 一是在pod的编排模板指...
前言本文简单介绍用aliyun的Kubernetes容器服务搭建mysql集群。首先确保k8s集群已经创建,并且已经开通了相关服务如NAS、容器镜像仓库等服务。
第一步 创建数据卷
k8s有个nodeSelector的功能,如果mysql由于单点故障漂移了node,原来的存储会自动重新挂载到新的node(这一步骤是在转移node之前做的). 这样避免了漂移node导致有状态服务不可用的情况。...
Volume简单的说, 一个volume就是一个在磁盘或容器中的目录,volume里面有pod中容器可以访问的数据。K8S的volume主要解决容器中数据存储和容器间数据共享的问题。k8s的volume和pod有相同的生命周期。一个pod可以同时使用不同的volume类型。如果使用volume, 一个pod需要通过spec.volumes指定volume类型,spec.containers....
前言K8S的StatefulSets是一个负载API对象用于管理有状态的应用。StatefulSets会给每个pod维护一个独特的标记, 所以这些pods是不能交换的。注意,V1.9才是稳定版本, 可以通过apiserver发送--runtime-config禁用这个控制器。
应用场景StatefulSets适合如下应用场景:
稳定、唯一的网络标识
稳定、持久的存储
有序的部署和扩展
有序...
前言主要是从Openshift Origin的Doc看到的, 对应k8s 1.7. 加上官网的Doc.
Mastersmasters上的组件含有API server, controller manager server和etcd(可以单独host)。 master管理k8s集群中的nodes,调度节点上的pods.
API server. 可以是一个独立的进程运行。API server验...