• 使用minikube在本机测试kubernetes


    本文主要讲解 minikube(kubernetes单机部署版)的安装,启动。并通过它来简单测试 kubernetes 怎么部署一个服务。

    简介

    kubernetes是一个Google开源的容器编排系统,用于自动部署,扩展和管理容器化应用程序。

    minikube 是一个方便在本地运行 kubernetes 的工具,它通过在本机 VM 里运行一个单节点 kubernetes 集群,帮助我们尝试 kubernetes和适于开发。

    下面示例是基于Ubuntu 16.04 安装minikube

    安装 Docker CE

    请参考 Ubuntu & Docker 环境准备

    安装 kubectl

    curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
    
    # 赋二进制文件执行权限.
    chmod +x ./kubectl
    
    # 将二进制文件移到 PATH 中
    sudo mv ./kubectl /usr/local/bin/kubectl
    
    kubectl version
    

    安装 minikube

    curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
    
    minikube version
    

    启动 minikube

    sudo minikube start --vm-driver=none
    

    首次启动会下载localkube等,如果需要网络代理,请通过下面方式

    #设置系统代理
    export http_proxy=http://address:port
    export https_proxy=http://address:port
    
    # 安装
    minikube start --vm-driver=none
    #当出现 *下载完成 开启启动集群* 的时候,按 ctrl+c 停止
    
    #解除系统代理
    unset http_proxy
    unset https_proxy
    
    #清理
    kubeadm reset
    
    #重新运行
    minikube start --vm-driver=none
    
    

    启动 dashboard

    minikube dashboard --url
    

    启动一个服务

    # --port=8080是容器的端口
    kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
    
    kubectl expose deployment hello-minikube --type=NodePort
    
    kubectl get pod
    
    curl $(minikube service hello-minikube --url)
    
    

    Kubernetes 三种暴露服务的方式:

    • LoadBlancer Service:LoadBlancer Service 是 kubernetes 深度结合云平台的一个组件;当使用 LoadBlancer Service 暴露服务时,实际上是通过向底层云平台申请创建一个负载均衡器来向外暴露服务;目前 LoadBlancer Service 支持的云平台已经相对完善,比如国外的 GCE、DigitalOcean,国内的 阿里云,私有云 Openstack 等等,由于 LoadBlancer Service 深度结合了云平台,所以只能在一些云平台上来使用。
    • NodePort Service:NodePort Service 顾名思义,实质上就是通过在集群的每个 node 上暴露一个端口,然后将这个端口映射到某个具体的 service 来实现的,虽然每个 node 的端口有很多(0~65535),但是由于安全性和易用性(服务多了就乱了,还有端口冲突问题)实际使用可能并不多。
    • Ingress:Ingress 这个东西是 1.2 后才出现的,通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务。

    删除服务

    kubectl delete services hello-minikube
    
    kubectl delete deployment hello-minikube
    
    minikube stop
    
    

    参考

  • 相关阅读:
    Rabbitmq
    Python() with语法糖
    Python()-类的专有方法之双下划线方法
    git配置踩过的坑
    https 协议 和 ssh 协议在使用上的差别
    Definite dimensionality
    java中定义和声明的区别
    数据库中表的数据逻辑删除的方案
    StringBuffer、StringBuilder和String的区别?
    常量池中的String与堆中的String
  • 原文地址:https://www.cnblogs.com/royzshare/p/9323091.html
Copyright © 2020-2023  润新知