zoukankan      html  css  js  c++  java
  • Kubernetes学习整理

    修改镜像仓库

    官方提供的时google源,显然是无法使用的。这里需要改成国内的源

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=0
    EOF

    一些重要特性

    从1.8 开始,k8s原生支持Spark

    通过cron job处理机器学习、大数据和其他高级计算负载也是一个好途径

    1.8 alpha版特性:

    优先级(资源有限时的优雅降级)

    1.6引入了节点自动污点标记:让某节点不参与资源调度


     K8S编排文件

    pod   pod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
    

    ReplicationController  rc.yaml

    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: nginx
    spec:
      replicas: 3
      selector:
        app: nginx
      template:
        metadata:
          name: nginx
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
    

     service  src.yaml

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: rabbitmq
      name: rabbitmq-service
    spec:
      ports:
      - port: 5672
      selector:
        app: taskQueue
        component: rabbitmq
    

     

    负载均衡服务 loadbalance.yaml

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: flower
      name: flower-service
    spec:
      ports:
      - port: 5555
      selector:
        app: taskQueue
        component: flower
      type: LoadBalancer

      


     kubectl使用

     获取某版本的kubectl(更改粗体部分的版本号即可)

    wget https://storage.googleapis.com/kubernetes-release/release/v1.7.5/bin/linux/amd64/kubectl

    namespace的使用

    使用kubectl 时,默认的namespace是default,如果要查看所有或某个namespace下的资源,需要特殊指定

    kubectl get service --all-namespaces
    kubectl get rc --namespace testGroup

    扩容

    kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT RESOURCE
    

      

    滚动升级 (可回滚 命令 --rollback)

    kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [options]
    //例:
    kubectl rolling-update nginx --image=nginx:v2

    迁移镜像(将某节点的某些镜像移动到其他节点并加载)

    1.makeManifest.sh   作用是生成镜像清单文件 manifest.txt,然后根据需要 保留要迁移的镜像列表  

    targetFile=./manifest.txt
    
    echo '' > $targetFile
    IFS=" "
    index=0
    docker images | awk '{print $1,$2}'|while read line
    do
    if [ $index -gt 0 ]
    then
      arr=($line)
      if [[ "<none>" != ${arr[0]} && "<none>" != ${arr[1]} ]]
      then
        echo ${arr[0]}":"${arr[1]} >> $targetFile
      fi
    fi
    index=1
    done

    2.saveImages.sh  作用是根据清单下载镜像,并生成镜像加载脚本loadImage.sh

    targetFile=./manifest.txt
    loadFile=./loadImage.sh
    
    echo "" > $loadFile
    
    cat $targetFile|while read line
    do
      docker save $line > ./${line////_}.tar
      echo "docker load < ${line////_}.tar" >> $loadFile
    done

    3.将loadImage.sh和下载的镜像移动到目标节点的同一路径下并执行loadImage.sh即可

     
     
     
     
     
     
     
     
     
  • 相关阅读:
    PHP_Code_challenge(代码审计)
    超全局变量$GLOBALS
    upload-labs(文件上传)
    CTF bugku 论剑场 web20
    多次Printf()是否使用用同一栈帧的参数?
    (转载于度盘)小迪安全渗透-学习讲义
    SQL数据库操作练习(2)
    .htaccess绕过
    PHP序列化思考(9.14已修改)
    SQL数据库操作练习(1)
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/7867458.html
Copyright © 2011-2022 走看看