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即可

     
     
     
     
     
     
     
     
     
  • 相关阅读:
    31 把数组排成最小的数 + 仿函数的写法就记忆这个就行了
    30 整数中1出现的次数(从1到n整数中1出现的次数)这题很难要多看*
    29 连续子数组的最大和
    c/c++ struct的大小以及sizeof用法
    28 最小的K个数
    27 数组中出现次数超过一半的数字
    26 字符串的排列
    Python 实例2—购物车
    python_threading模块实现多线程详解(转)
    Ubuntu 16.04 安装Postman
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/7867458.html
Copyright © 2011-2022 走看看