栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

k8s作业3

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s作业3

Q1: 创建一个deployment 副本数 3,然后滚动更新镜像版本,并记录这个更新记录,最后再回滚到上一个版本
• 名称: nginx
• 镜像版本: 1.16
• 更新镜像版本: 1.17

A1:

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
  namespace: aliang-cka
spec:
  replicas: 3
  selector:
    matchLabels:
      project: demo
      app: java
  template:
    metadata:
      labels:
        project: demo
        app: java
    spec:
      containers:
      - name: web
        image: nginx:1.16 

kubectl apply -f deployment.yaml -n aliang-cka

kubectl get pods -n aliang-cka

 滚动更新:kubectl set image deployment/nginx nginx=nginx:1.17 -n aliang-cka

记录:kubectl describe deployment nginx -n aliang-cka

 回滚:

查看历史版本记录:ubectl rollout history deployment/nginx -n aliang-cka

回滚上一个版本:kubectl rollout undo deployment/nginx -n aliang-cka

 

此题考查k8s对应用的滚动升级与回滚
Q2: 给web deployment扩容副本数为3

A2:当前web deployment副本数为1

在线扩容副本数为3:kubectl scale deployment web --replicas=3 -n aliang-cka


 

Q3: 把deployment输出json文件,再删除创建的deployment

导出json文件: kubectl get deployment web -n aliang-cka -o json

{
    "apiVersion": "apps/v1",
    "kind": "Deployment",
    "metadata": {
        "annotations": {
            "deployment.kubernetes.io/revision": "1",
            "kubectl.kubernetes.io/last-applied-configuration": "{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"web","namespace":"aliang-cka"},"spec":{"replicas":1,"selector":{"matchLabels":{"app":"web","project":"demo"}},"template":{"metadata":{"labels":{"app":"web","project":"demo"}},"spec":{"containers":[{"image":"nginx:1.16","name":"web"}]}}}}n"
        },
        "creationTimestamp": "2021-11-04T07:35:19Z",
        "generation": 2,
        "name": "web",
        "namespace": "aliang-cka",
        "resourceVersion": "313957",
        "uid": "af35cd1e-0b02-4adb-960c-0aa7f46c6f6a"
    },
    "spec": {
        "progressDeadlineSeconds": 600,
        "replicas": 3,
        "revisionHistoryLimit": 10,
        "selector": {
            "matchLabels": {
                "app": "web",
                "project": "demo"
            }
        },
        "strategy": {
            "rollingUpdate": {
                "maxSurge": "25%",
                "maxUnavailable": "25%"
            },
            "type": "RollingUpdate"
        },
        "template": {
            "metadata": {
                "creationTimestamp": null,
                "labels": {
                    "app": "web",
                    "project": "demo"
                }
            },
            "spec": {
                "containers": [
                    {
                        "image": "nginx:1.16",
                        "imagePullPolicy": "IfNotPresent",
                        "name": "web",
                        "resources": {},
                        "terminationMessagePath": "/dev/termination-log",
                        "terminationMessagePolicy": "File"
                    }
                ],
                "dnsPolicy": "ClusterFirst",
                "restartPolicy": "Always",
                "schedulerName": "default-scheduler",
                "securityContext": {},
                "terminationGracePeriodSeconds": 30
            }
        }
    },
    "status": {
        "availableReplicas": 3,
        "conditions": [
            {
                "lastTransitionTime": "2021-11-04T07:35:19Z",
                "lastUpdateTime": "2021-11-04T07:35:21Z",
                "message": "ReplicaSet "web-7dbc5cbbfb" has successfully progressed.",
                "reason": "NewReplicaSetAvailable",
                "status": "True",
                "type": "Progressing"
            },
            {
                "lastTransitionTime": "2021-11-04T08:13:16Z",
                "lastUpdateTime": "2021-11-04T08:13:16Z",
                "message": "Deployment has minimum availability.",
                "reason": "MinimumReplicasAvailable",
                "status": "True",
                "type": "Available"
            }
        ],
        "observedGeneration": 2,
        "readyReplicas": 3,
        "replicas": 3,
        "updatedReplicas": 3
    }
}

删除deployment:    kubectl delete deployment web -n aliang-cka


 

Q4: 生成一个deployment yaml文件保存到/opt/deploy.yaml
• 名称: web
• 标签: app_env_stage=dev

A4: kubectl create deployment web  --image=nginx:1.16 -o yaml --dry-run=client > /opt/deploy.yaml

修改标签 : vim /opt/deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app_env_stage: dev
  name: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app_env_stage: dev
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app_env_stage: dev
    spec:
      containers:
      - image: nginx:1.16
        name: nginx
        resources: {}
status: {}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/450252.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号