我的编程空间,编程开发者的网络收藏夹
学习永远不晚

k8s的部署脚本是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

k8s的部署脚本是什么

本篇内容主要讲解“k8s的部署脚本是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“k8s的部署脚本是什么”吧!

浅谈docker

docker可以类比为jvm,jvm也是虚拟机,然后docker的image可以类比为jar包,jar运行在jvm里面,image当然运行在docker容器里,然后jar包是通过maven 的pom.xml定义构建的产物,那docker也有一个Dockerfile来定义打包的镜像。在没有容器化之前,我们开发提供的最终产物是jar,容器化之后我们需要提供docker的镜像,docker的镜像会包含我们的jar,然后提供一个稳定的可移植的运行环境。下面是最简单的一个docker镜像构建:

k8s的部署脚本是什么

通过 docker build -t kl/sales . 就可以构建一个可运行的镜像

浅谈k8s的部署脚本

其实k8s的脚本没什么可说的,本身k8s的概念非常之多,具体可参考官方的文档,下面贴出我们的部署文件

apiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: sales-app  namespace: #namespacespec:  replicas: 2  minReadySeconds: 130  # 从容器启动到应用正常提供服务  strategy:  # k8s更新策略      type: RollingUpdate #滚动更新      rollingUpdate:        maxSurge: 2  # 更新时允许最大激增的容器数,默认 replicas 的 1/4 向上取整        maxUnavailable: 1  # 更新时允许最大 unavailable 容器数,默认 replicas 的 1/4 向下取整  template:    metadata:      labels:        app: sales-app    spec:      imagePullSecrets: #镜像拉取秘钥      - name: xx-xx-xx      containers:      - name: sales        image: xxx-vpc.cn-xx.aliyuncs.com/keking/sales:#Tag        imagePullPolicy: Always        env:        - name: runShell          value: #runShell        ports:        - containerPort: 6002          name: web          protocol: TCP        resources:          limits:            cpu: 600m            memory: 4Gi          requests:            cpu: 300m            memory: 100Mi        livenessProbe: #检查是否存活          httpGet:            path: /health            port: 6002          initialDelaySeconds: 240 #首次检查在多少时间后          periodSeconds: 180 #检查周期          timeoutSeconds: 3 #超时时间          failureThreshold: 3 #失败的阈值,连续三次        readinessProbe: #检查是否成功启动          httpGet:            path: /health            port: 6002          initialDelaySeconds: 140 #首次检查在多少时间后          periodSeconds: 300 #检查周期          timeoutSeconds: 3 #超时时间---apiVersion: v1kind: Servicemetadata:  name: sales-app  namespace: #namespace  labels:    app: sales-appspec:  selector:    app: sales-app  ports:  - name: web    port: 80    targetPort: 6002    nodePort: 31942  type: NodePort

最后聊聊jenkins pipeline

和一般的jenkins pipeline定义一样,容器化后就多了两个步骤,一个是在jar生成后,根据前面的讲的Dockerfile文件构建docker的镜像,这个要求jenkins所在主机必须有docker的环境。第二个步骤是发送k8s的部署脚本到k8s容器,这个是通过jenkins kuberneetes插件来完成的,详见下面的jenkins脚本

podTemplate(label: 'jnlp-slave', cloud: 'kubernetes', containers: [        containerTemplate(                name: 'jnlp',                image: 'xx-vpc.cn-xx.aliyuncs.com/keking/jenkins-slave:latest',                alwaysPullImage: true        ),],        volumes: [                hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),                hostPathVolume(mountPath: '/usr/bin/docker', hostPath: '/usr/bin/docker'),                hostPathVolume(mountPath: '/usr/local/jdk', hostPath: '/usr/local/jdk'),                hostPathVolume(mountPath: '/usr/local/maven', hostPath: '/usr/local/maven'),        ],        imagePullSecrets: ['registry-pull-secret'],)        {            node("jnlp-slave") {                stage('Git Checkout') {                    checkout([$class: 'GitSCM', branches: [[name: "*/${branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xx', url: 'http://xx.xx.xx/xx/yudian-salesplatform-boot.git']]])                }                stage('Maven Build') {                    script {                        if ('true' == "${build}") {                            sh "mvn clean install -U  -P${profile} -Dmaven.test.skip=true"                        } else {                            echo "跳过maven build"                        }                    }                }                stage('Docker Build ') {                    script {                        if ('true' == "${build}") {                            sh '''                                docker login -u it_sh@keking-group -p x#xxx-vpc.cn-xx.aliyuncs.com                                docker build -t xx-vpc.cn-xx.aliyuncs.com/keking/sales:${Tag} .                                docker push xx-vpc.cn-xx.aliyuncs.com/keking/sales:${Tag}                               '''                        } else {                            echo "跳过docker build"                        }                    }                }                stage('Deploy to K8s') {                    script {                        if('true' == "${deploy}"){                            if ('prod' == "${profile}") {                                sh '''                                       sed -i "s/#namespace/prod/g" deploy.yaml                                       sed -i "s%#runShell%java -Xmx2G -Xms2G -Xmn960M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.log -Xloggc:/tmp/gc.log -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:MaxMetaspaceSize=128m -XX:MetaspaceSize=128m  -jar -Ddev_meta=http://conf.x.ops:8801/ -Denv=DEV -Didc=prod app.jar%g" deploy.yaml                                   '''                            }                            if ('uat' == "${profile}") {                                sh '''                                       sed -i "s/#namespace/uat/g" deploy.yaml                                       sed -i "s%#runShell%java -Xmx1536M -Xms1536M -Xmn960M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.log -Xloggc:/tmp/gc.log -verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:MaxMetaspaceSize=128m -XX:MetaspaceSize=128m  -jar -Ddev_meta=http://conf.keking.ops:8801/ -Denv=DEV -Didc=sales_docker app.jar%g" deploy.yaml                                                         '''                            }                            sh '''                               sed -i "s/#Tag/${Tag}/g" deploy.yaml                            '''                            kubernetesDeploy configs: 'deploy.yaml', kubeConfig: [path: ''], kubeconfigId: '9c1da035-60b9-4bd8-aeae-1a31666280ce', secretName: '', ssh: [sshCredentialsId: '*', sshServer: ''], textCredentials: [certificateAuthorityData: '', clientCertificateData: '', clientKeyData: '', serverUrl: 'https://']                        }else {                            echo "跳过Deploy k8s"                        }                    }                }            }        }

到此,相信大家对“k8s的部署脚本是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

k8s的部署脚本是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

k8s的部署脚本是什么

本篇内容主要讲解“k8s的部署脚本是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“k8s的部署脚本是什么”吧!浅谈dockerdocker可以类比为jvm,jvm也是虚拟机,然后docker
2023-06-29

怎么利用python脚本自动部署k8s

这篇文章主要为大家展示了“怎么利用python脚本自动部署k8s”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用python脚本自动部署k8s”这篇文章吧。一、准备通过之前在Ubuntu1
2023-06-20

K8s部署gitlab的步骤是什么

创建一个Kubernetes集群,确保集群可以正常运行。安装Helm(如果尚未安装),并添加GitLab的Helm仓库。创建一个新的命名空间(namespace)来部署GitLab。配置GitLab的相关参数,如域名、密码等。使用Helm来
K8s部署gitlab的步骤是什么
2024-03-05

k8s部署flask的步骤是什么

部署一个Flask应用程序到Kubernetes(k8s)可以按照以下步骤进行:创建Docker镜像:首先需要将Flask应用程序打包到Docker镜像中。创建一个Dockerfile,其中包含了Flask应用程序的依赖项和配置。然后使用D
2023-10-23

k8s部署hadoop的方法是什么

部署Hadoop在Kubernetes(k8s)上有以下几个步骤:1. 创建Kubernetes集群:首先,您需要创建一个Kubernetes集群,可以使用各种工具,如Minikube、kubeadm或托管服务(例如GKE、AKS、EKS等
2023-10-11

k8s部署jenkins的流程是什么

部署Jenkins到Kubernetes(k8s)的流程如下:创建一个Kubernetes集群:安装和配置一个Kubernetes集群,确保集群已经运行。创建一个Jenkins的命名空间:在Kubernetes中创建一个新的命名空间,用于部
2023-10-27

k8s部署springcloud的步骤是什么

部署Spring Cloud在Kubernetes(k8s)上的步骤如下:1. 创建Kubernetes集群:首先,需要创建一个Kubernetes集群,可以使用云服务提供商或使用本地工具(如Minikube)来创建集群。2. 构建镜像:将
k8s部署springcloud的步骤是什么
2024-02-29

k8s部署ingress-nginx的方法是什么

本篇内容介绍了“k8s部署ingress-nginx的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、部署配置Ingress1、
2023-06-22

k8s安装部署的步骤是什么

安装和部署Kubernetes的步骤如下:安装Docker:Kubernetes依赖于Docker作为容器化技术,因此首先需要安装Docker。配置Docker:在安装完Docker后,需要配置Docker以启用远程访问和使用加速器。安装K
2023-10-27

k8s集群部署的方法是什么

Kubernetes(简称为k8s)集群的部署方法有多种,可以根据实际需求选择适合的部署方法。以下是一些常见的部署方法:1. 手动部署:使用kubeadm、kubespray等工具手动部署Kubernetes集群。这种方法需要手动配置各个节
2023-10-24

k8s集群部署的步骤是什么

部署Kubernetes集群的步骤如下:1. 准备环境:为部署Kubernetes集群的所有节点准备合适的操作系统(如Ubuntu、CentOS等)以及所需的硬件资源,如CPU、内存和磁盘空间等。2. 安装Docker:在所有节点上安装Do
2023-10-11

k8s快速部署的方法是什么

Kubernetes(k8s)是一个开源的容器编排平台,用于自动化应用程序的部署、扩展和管理。要快速部署Kubernetes集群,可以使用以下几种常用方法:使用Kubernetes官方工具kubeadm:kubeadm是Kubernetes
k8s快速部署的方法是什么
2024-03-05

k8s单节点部署的方法是什么

要在Kubernetes上部署单节点集群,可以按照以下步骤进行操作:安装Docker:首先,需要在节点上安装Docker。可以按照Docker官方文档提供的步骤进行安装。安装kubectl:kubectl是Kubernetes命令行工具,用
2023-10-27

k8s安装及部署流程是什么

K8s(Kubernetes)是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。安装和部署K8s通常需要以下步骤:准备环境:确保机器上的操作系统和软件包已经安装完毕,例如Docker、kubelet、kubeadm等。初始化Mast
k8s安装及部署流程是什么
2024-03-04

k8s容器化部署的方法是什么

Kubernetes (k8s) 是一个开源容器编排平台,可以实现容器化应用的部署、扩容、管理和资源调度等功能。Kubernetes 提供了多种部署容器化应用的方法,包括:1. 手动部署:使用 Kubernetes 的命令行工具(如 kub
2023-10-11

k8s部署多个docker的方法是什么

在Kubernetes中部署多个Docker容器的方法如下:创建一个Kubernetes集群:首先需要创建一个Kubernetes集群,可以使用工具如kubeadm、minikube或Kubernetes云提供商(如GKE、AKS、EKS)
2023-10-27

最简单的k8s集群部署方法是什么

最简单的Kubernetes集群部署方法是使用工具如kubeadm、minikube或者k3s。这些工具能够自动化地在单个节点或者多个节点上部署一个简单的Kubernetes集群。1. 使用kubeadm: - 安装Docker或者co
2023-09-27

k8s部署redis集群实现的方法是什么

这篇文章主要介绍“k8s部署redis集群实现的方法是什么”,在日常操作中,相信很多人在k8s部署redis集群实现的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”k8s部署redis集群实现的方法
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录