【容器云】

说明:完成本任务需要两台安装了CentOS7.5操作系统的云主机:master和node。Chinaskill_Cloud_PaaS.iso镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。 某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入CICD (Continuous Integration持续集成、Continuous Delivery持续交付) 成了公司的当务之急,研发团队决定搭建基于Kubernetes 的CICD环境,希望基于这个平台来实现DevOps的部分流程,来减轻开发、部署、运维的负担。 为了能够让公司开发的web应用系统产品能够基于服务器的性能、可靠性、高可用性与方便维护,研发部决定使用微服务架构,实现基于Kubernetes的容器化部署。 节点规划如表1所示。 表1容器云平台节点规划 节点角色 主机名 VCPUS 内存 硬盘 Master、Harbor、CICD master 16 10G 100G Worker Node node 16 8G 100G

【任务1】Docker CE及私有仓库安装任务

【题目1】安装Docker CE和Docker Compose

在master、node各节点中分别安装DockerCE和docker-compose。完成后提交master节点的用户名、密码和IP到答题框。

k8s_harbor_install.sh ##在master节点跑脚本即可

【题目2】安装私有仓库

在master节点安装私有仓库,导入/opt/images目录下所有镜像,并推送到私有仓库。完成后提交master节点的用户名、密码和IP到答题框。

 cd /opt/images/
 ./k8s_image_push.sh
##记住后面构建的dockerfile千万别构建成镜像不然这题0分

【题目3】容器编排

在master节点上编写/root/wordpress/docker-compose.yaml文件,具体要求如下:
(1)容器名称:wordpress;镜像:wordpress:latest;端口映射:82:80;
(2)容器名称:mysql;镜像:mysql:5.6;
(3)MySQL root用户密码:123456;
(4)创建数据库wordpress。
完成后编排部署WordPress,并提交master节点的用户名、密码和IP到答题框。

[root@master ~]# cat wordpress/docker-compose.yaml 
version: '3.3'
services:
   mysql:
     image: mysql:5.6
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: 123456
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
   wordpress:
     depends_on:
       - mysql
     image: wordpress:latest
     ports:
       - "82:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: mysql:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress

【题目4】容器基础操作[1分]

在master节点上停止并删除上述部署的wordpress容器。完成后提交master节点的用户名、密码和IP到答题框。

docker-compose down

【任务2】基于Docker容器的web应用系统部署

将该公司开发的基于微服务架构的web应用系统Chinaskillmall实现全容器化部署,Chinaskillmall应用系统架构图如下:

在这里插入图片描述

模块 使用技术 备注
gpmall.sql Mysql 网站的数据库
dist目录 Nginx 网站的前端项目
gpmall-shopping web项目 8081端口,商品/购物车/首页渲染等交互
gpmall-user 8082端口,提供用户相关的交互,如登录、注册、个人中心等
user-provider 后端服务 提供用户相关服务
shopping-provider 提供购物车、推荐商品、商品等服务

【题目1】容器化部署Redis

在master节点上编写/root/redis/Dockerfile文件构建chinaskill-redis:v1.1镜像,具体要求如下:(需要用到的软件包在/桌面/附件/容器云附件/gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)修改配置文件中的bind 127.0.0.1为bind 0.0.0.0;
(4)设置Redis免密,并关闭保护模式;
(5)开放端口:6379;
(6)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP到答题框。

[root@master redis]# cat Dockerfile 
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
RUN yum -y install redis*
RUN sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf && sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
EXPOSE 6379
CMD ["redis-server","/etc/redis.conf"] 
[root@master redis]# cd /root/redis/ && docker build -t chinaskill-redis:v1.1 .

【题目2】容器化部署MariaDB

在master节点上编写/root/mariadb/Dockerfile文件构建chinaskill-mariadb:v1.1镜像,具体要求如下:(需要用到的软件包在/桌面/附件/容器云附件/gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)设置数据库密码:123456;
(4)创建数据库gpmall并导入数据库文件gpmall.sql;
(5)设置字符编码:UTF-8;
(6)开放端口:3306;
(7)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP到答题框。

[root@master ~]# cat mariadb/Dockerfile
FROM centos:centos7.5.1804
MAINTAINER chinaskill
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD gpmall.sql /opt/
ADD start.sh /opt/
RUN yum -y install mariadb-server \
 && chmod +x /opt/start.sh \
 && /opt/start.sh
EXPOSE 3306
ENV LC_ALL en_US.UTF-8
CMD mysqld_safe 
[root@master ~]# cat mariadb/start.sh 
#!/bin/bash
mysql_install_db --user=mysql
mysqld_safe &
sleep 3
mysqladmin -u root password '123456'
mysql -uroot -p123456 -e "grant all privileges on *.* to 'root'@'%' identified by '123456';"
mysql -uroot -p123456 -e "create database gpmall;use gpmall;source /opt/gpmall.sql;" 
[root@master mariadb]# docker build -t chinaskill-mariadb:v1.1 .

【题目3】容器化部署Zookeeper

在master节点上编写/root/zookeeper/Dockerfile文件构建chinaskill-zookeeper:v1.1镜像,具体要求如下:(需要用到的软件包在/桌面/附件/容器云附件/gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)开放端口:2181;
(4)设置服务开机自启。
完成后构建镜像,使用构建的镜像运行容器myzookeeper,并提交master节点的用户名、密码和IP到答题框。

[root@master ~]# cat mariadb/Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill
EXPOSE 2181
RUN rm -rf /etc/yum.repos.d/*
COPY ftp.repo /etc/yum.repos.d/ftp.repo
ADD zookeeper-3.4.14.tar.gz /opt
RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel \
 && mv /opt/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/zookeeper-3.4.14/conf/zoo.cfg
CMD ["sh","-c","bin/zkServer.sh start && tail -f /etc/shadow"] 

[root@master mariadb]# docker build -t chinaskill-zookeeper:v1.1 .

【题目4】容器化部署Kafka

在master节点上编写/root/kafka/Dockerfile文件构建chinaskill-kafka:v1.1镜像,具体要求如下:(需要用到的软件包在/桌面/附件/容器云附件/gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)开放端口:9092;
(4)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP到答题框。

[root@master ~]# cat kafka/Dockerfile 
FROM centos:centos7.5.1804
MAINTAINER chinaskill
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD zookeeper-3.4.14.tar.gz /opt/
ADD kafka_2.11-1.1.1.tgz /opt/
RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel \
 && mv /opt/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/zookeeper-3.4.14/conf/zoo.cfg
EXPOSE 9092
CMD ["sh","-c","/opt/zookeeper-3.4.14/bin/zkServer.sh start && /opt/kafka_2.11-1.1.1/bin/kafka-server-start.sh /opt/kafka_2.11-1.1.1/config/server.properties"] 
[root@master kafka]# cd /root/kafka/ && docker build -t chinaskill-kafka:v1.1 . 

【题目5】容器化部署Nginx

在master节点上编写/root/nginx/Dockerfile文件构建chinaskill-nginx:v1.1镜像,具体要求如下:(需要用到的软件包在/桌面/附件/容器云附件/gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)编写/etc/nginx/conf.d/default.conf文件,配置反向代理,将80端口请求转发到8081、8082和8083;
(4)将dist中的文件复制到/usr/share/nginx/html/目录下;
(5)复制所有的jar包到镜像中;
(6)开放端口:80、443、8081、8082、8083;
(7)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP到答题框。

[root@master nginx]# cat Dockerfile 
FROM centos:centos7.5.1804
MAINTAINER chinaskill
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD *.jar /root/
ADD setup.sh /root/
RUN yum -y install nginx java-1.8.0-openjdk java-1.8.0-openjdk-devel \
 && sed -i '1a location /shopping { proxy_pass http://127.0.0.1:8081 ;}' /etc/nginx/conf.d/default.conf \
 && sed -i '2a location /user { proxy_pass http://127.0.0.1:8082 ;}' /etc/nginx/conf.d/default.conf \
 && sed -i '3a location /cashier { proxy_pass http://127.0.0.1:8083 ;}' /etc/nginx/conf.d/default.conf \
 && chmod +x /root/setup.sh \
 && rm -rf /usr/share/nginx/html/ 
EXPOSE 80 8081 8082 8083
ADD dist/ /usr/share/nginx/html/
CMD ["nginx","-g","daemon off;"] 
[root@master nginx]# cat setup.sh 
#!/bin/bash
nohup java -jar /root/shopping-provider-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar /root/user-provider-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar /root/gpmall-shopping-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar /root/gpmall-user-0.0.1-SNAPSHOT.jar &
sleep 5
[root@master nginx]# cd /root/nginx/ && docker build -t chinaskill-nginx:v1.1 .

【题目6】编排部署商城

在master节点上编写/root/chinaskillmall/docker-compose.yaml文件部署,具体要求如下:
(1)容器1名称:mall-mysql;镜像:chinaskill-mariadb:v1.1;端口映射:13306:3306;
(2)容器2名称:mall-redis;镜像:chinaskill-redis:v1.1;端口映射:16379:6379;
(3)容器3名称:mall-kafka;镜像:chinaskill-kafka:v1.1;端口映射:19092:9092;
(4)容器4名称:mall-zookeeper;镜像:chinaskill-zookeeper:v1.1;端口映射:12181:2181;
(5)容器5名称:mall-nginx;镜像:chinaskill-nginx:v1.1;端口映射:83:80,1443:443;自启动所有的jar包程序。
完成后编排部署商城,并能成功访问商城首页。然后提交master节点的用户名、密码和IP到答题框。

[root@master chinaskill]# cat docker-compose.yml 
version: '3.3'
services:
  mall-mysql:
    image: chinaskill-mariadb:v1.1
    ports:
      - 13306:3306
 
  mall-redis:
    image: chinaskill-redis:v1.1
    ports:
      - 16379:6379
 
  mall-kafka:
    image: chinaskill-kafka:v1.1
    ports:
      - 19092:9092

  mall-zookeeper:
    image: chinaskill-zookeeper:v1.1
    ports:
      - 12181:2181

  mall-nginx:
    image: chinaskill-nginx:v1.1
    depends_on:
      - mall-mysql
      - mall-redis
      - mall-zookeeper
      - mall-kafka
    links:
      - mall-mysql:mysql.mall
      - mall-redis:redis.mall
      - mall-zookeeper:zookeeper.mall
      - mall-kafka:kafka.mall
    ports:
      - 83:80 
      - 1443:443
    command: ["sh","-c","/root/setup.sh && nginx && tail -f /etc/shadow"]

【任务3】基于Kubernetes构建持续集成

该公司决定采用GitLab +Jenkins来构建CICD环境,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成GitLab + Jenkins + Kubernetes的CICD环境部署(构建持续集成所需要的所有软件包在软件包Jenkins_offline.tar中)。CICD应用系统架构如下:

在这里插入图片描述

【题目1】安装Jenkins环境

在master节点上使用镜像jenkins/jenkins:2.262-centos部署Jenkins服务,具体要求如下:
(1)容器名称:jenkins;
(2)端口映射:8080:8080;
(3)使用root身份生成容器;
(4)离线安装Jenkins插件;
(5)设置Jenkins用户:chinaskill;密码:000000;
(6)在授权策略中配置“任何用户可以做任何事(没有任何限制)”。
使用chinaskill用户登录Jenkins,完成后提交master节点的用户名、密码和IP到答题框。(需要用到的附件在/桌面/附件/容器云附件/Jenkins_offline.tar)

[root@master ~]# docker run -d --name jenkins -p 8080:8080 -u root \
-v /home/jenkins_home:/var/jenkins_home \         
-v /var/run/docker.sock:/var/run/docker.sock \    
-v /usr/bin/docker:/usr/bin/docker \              
-v /usr/bin/kubectl:/usr/local/bin/kubectl \      
-v /root/.kube:/root/.kube \                       
--restart always jenkins/jenkins:2.262-centos     
[root@master ~]# cp -rfv /opt/plugins/* /home/jenkins_home/plugins/
[root@master ~]# docker restart jenkins
jenkins
查看密码:
[root@master ~]# docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

【题目2】安装Gitlab环境

在master节点上使用镜像gitlab/gitlab-ce:12.9.2-ce.0部署Gitlab服务,具体要求如下:
(1)容器名称:mygitlab;
(2)端口映射:1022:22、81:80、443:443;
(3)容器重启策略:always;
(4)设置root用户及密码;
(5)使用root用户登录Gitlab,密码:00000000;
(6)新建项目ChinaskillProject,将/opt/ChinaskillProject中的代码上传到ChinaskillProject项目中。
完成后提交master节点的用户名、密码和IP到答题框。(需要用到的附件在/桌面/附件/容器云附件/Jenkins_offline.tar)

[root@master ~]# docker run -d -h gitlab -p 1022:22 -p 81:80 -p 443:443 \
     --volume /srv/gitlab/config:/etc/gitlab \
     --volume /srv/gitlab/gitlab/logs:/var/log/gitlab \
     --volume /srv/gitlab/gitlab/data:/var/opt/gitlab \
--restart always --name mygitlab gitlab/gitlab-ce:12.9.2-ce.0

【题目3】配置Jenkins连接Gitlab

配置Jenkins连接Gitlab,具体要求如下:
(1)设置Outbound requests;
(2)生成“Access Tokens”并命名为jenkins;
(3)设置Jenkins取消对’/project’ end-point进行身份验证;
(4)测试Jenkins与Gitlab的连通性。
完成后提交master节点的用户名、密码和IP到答题框。(需要用到的附件在/桌面/附件/容器云附件/Jenkins_offline.tar)

图形化操作

【题目4】配置Jenkins连接maven

配置Jenkins连接maven,具体要求如下:
(1)采用docker in docker的方式在Jenkins内安装maven;
(2)在Jenkins中配置maven信息。
完成后提交master节点的用户名、密码和IP到答题框。(需要用到的附件在/桌面/附件/容器云附件/Jenkins_offline.tar)

[root@master ~]# cp -rf /opt/apache-maven-3.6.3-bin.tar.gz /home/jenkins_home/
[root@master ~]# docker exec -it jenkins bash
[root@344d4fa5b8ea:/]# tar -zxvf /var/jenkins_home/apache-maven-3.6.3-bin.tar.gz -C .
[root@344d4fa5b8ea:/]# mv apache-maven-3.6.3/ /usr/local/maven
[root@344d4fa5b8ea:/]# vi /etc/profile
export M2_HOME=/usr/local/maven 
export PATH=$PATH:$M2_HOME/bin
[root@344d4fa5b8ea /]# vi /root/.bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
source /etc/profile  
fi
[root@344d4fa5b8ea /]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_265, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.265.b01-0.el8_2.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-862.2.3.el7.x86_64", arch: "amd64", family: "unix"

【题目5】配置CI/CD

配置CI/CD,具体要求如下:
(1)新建一个流水线任务ChinaskillProject;
(2)编写流水线脚本,构建ChinaskillProject项目中的gateway和config服务,将构建后的镜像自动上传到Harbor仓库的chinaskillproject项目,并自动发布gateway和config服务到Kubernetes集群的springcloud命名空间下;
(3)配置Webhook;
(4)在Harbor中新建公开项目chinaskillproject。
完成后提交master节点的用户名、密码和IP到答题框。(需要用到的附件在/桌面/附件/容器云附件/Jenkins_offline.tar)

node{

    stage('git clone'){
        //check CODE
        git credentialsId: '97d31dbd-3fc0-4803-8bfe-94422b0d17da', url: 'http://192.168.200.14:81/root/chinaskillproject.git'
    }
    stage('maven build'){
        sh '''/usr/local/maven/bin/mvn package -DskipTests -f /var/jenkins_home/workspace/ChinaskillProjeck'''
    }
    stage('image build'){
        sh '''
              echo $BUILD_ID
              docker build -t 192.168.200.14/chinaskillproject/gateway:$BUILD_ID -f /var/jenkins_home/workspace/ChinaskillProjeck/gateway/Dockerfile  /var/jenkins_home/workspace/ChinaskillProjeck/gateway
              docker build -t 192.168.200.14/chinaskillproject/config:$BUILD_ID -f /var/jenkins_home/workspace/ChinaskillProjeck/config/Dockerfile  /var/jenkins_home/workspace/ChinaskillProjeck/config'''
    }
    stage('upload registry'){
        sh '''docker login 192.168.200.14 -u=admin -p=Harbor12345
            docker push 192.168.200.14/chinaskillproject/gateway:$BUILD_ID
            docker push 192.168.200.14/chinaskillproject/config:$BUILD_ID'''
    }
    stage('deploy Rancher'){
       sh 'sed -i "s/sqshq\\/piggymetrics-gateway/192.168.200.14\\/chinaskillproject\\/gateway:$BUILD_ID/g" /var/jenkins_home/workspace/ChinaskillProjeck/yaml/deployment/gateway-deployment.yaml'
       sh 'sed -i "s/sqshq\\/piggymetrics-config/192.168.200.14\\/chinaskillproject\\/config:$BUILD_ID/g" /var/jenkins_home/workspace/ChinaskillProjeck/yaml/deployment/config-deployment.yaml'
       sh 'kubectl create ns springcloud'
       sh 'kubectl apply -f /var/jenkins_home/workspace/ChinaskillProjeck/yaml/deployment/gateway-deployment.yaml --kubeconfig=/root/.kube/config'
       sh 'kubectl apply -f /var/jenkins_home/workspace/ChinaskillProjeck/yaml/deployment/config-deployment.yaml --kubeconfig=/root/.kube/config'
       sh 'kubectl apply -f /var/jenkins_home/workspace/ChinaskillProjeck/yaml/svc/gateway-svc.yaml --kubeconfig=/root/.kube/config'
       sh 'kubectl apply -f /var/jenkins_home/workspace/ChinaskillProjeck/yaml/svc/config-svc.yaml --kubeconfig=/root/.kube/config'
        
    }
}

【题目6】触发CI/CD

将ChinaskillProject项目中的代码上传到Gitlab中触发构建,完成后提交master节点的用户名、密码和IP到答题框。(需要用到的附件在/桌面/附件/容器云附件/Jenkins_offline.tar)

[root@master ~]# docker cp /opt/repository/ jenkins:/root/.m2/
[root@master ~]# cd /opt/ChinaskillProject/
[root@master ChinaskillProject]# git add .
[root@master ChinaskillProject]# git commit -m "Initial commit"
# On branch master
nothing to commit, working directory clean
[root@master ChinaskillProject]# git push -u origin master
Username for 'http://192.168.200.14:81': root
Password for 'http://root@192.168.200.14:81': 
Branch master set up to track remote branch master from origin.
Everything up-to-date

【任务4】Kubernetes容器云平台部署与运维

【题目1】Deployment管理

在master节点/root目录下编写yaml文件nginx-deployment.yaml,具体要求如下:
(1)Deployment名称:nginx-deployment;
(2)命名空间:default;
(3)Pod名称:nginx-deployment,副本数:2;
(4)网络:hostNetwork;
(5)镜像:nginx;
(6)容器端口:80
完成后使用该yaml文件创建Deployment,并提交master节点的用户名、密码和IP到答题框。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: default
  labels: 
    app: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-deployment
  template:
    metadata:
      labels:
        app: nginx-deployment
    spec:
      hostNetwork: true
      containers:
      - name: nginx-deployment
        image: 192.168.100.10/library/nginx:latest
        ports:
        - containerPort: 80

【题目2】ReplicaSet管理

在master节点/root目录下编写yaml文件replicaset.yaml,具体要求如下:
(1)Replicaset名称:nginx;
(2)命名空间:default;
(3)副本数:3;
(4)镜像:nginx。
完成后使用该yaml文件创建ReplicaSet,并提交master节点的用户名、密码和IP到答题框。

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx
  namespace: default
spec:
  replicas: 3
  selector: 
    app: nginx
  template:
    metadata:
      labels: 
        app: nginx
    spec:
      containers:
        - name: nginx
          image: 192.168.200.3/library/nginx:latest 
##(别问我为啥写的是RC,因为写了RS得0分)

【题目3】健康检查

在master节点/root目录下编写yaml文件liveness_httpget.yaml,具体要求如下:
(1)Pod名称:liveness-http;
(2)命名空间:default;
(3)镜像:nginx;端口:80;
(4)容器启动时运行命令“echo Healty > /usr/share/nginx/html/healthz”;
(5)httpGet请求的资源路径为/healthz,地址默认为Pod IP,端口使用容器中定义的端口名称HTTP;
(6)启动后延时30秒开始运行检测;
(7)每隔3秒执行一次liveness probe。
完成后使用该yaml文件创建Pod,并提交master节点的用户名、密码和IP到答题框。

apiVersion: v1
kind: Pod
metadata:
  name: liveness-http
  namespace: default
spec:
  containers:
    - name: nginx
      image: 192.168.100.10/library/nginx:latest
      ports:
        - containerPort: 80
      args:
        - /bin/sh
        - -c
        - echo Healty > /usr/share/nginx/html/healthz
      livenessProbe:
        httpGet:
          path: /healthz
          port: http
        initialDelaySeconds: 30
        periodSeconds: 3

【题目4】LimitRange管理

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
  namespace: default
spec:
  limits:
  - default:
      memory: 50Gi
      cpu: 5
    defaultRequest:
      memory: 1Gi
      cpu: 1
    type: Container

【题目5】CronJob管理

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐