从零学习云计算
文章平均质量分 76
刚入职云计算方向的工程师,负责将公司的paas云平台往kubernetes的架构上迁移,会在微博中详细记录学习kubernetes等知识的过程,以及在生产环境中,迁移云平台时碰到的一些问题和解决方案。
胡了了
这个作者很懒,什么都没留下…
展开
-
kubernetes学习记录(15)——使用operator-sdk开发operator
参考官方文档operator-sdkoperator-sdk环境搭建官方文档中只有Linux和macOS两种操作系统的安装方式,我选择在Linux下搭建operator-sdk。省略go环境的安装过程下载operator-sdk二进制release包curl -LO https://github.com/operator-framework/operator-sdk/releases...原创 2020-02-11 17:41:32 · 2809 阅读 · 0 评论 -
openshift/origin工作记录(12)——Openshift3.11安装Istio
测试环境安装Istio进行学习,参考文档连接https://istio.io/zh/docs/setup/kubernetes/测试环境:Openshift3.11+Centos7.5下载 Istio 发布包Istio 会被安装到自己的 istio-system 命名空间,并且能够对所有其他命名空间的服务进行管理。下载和自动解压缩# curl -L https://git.io/g...原创 2019-02-21 10:59:30 · 1344 阅读 · 0 评论 -
openshift/origin工作记录(11)——Openshift3.6向Openshift3.11升级以及CVE-2018-1002105漏洞修复
由于kubernetes的CVE-2018-1002105重大漏洞,需要对Openshift集群进行版本升级。当前运行的Openshift集群版本为v3.6,目标为升级到版本v3.11。原创 2018-12-13 13:17:30 · 1385 阅读 · 4 评论 -
openshift 3.10多节点集群安装(基于Ansible和Centos7.4)
参考官方文档https://docs.okd.io/3.10/install/index.html,基于Ansible安装3.10版openshift集群。特注:本文仅供初学者参考!生产环境请结合实际并参照官方文档!(本文尽量往生产环境上靠)安装规划个人电脑资源有限,这里采用双节点集群,这两个节点既是master,又是node,也是etcd,并挂HAProxy负载平衡maste...原创 2018-09-06 13:27:26 · 7489 阅读 · 8 评论 -
openshift/origin工作记录(8)——docker镜像垃圾回收
镜像仓库垃圾回收master节点上以集群管理员登录集群后执行:# oadm prune images --all=false --keep-younger-than=0m --keep-tag-revisions=0 --registry-url=docker-registry-default.router.default.svc.cluster.local --certificate-a...原创 2018-03-29 10:37:06 · 940 阅读 · 0 评论 -
openshift/origin工作记录(9)——openshift结合jenkins实现持续集成
最近工作为基于jenkins、Openshift实现持续集成。由于只给了我一周的时间,这里先记录一下V1.0版的实现过程。集成jenkins参考《openshift/origin学习记录(7)——集成Jenkins服务》,集成jenkins(博客里记录的是非持久化的jenkins,选用jenkins-persistent-template模板,创建了持久化的jenkins)...原创 2018-04-16 16:21:09 · 3222 阅读 · 0 评论 -
openshift/origin工作记录(10)——openshift pod无法访问外网的解决方案
编辑主机上的/etc/dnsmasq.d/origin-dns.conf文件,添加相应的DNS服务器,格式为: server=DNS服务器说明:可添加多个,如: server=218.85.152.99server=114.114.114.114重启dnsmasq,使更改生效systemctl restart dnsmasq.servicesystemctl resta...原创 2018-07-09 12:35:59 · 1710 阅读 · 0 评论 -
openshift/origin工作记录(7)——持久化openshift内部镜像仓库
openshift内部镜像仓库Registry组件默认是非持久化的。之前重启过一次openshift集群,导致重启前通过s2i构建的镜像都不能用了。所以需要持久化openshift内部镜像仓库。有状态的应用如果未配置持久化卷,容器一旦意外退出,容器内部所有的镜像、配置、数据都将消失殆尽。本部分参考《开源容器云OpenShift》一书129-133页以及官方文档https://doc...原创 2018-01-04 16:32:09 · 3504 阅读 · 0 评论 -
openshift/origin工作记录(6)——本地DNS服务器的创建与配置
之前在建立openshift集群时,是直接修改各个节点的/etc/hosts文件,加上静态的域名解析。当节点数量很多或者后续执行集群节点扩容时,都需要修改大量的/etc/hosts文件,很麻烦。这里选择在本地搭建一个DNS服务器。我选择将DNS服务器部署到了Master节点上。登录Master节点执行操作。修改/etc/hosts配置根据自己的实际情况配置,整合之前配置的静态域名解析。添加dnsm原创 2018-01-03 17:57:18 · 3100 阅读 · 0 评论 -
openshift/origin工作记录(5)——node节点系统资源预留
实际应用中发现,如果不做处理,当集群内应用数量不断增加时,会占满node节点的系统资源,导致某node节点挂掉,同时也会造成openshift集群的卡死。解决思路为设置node节点系统资源预留值。参考官方文档:https://docs.openshift.org/latest/admin_guide/manage_nodes.html#configuring-node-resour...原创 2018-01-03 16:28:31 · 1771 阅读 · 6 评论 -
openshift/origin工作记录(4)——Pod时区同步
最近在收集Docker日志等操作的时候,发现openshift的pod时区默认和宿主机不同步,默认使用UTC时间。解决方案设置Docker容器环境变量:TZ=Asia/Shanghai。示例如下:验证原创 2017-11-16 10:21:01 · 1112 阅读 · 0 评论 -
openshift/origin工作记录(3)——Application的删除
openshift创建完一个application后,会自动创建很多对象,包括dc、rc、svc、pod、is等。在删除application时,可通过标签,批量删除同一个application下的所有对象。如下图所示:创建的名为eureka的application包括图中所有的对象。删除指令# oc delete all -l application=eureka验证# oc get a原创 2017-11-02 14:36:59 · 2330 阅读 · 0 评论 -
openshift/origin工作记录(2)——RESTful编程接口使用
由于工作原因,需要对openshift进行二次开发,初步研究了一下RESTful编程接口使用。本部分内容借鉴了开源项目https://github.com/fabric8io/kubernetes-client,目前是引用开源项目的jar包对openshift集群进行操作。demo工程放在了我的github上,地址为https://github.com/hu12081/openshift原创 2017-10-31 17:13:16 · 2622 阅读 · 0 评论 -
Docker学习记录(4)——docker pull默认从本地镜像仓库拉取镜像
主机操作系统为Centos7.3,内网环境下使用docker pull,直接从本地镜像仓库下载镜像。本地镜像仓库的搭建方法多样,这里不做记录。我的本地镜像仓库的地址为master.example.com:5000。配置docker的启动参数。执行:# systemctl status docker 如图红框所示,修改/usr/lib/systemd/system/docker.service启动参原创 2017-10-27 14:16:31 · 67976 阅读 · 4 评论 -
Centos7.2学习记录(3)——搭建本地yum仓库
入职以来,由于公司云主机运行在内网环境下,在搭建kubernetes和openshift集群时都需要进行离线安装,这里粗略记录一下本地yum仓库的搭建过程。httpd配置安装httpd在目标服务器上安装httpd。# yum install -y httpd修改httpd端口号我的80端口已被占用,故这里修改httpd的端口号。 修改/etc/httpd/conf/httpd.conf。 将L原创 2017-10-26 14:52:52 · 2270 阅读 · 0 评论 -
openshift/origin学习记录(13)——集群节点扩容(Master/node/etcd)
集群搭建成功之后,可以对集群进行扩容,包括对Master、Node、Etcd等的扩容,添加新的节点。官方文档链接如下:https://docs.openshift.org/latest/install_config/adding_hosts_to_existing_cluster.html这里在 openshift/origin学习记录(0)——Ansible安装多节点openshift原创 2017-10-26 12:30:55 · 3388 阅读 · 0 评论 -
openshift/origin工作记录(1)——S2I镜像定制(基于SVN)
本篇博客所用到的代码已上传至github。https://github.com/hu12081/openshift-s2i-tomcat-svn.git 不建议直接clone git,否则,注意修改文件权限。s2i源码研究(能力不够,修改失败)周一的时候在github上粗略阅读了source-to-image的源码,代码地址为https://github.com/openshift/so...原创 2017-10-25 10:36:34 · 3631 阅读 · 1 评论 -
openshift/origin学习记录(12)——离线安装集群
最近在公司申请了三台云主机,并在这三台云主机上搭建openshift集群。由于公司的云主机是内网环境,无法连接外网,所以需要离线安装。记录过程如下:搭建本地yum服务器在之前在线安装的openshift集群节点上执行yum history,查看yum的安装历史。通过reposync或者参考我的博客《Centos7.2学习记录(2)——yum只下载不安装以及多rpm的安装 》...原创 2017-10-23 14:09:46 · 4736 阅读 · 0 评论 -
openshift/origin学习记录(11)——赋予用户集群管理员权限
由于system:admin默认没有密码,没法登录web console,这里通过指令给账号dev赋予集群管理员权限。# oc login -u system:admin# oc adm policy add-cluster-role-to-user cluster-admin dev这样就可以用dev账号访问web console。访问default等工程。原创 2017-10-19 17:05:35 · 3364 阅读 · 4 评论 -
openshift/origin学习记录(10)——基于已有镜像部署应用
本部分记录如何基于已有的镜像部署应用。参考的博客为《OpenShift_034:部署 mywebsql docker image 访问 mysql 数据库》(该博主的博客需要翻墙浏览)。这里的测试镜像选择的是我自己的博客《 Docker学习记录(2)——JAVA应用容器化(JAVA博客应用Solo)》最终产生的镜像。基于已有镜像部署应用以账号为dev密码为dev的用户登录openshift集群。原创 2017-09-29 18:14:15 · 4385 阅读 · 1 评论 -
Docker学习记录(3)——Docker指向多个私有镜像仓库地址
最近在研究openshift的时候碰到一个问题:openshift本身内部有一个docker registry(存储s2i生成的镜像),我自己又搭了一个本地镜像仓库,这两个仓库地址都需要加到insecure-registries中。方法如下:编辑/etc/docker/daemon.json # vim /etc/docker/daemon.json 修改为:{"insecure-regist原创 2017-09-29 18:20:54 · 9767 阅读 · 0 评论 -
openshift/origin学习记录(9)——S2I镜像定制(基于Git)
参考《开源容器云Openshift》一书,制作一个Tomcat的S2I镜像。准备环境在Master上下载S2I的二进制执行文件。# cd /opt # wget https://github.com/openshift/source-to-image/releases/download/v1.1.7/source-to-image-v1.1.7-226afa1-linux-386.tar.g原创 2017-09-27 10:37:33 · 4670 阅读 · 3 评论 -
openshift/origin学习记录(8)——基于镜像安装多节点集群(Containerized Installer)
本节内容是Docker镜像以及Ansible实现多节点集群Containerized Installer。大体流程和基于RPM的安装过程类似。本部分openshift集群的部署分为以下几个阶段:主机准备。准备openshift集群需要的主机。安装前预配置。准备相应的系统配置与软件依赖。执行安装。使用Ansible Playbook进行自动化安装。主机准备由于是在自己笔记本上尝试部署多节点集原创 2017-09-22 10:20:58 · 3130 阅读 · 0 评论 -
openshift/origin学习记录(7)——集成Jenkins服务
学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。Openshift项目提供了集成Openshift插件的Jenkins容器镜像和部署模板。 o Openshift项目默认提供了两个Jenkins部署模板:jenkins-ephemeral-template、jenkins-persistent-template...原创 2018-03-22 15:42:38 · 6928 阅读 · 5 评论 -
openshift/origin学习记录(6)——集群节点管理
采用Cockpit实现集群节点管理。Cockpit是一个开源的系统管理项目。支持Docker、Kubernetes、Openshift。安装Cockpit在集群所有的节点上安装Cockpit以及Docker、Kubernetes插件。# yum install -y cockpit cockpit-docker cockpit-kubernetes在集群的所有节点上启动Cockpit服务,并原创 2017-09-15 15:44:46 · 3242 阅读 · 0 评论 -
openshift/origin学习记录(0)——Ansible安装多节点openshift集群
本节内容是基于Ansible Playbook自动部署openshift集群,之后几节内容会通过一个AllInOne的集群手动添加组件,研究实现的流程。本部分内容是3.6.0,可能不适用3.6.1本部分openshift集群的部署分为以下几个阶段:主机准备。准备openshift集群需要的主机。安装前预配置。准备相应的系统配置与软件依赖。执行安装。使用Ansible Playb原创 2017-09-13 09:50:20 · 10930 阅读 · 1 评论 -
Docker学习记录(2)——JAVA应用容器化(JAVA博客应用Solo)
以GitHub上一个开源JAVA博客应用为例,地址为:https://github.com/b3log/solo。它的项目结构是基于Maven的要求布置的,通过Maven可以编译和构建WAR包。执行容器化的环境为CentOS7.2。安装源代码工具Git与构建工具Maven。# yum -y install git maven从GitHub上下载JAVA应用源代码。# mkdir /opt/j原创 2017-09-12 09:13:08 · 1797 阅读 · 0 评论 -
openshift/origin学习记录(5)——添加Template(模板)并基于模板部署应用
学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行。添加模板为了满足用户对复杂应用部署的需求,提供应用部署的效率,openshift引入了应用部署模板(Template)的概念。通过Template,可以定义一个或多个需要部署的镜原创 2017-09-11 15:33:03 · 6157 阅读 · 9 评论 -
openshift/origin学习记录(4)——添加Image Stream
学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行。Image Stream是一组镜像的集合,可以在一个Image Stream中定义一些名称及标签(tag),并定义这些名字及标签指向的具体镜像。使用Image Stream的目的原创 2017-09-11 15:00:45 · 5221 阅读 · 0 评论 -
openshift/origin学习记录(3)——添加Registry
本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行该部分是部署集群内部的Docker镜像仓库。从功能上来说,它与其他诸如DockerHub没有本质上的区别,只是这个内部镜像仓库会存储由Source to Image(S2I)创建的镜像。S2I的工作是辅助将应用的源代码转换成可以部署的Docker镜像。以管理员登录,并切换到default工程。#原创 2017-09-08 16:37:09 · 5785 阅读 · 0 评论 -
openshift/origin学习记录(2)——添加Router组件
本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行Router是openshift集群中的一个重要组件,它是外部访问集群内容器应用的入口。集群外部的请求都会到达Router,由Router分发到具体的容器中。Router组件需要读取集群的信息,所以它需要关联一个系统账号Service Account,并为这个账号授权。以下操作基于oc(命令行客户原创 2017-09-08 16:12:28 · 4684 阅读 · 11 评论 -
openshift/origin学习记录(1)——基于二进制文件的安装(单机版)
学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。先决条件开启SELINUX官方文档推荐开启SELINUX,否则会导致安装失败。 修改/etc/selinux/configSELINUX=enforcingSELINUXTYPE=targeted安装docker# yum install -y docker-1.12.原创 2017-09-07 16:01:45 · 5984 阅读 · 10 评论 -
kubernetes工作记录(2)——基于release工程的kubernetes1.7.3 rpm包的编译生成
使用release工程编译的方式,生成kubernetes1.7.3的rpm包。虚拟机环境为Centos7.2。安装git# yum -y install git下载release工程# git clone https://github.com/kubernetes/release.git# cd release/rpm修改entry.shentry.sh的内容如下。 主要是修改ARCHS里的原创 2017-09-04 09:24:02 · 1257 阅读 · 0 评论 -
Centos7.2学习记录(2)——yum只下载不安装以及多rpm的安装
最近在研究kubernetes的离线安装,所以尝试了下yum的只下载不安装,获取rpm文件这里以docker为例。只下载不安装docker的rpm文件# sudo yum install --downloadonly --downloaddir=temp docker--downloadonly#只下载--downloaddir=temp#rpm的下载保存地址如果下载的包包含了任何没有满足的依原创 2017-09-01 16:39:57 · 5875 阅读 · 0 评论 -
Maven学习记录(1)——Maven项目中导入本地自定义jar包
在创建Maven项目时,我想将自定义的jar包导入到Maven项目中。实现步骤如下:以monitor-util.jar为例。1)打开Maven的settings.xml找到其中的localRepository标签。我的标签内容如下:<localRepository>E://maven//LocalWareHouse</localRepository>2)切换到localRepository目录下新建原创 2017-08-07 20:12:58 · 1967 阅读 · 2 评论 -
kubernetes学习记录(0)——学习记录阅读顺序
目前很多内容都是基于无安全认证的集群,会尝试在安全认证后的集群进行操作,成功后会更新博客。已实现1.阅读Centos7.2学习记录(1)——静态IP配置使用Vmware创建四台虚拟机,一台作为Docker Registry,一台作为Master,另外两台作为Node。配置静态IP。2.阅读Docker学习记录(1)——搭建自己的Docker Registry3.阅读 kub原创 2017-08-22 11:31:58 · 659 阅读 · 0 评论 -
kubernetes学习记录(1)——kubernetes初理解
入门时,学习阅读的为[《你闺女也能看懂的插画版Kubernetes指南》](https://mp.weixin.qq.com/s/hjTTRbd4vYp4yNg8Ygg69A)。由Deis的平台架构师Matt Butcher向他女儿介绍什么是Kubernetes,内容短小精悍、浅显易懂。Kubernetes是一个开源的Docker容器编排系统,它可以调度计算集群的节点,动态管理上面的作业,保证它们原创 2017-08-01 09:06:57 · 1359 阅读 · 0 评论 -
kubernetes学习记录(2)——基于Centos7.2的kubernetes集群自动安装与配置
kubernetes集群的解决方案为:使用VMware Workstation Pro,安装3台Centos7 Minimal版(无图形化界面,防止电脑卡顿)的虚拟机。一台作为Master,另外两台作为Node。使用xshell软件操作虚拟机。基于二进制文件离线安装的记录在kubernetes工作记录(1)——kubernetes1.7.4版集群的离线安装搭建过程记录 中,集成了CA认证、Flann原创 2017-08-01 13:03:38 · 1861 阅读 · 0 评论 -
kubernetes学习记录(3)——集群外部访问Pod或Service
学习阅读的书籍为《kubernetes权威指南:从Docker到Kubernetes实践全接触》,书中有不少地方讲的比较模糊,故在此做下学习过程中的梳理。Pod和Service是Kubernetes集群范围内的虚拟概念。集群外的客户端系统无法通过Pod的IP地址或者Service的虚拟IP地址和虚拟端口号访问到它们。解决措施:1.将容器应用的端口号映射到物理机上,包括两种方式(1)通过设置容器级别原创 2017-07-31 13:21:55 · 10015 阅读 · 0 评论 -
kubernetes学习记录(4)——创建kubernetes覆盖网络
Kubernetes的网络模型要求每一个Pod都拥有一个扁平化共享网络命名空间的IP,成为PodIP,Pod能够直接通过PodIP跨网络与其他物理机和Pod进行通信。要实现Kubernetes的网络模型,需要在Kubernetes的集群中创建一个覆盖网络,联通各个节点。在此,选择的是Flannel。Flannel是CoreOS团队设计开发的一个覆盖网络工具。配置Flannel需要对Master和No原创 2017-08-02 11:04:31 · 1008 阅读 · 0 评论