首页 文章 精选 留言 我的

精选列表

搜索[Kubernetes],共7207篇文章
优秀的个人博客,低调大师

容器服务kubernetes(ACK)基础镜像制作记录

1.概述 容器服务云上环境与弹内差别较大,很多弹内支持默认埋点的 agent 在云上没法使用,同时需要预先部署一些云上环境需要的 agent, 因而云上的基础镜像跟弹内差异较大,需要从centos基础镜像开始配置环境。 容器镜像服务在云上,当云效部署时,需要从镜像服务拉取基础镜像建立镜像,因而需要将基础镜像 push 到镜像服务仓库中。 为了方便镜像 push 到镜像仓库,因而采用一个跳板机制作镜像,并上传到镜像仓库的方式来加快镜像制作和上传。 最终执行环境: 本地办公电脑执行打包脚本命令; 跳板机打包镜像; 跳板机镜像上传到镜像仓库。 2. 镜像制作: 主要步骤有: 跳板机环境安装 Docker; 上传镜像中需要的第三方包和基础软件安装包上传到跳板机,比如 jdk, agent等; 编写本地执行脚本,执行镜像打包,并 push 镜像到仓库; ## 2.1 镜像打包跳板机环境配置: 安装 docker: 1、检查内核版本,必须是3.10及以上 uname -r 注:如果版本低于3.10,使用 yum update 升级 2、安装docker yum install docker 3、输入y确认安装 4、启动docker [root@localhost ~]# systemctl start docker [root@localhost ~]# docker -v Docker version 1.12.6, build 3e8e77d/1.12.6 5、开机启动docker [root@localhost ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. 6、停止docker systemctl stop docker 2.2 上传安装依赖包: 上传 jdk, Agent 等应用依赖的第三方包: #!/bin/bash env=$1 if [ ! -n "${env}" ]; then echo "Usage: ./upload.sh env " echo "env is resource upload or erase enviroment name:daily or online" exit 1 fi ## 设置跳板机登录证书和账号等 if [ ${env} == "online" ]; then echo "upload wukong resource to online jump machine." source "../ssh-production.sh" else echo "upload wukong resource to daily jump machine." source "../ssh-testing.sh" fi ## 删除原有资源目录 echo "remove file on jump machine ssh -i ${JUMP_CERT} -t ${JUMP_USER}@${JUMP_MACHINE} 'rm -rf /home/admin/resources/; mkdir /home/admin/resources/;'" ## ssh -i ${JUMP_CERT} -t ${JUMP_USER}@${JUMP_MACHINE} "rm -rf /home/admin/resources; mkdir /home/admin/resources/;" ## 上传依赖软件 echo "scp packag/home/admin/resources/target to jump machine ${JUMP_MACHINE}" scp -i ${JUMP_CERT} -r ./jdk/ ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/resources scp -i ${JUMP_CERT} -r ./sunfire/ ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/resources ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/resources scp -i ${JUMP_CERT} ./tengine-yun-1.0.2-1652752.el7u2.x86_64.rpm ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/resources scp -i ${JUMP_CERT} ./taobao-tomcat-7.0.59.3.tar.gz ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/resources scp -i ${JUMP_CERT} ./start.sh ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/resources scp -i ${JUMP_CERT} ./shutdown.sh ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/resources echo "upload success." 2.3 编写执行脚本: 本地办公环境通过 ssh 执行打包命令: #!/bin/bash APP_NAME=my-pandora-boot-base NAMESPACE=app-base REPO=${APP_NAME} VERSION=$1 source "../../../../ssh-production.sh" if [ ! -n "${VERSION}" ]; then echo "Usage: ./build.sh version " echo "version is docker image version" exit 1 fi cd ../../../ cd APP-META/docker-config/ echo "复制需要包含的 jdk,sunfire,key,i18n等 on jump machine ${JUMP_USER}@${JUMP_MACHINE}" ssh -i ${JUMP_CERT} -t ${JUMP_USER}@${JUMP_MACHINE} "mkdir -p /home/admin/${APP_NAME}/dev-base/; \ cp /home/admin/resources/taobao-hsf.tgz /home/admin/${APP_NAME}/dev-base; \ cp /home/admin/resources/sunfire/crontabs-1.11.rpm /home/admin/${APP_NAME}/dev-base; \ cp /home/admin/resources/sunfire/cronie-1.4.11.rpm /home/admin/${APP_NAME}/dev-base; \ cp /home/admin/resources/sunfire/start-sunfire.sh /home/admin/${APP_NAME}/dev-base; \ cp /home/admin/resources/sunfire/tsar-2.1.33-1568425.82ced85.el7.x86_64.rpm /home/admin/${APP_NAME}/dev-base; \ cp /home/admin/resources/sunfire/sunfire-agent-1.0.10-20190916175607.noarch.rpm /home/admin/${APP_NAME}/dev-base; \ cp /home/admin/resources/jdk/ajdk-8_3_6-b129-8.3.6-1207912.alios7.x86_64.rpm /home/admin/${APP_NAME}/dev-base " echo "scp package scp -i ${JUMP_CERT} -r ./dev-base/ ${JUMP_USER}@${JUMP_MACHINE} " scp -i ${JUMP_CERT} -r ./dev-base/ ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/${APP_NAME}/ scp -i ${JUMP_CERT} -r ./environment/ ${JUMP_USER}@${JUMP_MACHINE}:/home/admin/${APP_NAME}/ echo "exec : docker build on ${JUMP_USER}@${JUMP_MACHINE} --build-arg APP_NAME=${APP_NAME} --build-arg APPID=${APPID} --pull -f Dockerfile_base -t registry-vpc.cn-north-2-gov-1.aliyuncs.com/${NAMESPACE}/${REPO}:${VERSION} ." ssh -i ${JUMP_CERT} -t ${JUMP_USER}@${JUMP_MACHINE} "cd /home/admin/${APP_NAME}/;sudo docker build --build-arg APPNAME=${APP_NAME} --build-arg --pull -f ./dev-base/Dockerfile_base -t registry-vpc.cn-north-2-gov-1.aliyuncs.com/${NAMESPACE}/${REPO}:${VERSION} ." echo "exec : docker push registry-vpc.cn-north-2-gov-1.aliyuncs.com/${NAMESPACE}/${REPO}:${VERSION}" ssh -i ${JUMP_CERT} -t ${JUMP_USER}@${JUMP_MACHINE} "cd /home/admin/${APP_NAME}/;sudo docker push registry-vpc.cn-north-2-gov-1.aliyuncs.com/${NAMESPACE}/${REPO}:${VERSION}" echo "docker push done" 2.4 dockerfile 编写: # 基于centos 基础镜像 FROM centos:7.4.1708 LABEL name="pandoraBoot Base Image" \ vendor="alibaba" \ build-date="20181201" ENV LANG=en_US.UTF-8 \ JAVA_HOME=/opt/taobao/java \ TZ=PRC # 安装工具软件,建立目录等 RUN adduser admin && \ mkdir -p /home/admin/lightapi/ && \ yum install -y telnet && \ yum install -y less && \ mkdir -p /home/admin/logs/ && \ mkdir -p /home/admin/logs/$BUILD_APP_NAME && \ yum install -y sudo && \ yum install -y unzip && \ yum install -y which && \ yum install -y iproute iproute-doc # 增加中间件新提供的 pandora 包 taobao-hsf.sar COPY dev-base/taobao-hsf.tgz /home/admin/taobao-hsf.tgz COPY dev-base/ajdk-8_3_6-b129-8.3.6-1207912.alios7.x86_64.rpm /home/admin/ajdk-8_3_6-b129-8.3.6-1207912.alios7.x86_64.rpm COPY dev-base/sunfire-agent-1.0.10-20190916175607.noarch.rpm /home/admin/sunfire-agent-1.0.10-20190916175607.noarch.rpm COPY dev-base/tsar-2.1.33-1568425.82ced85.el7.x86_64.rpm /home/admin/tsar-2.1.33-1568425.82ced85.el7.x86_64.rpm COPY dev-base/cronie-1.4.11.rpm /home/admin/cronie-1.4.11.rpm COPY dev-base/crontabs-1.11.rpm /home/admin/crontabs-1.11.rpm # 解压安装 RUN rpm -ivh "/home/admin/ajdk-8_3_6-b129-8.3.6-1207912.alios7.x86_64.rpm" && \ ln -s /opt/taobao/install/ajdk-8_3_6-b129 /opt/taobao/java #测试环境 setenv.sh COPY dev-base/start-sunfire.sh /home/admin/start-sunfire.sh # 拷贝执行程序的 shell 文件 COPY environment/common/bin/ /home/admin/appconf/bin/ COPY dev-base/init /home/admin/ COPY dev-base/init.sh /home/admin/ # 增加国际化资源 COPY dev-base/srvcode_i18nResourcesFile /home/admin/logs/mcms/i18n/i18nResourcesFile # 安装sunfire监控agent USER root RUN rpm -ivh /home/admin/tsar-2.1.33-1568425.82ced85.el7.x86_64.rpm && \ rpm -ivh --nodeps /home/admin/cronie-1.4.11.rpm && \ rpm -ivh --nodeps /home/admin/crontabs-1.11.rpm && \ rpm -ivh /home/admin/sunfire-agent-1.0.10-20190916175607.noarch.rpm && \ echo "source '/home/admin/start-sunfire.sh' " >> /home/admin/start.sh && \ chmod -R a+x /home/admin/appconf/bin/ && \ chmod +x /home/admin/*.sh WORKDIR /home/admin/appconf/bin ENTRYPOINT ["/home/admin/start.sh" ]

优秀的个人博客,低调大师

Kubernetes环境中使用NAS动态存储卷

介绍 K8S在应用中经常会用到nas共享存储卷,通常的使用方法是通过一个pv、pvc进行挂载,但当需要pv、pvc数量很大的时候,手动创建显得非常繁琐,这时动态数据卷的功能可以满足您的需求。 以下场景: 当为不同的用户提供不同的nas子目录进行挂载的时候,可以考虑使用nas动态存储卷; 当使用SatefulSet部署应用,每个pod配置使用不同nas数据卷的时候; 本方案中实现的动态nas卷,是在某个nas文件系统下通过创建子目录、并把子目录映射为一个动态pv提供给应用; 部署详解 1. 部署Controller kind: Deployment apiVersion: extensions/v1beta1 metadata: name: alicloud-nas-controller namespace: kube-system spe

优秀的个人博客,低调大师

阿里云Kubernetes CSI实践 - 静态OSS卷

环境准备 集群创建、依赖配置、CSI插件部署等请参考:CSI部署详解 创建OSS Bucket 到OSS控制台创建OSS Bucekt:参考文档 注意:相同region的OSS Bucket 可以使用内网地址进行挂载; 创建Secret、静态PV、PVC 本示例通过Secret来配置用户的AK信息: apiVersion: v1 kind: Secret metadata: name: oss-secret namespace: default stringData: akId: *** akSecret: *** 通过上面模板创建secret,注意namespace需要和应用所在namespaces一致; 配置:akId、akSecret参数; 通过下面模板创建静态卷PV、PVC: apiVersion: v1 kind: Persi

优秀的个人博客,低调大师

阿里云Kubernetes CSI实践 - 静态NAS卷

环境准备 集群创建、依赖配置、CSI插件部署等请参考:CSI部署详解 创建NAS卷 到NAS控制台创建NAS盘:参考文档 到NAS控制台创建NAS挂载点:参考文档 注意:NAS挂载点需要和集群节点在同一个vpc内; 创建静态PV、PVC 通过下面模板创建静态卷PV、PVC: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nas-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: nas-csi-pv spec: capacit

优秀的个人博客,低调大师

工作流在Kubernetes集群中的实践

本文主要介绍如何在ACK上基于工作流引擎进行大规模基因测序工作。阿里云工作流引擎基于开源项目Argo实现,支持并发、循环、重试等多种执行策略。 实验步骤: 依赖配置: 1. 创建集群 2. 安装AGS插件; 3. 配置argo-ui; 4. 创建NAS共享存储卷 实验: 任务解析; 试验一:单任务执行; 试验二:多任务执行; 1. 创建集群: 拿到集群测试域名;c84e9207b8f6b49968cb5570aff4e6581.cn-beijing.alicontainer.com 2. 安装AGS插件; 3. 配置argo-ui: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: workflow-ingress namespace:

优秀的个人博客,低调大师

一文了解Kubernetes的前世今生

近十几年来,IT领域新技术、新概念层出不穷,例如DevOps、微服务(Microservice)、容器(Container)、云计算(Cloud Computing)和区块链(Blockchain)等,直有“乱花渐欲迷人眼”之势。另外,出于业务的需要,IT应用模型也在不断地变革,例如,开发模式从瀑布式(Waterfall)到敏捷(Agile)再到精益(Lean),甚至是与QA和Operations融合的DevOps,应用程序架构从单体(monolithic)模型到分层模型再到微服务,部署及打包方式从面向物理机到虚拟机再到容器,应用程序的基础架构从自建机房到托管再到云计算,等等,这些变革使得IT技术应用的效率大大提升,同时却以更低的成本交付更高质量的产品。尤其是以Docker为代表的容器技术的出现,终结了DevOps中交付和部署环节

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册