建立docker镜像

为了方便起见,这里直接使用一个js网页作为应用,以此创建镜像

hello world网页

创建server.js,输入以下代码创建helloworld网页:

var http = require('http');

var handleRequest = function(request, response) {
console.log('Received request for URL: ' + request.url);
response.writeHead(200);
response.end('Hello World!');
};
var www = http.createServer(handleRequest);
www.listen(8080);

Dockerfile

创建Dockerfile文件,配置镜像:

FROM node:6.9.2
EXPOSE 8080
COPY server.js .
CMD node server.js

其中,FROM是从官方镜像库取得node的镜像,EXPOSE表示暴露本容器的8080端口,COPY将server.js加入容器,CMD为容器中执行的命令

更详细的Dockerfile写法见官方文档

创建镜像

配置好Dockerfile后,就可以使用docker的build命令根据Dockerfile的内容创建一个镜像:

docker build -t hello-node:v1 .

这里注意不要遗漏最后的.

在Kubernetes上以该镜像创建一个POD

在K8S集群配置完毕后,执行

kubectl run hello-node --image=hello-node:v1 --port=8080 --image-pull-policy=Never

即可在K8S上建立一个新的运行刚刚建立的镜像的POD

但是此时由于POD默认不暴露在外部,因此我们无法观察到node的输出,为此需要创建一个service将该POD的端口暴露出来

访问该POD

Kubernetes Service

Service有几个种类,默认的是cluster-ip,即只能通过pod在集群内部的IP地址进行对service的访问

第二种是nodeport,即在每一个Node上暴露出一个端口:nodePort,外部网络可以通过(任一Node)[NodeIP]:[NodePort]访问到后端的Service。

第三种是loadbalancer,请求底层云平台创建一个负载均衡器,将每个Node作为后端,进行服务分发。该模式需要底层云平台(例如GCE)支持

最简单的就是直接开启一个默认的clusterip的service,在master上直接通过集群内部IP访问helloworld:

kubectl expose deployment hello-node --port=8080 --target-port=8080

其他方式比如NodePort可以通过--type=NodePort参数指定

进行访问

在创建好service之后,就可以使用kubectl get service查看当前运行的service,其中可以看到hello-node的ClusterIP,在浏览器中访问该IP:8080即可看到hello world!

在K8S上跑一个helloworld的更多相关文章

  1. 用Solidity在Truffle上构建一个HelloWorld智能合约

    原文地址:石匠的blog Truffle的环境安装在前文已经整理,这次用Solidity在Truffle写一个HelloWorld以太坊智能合约,并在testrpc上进行测试.当前的软件版本信息如下: ...

  2. linux上通过lighttpd上跑一个C语言的CGI小页面以及所遇到的坑

    Common Gateway Interface如雷贯耳,遗憾的是一直以来都没玩过CGI,今天尝试一把.Tomcat可以是玩CGI的,但得改下配置.为了方便,直接使用一款更轻量级的web服务器ligh ...

  3. 使用Rancher在K8S上部署高性能PHP应用程序

    介 绍 PHP是网络上最流行的编程语言之一,许多被广泛使用的内容管理系统都使用它开发,如WordPress和Drupal,并为现代服务器端框架(如Laravel和Symfony)提供核心代码. 尽管P ...

  4. 是时候考虑让你的Spark跑在K8S上了

    [摘要] Spark社区在2.3版本开始,已经可以很好的支持跑着Kubernetes上了.这样对于统一资源池,提高整体资源利用率,降低运维成本(特别是技术栈归一)有着非常大的帮助.这些趋势是一个大数据 ...

  5. 记录一个奇葩的问题:k8s集群中master节点上部署一个单节点的nacos,导致master节点状态不在线

    情况详细描述; k8s集群,一台master,两台worker 在master节点上部署一个单节点的nacos,导致master节点状态不在线(不论是否修改nacos的默认端口号都会导致master节 ...

  6. tomcat6~7~8用户设置及一个独立服务器上跑多个tomcat配置JVM设置优化亲测

    tomcat6管理用户 在tomcat `安装根目录`/conf/tomcat-users.xml

  7. 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker

    如果想在一台电脑上搭建一个多节点的Hadoop集群,传统的方式是使用多个虚拟机.但这种方式占用的资源比较多,一台笔记本能同时运行的虚拟机的数量是很有限的.这个时候我们可以使用Docker.Docker ...

  8. Python3.7.2,在Linux上跑来跑去的,是在升级打怪么?

    Python3.7.2,在Linux上跑来跑去的,是在升级打怪么?   前不久,发布了Python在Windows(程序员:Python学不学?完全没必要纠结)和Mac OS(我是Python,P派第 ...

  9. $Eclipse+Tomcat搭建本地服务器并跑通HelloWorld程序

    本文结构:(一)环境准备(二)在Eclipse里创建Dynamic Web工程(三)写一个简单的Servlet类并配置web.xml(四)运行程序 (一)环境准备 1.Eclipse:要使用for J ...

随机推荐

  1. oracle服务端字符集

    一.oracle服务端字符集 SQL> select userenv('language') from dual ; USERENV('LANGUAGE')------------------- ...

  2. dedecms 调用全部导航+二级导航

    {dede:channelartlist row=5 typeid='top'} <li><a class="hide" href="{dede:fie ...

  3. DockerScan:Docker安全分析&测试工具

    DockerScan:Docker安全分析&测试工具 今天给大家介绍的是一款名叫DockerScan的工具,我们可以用它来对Docker进行安全分析或者安全测试. 项目主页 http://gi ...

  4. Linux中断流程分析

    裸机中断: 1.中断流入口 2.事先注册中断处理程序 3.根据中断源编号,调取处理程序 irq_svc:1.等到产生中断源的编号(每一个中断号都有一个描述结构) 2.

  5. Windows 10安装Python 2.7和MySQL-python

    1. 安装Python Download Python 2. 安装MySQL-python pip install wheel (应该是可选) pip install mysqlclient==1.3 ...

  6. Maven 技巧知多少

    Maven是一种帮助我们快速构建项目的小工具,它可以解决我们在项目过程中手动导包造成的版本不一致的问题,以及找包困难等问题,同时通过Maven创建的项目都有固定的目录格式,使得约定优于配置,我们通过固 ...

  7. Let's write a framework.

    Let's write a framework. create a model var model={a:1,b:'b'} let's create a router, router maps url ...

  8. magento购物车添加减少数量 实时更新购物车

    magento实时更新购物车商品数量 <td> <button onclick="addQtyone();" type="submit"> ...

  9. [易学易懂系列|rustlang语言|零基础|快速入门|(15)|Unit Testing单元测试]

    [易学易懂系列|rustlang语言|零基础|快速入门|(15)] 实用知识 Unit Testing单元测试 我们知道,在现代软件开发的过程中,单元测试对软件的质量极及重要. 今天我们来看看Rust ...

  10. DeepFaceLab更新至2019.12.23

    本次更新主要是增加了脸图样本生成器,一般来说我们提取脸图之后会放到aligned文件夹里面,训练的时候会加载这些脸图,若是图片少还行,一旦图片太多加载效率低不说,同样会影响了训练效率.现在好了,我们只 ...