参考:http://blog.csdn.net/qq1010885678/article/details/48832067

一个简单的nginx服务器

先决条件:你需要拥有的是一个部署完毕并可以正常运行的k8s集群。

1.拉 nginx 镜像,上传到私服

方案一:使用界面 k8s dashboard 创建

1.创建rc :

创建完后:

两个同时创建.

因为创建rc的时候 选择了内部服务。

如图:

我们尝试在 minion节点上 访问

nginx

方式一:    Cluster IP+port  注意配置的是 targetPort 即容器内的端口是80

可以访问!

方式二:通过 pod的 Cluster IP+containerPort

实践证明 :都可以!

注意:2个都叫  Cluster IP ,但是实际上 后面的是 容器的ip,签名的应该 是 另外的一个ip

2个ip的区别 未来需要继续弄清楚。

另外:这三个IP都不是 minion的节点的 IP,192.168.179.135

节点的IP 80 或81端口都不行的。

据此:尝试创建 一个外部服务

测试:

以上三个IP都可以。

重点:  minion节点的IP+ 32108 端口居然可以访问

方案二:通过yaml文件创建  rc和svc    即rc和service   本方法没验证,但是yaml是从 界面里拷出来的。理论上可以的

1.创建rc

Replication Controller        {5}

kind    :    ReplicationController

apiVersion    :    v1

    metadata        {8}

name    :    nginx-hui

namespace    :    default

selfLink    :    /api/v1/namespaces/default/replicationcontrollers/nginx-hui

uid    :    80f386f8-c206-11e7-859d-000c29e983de

resourceVersion    :    55282

generation    :    1

creationTimestamp    :    2017-11-05T08:51:24Z

    labels        {1}

app    :    nginx-hui

    spec        {3}

replicas    :    2

    selector        {1}

app    :    nginx-hui

    template        {2}

    metadata        {3}

name    :    nginx-hui

creationTimestamp    :    null

    labels        {1}

app    :    nginx-hui

    spec        {5}

    containers        [1]

    0        {6}

name    :    nginx-hui

image    :    192.168.179.133:80/nginx

    resources        {0}
(empty object) terminationMessagePath : /dev/termination-log imagePullPolicy : Always securityContext {1} privileged : false restartPolicy : Always terminationGracePeriodSeconds : 30 dnsPolicy : ClusterFirst securityContext {0}
(empty object) status {5} replicas : 2 fullyLabeledReplicas : 2 readyReplicas : 2 availableReplicas : 2 observedGeneration : 1

2.创建svc

Service        {5}

kind    :    Service

apiVersion    :    v1

    metadata        {7}

name    :    nginx-hui

namespace    :    default

selfLink    :    /api/v1/namespaces/default/services/nginx-hui

uid    :    80fe1ae1-c206-11e7-859d-000c29e983de

resourceVersion    :    55241

creationTimestamp    :    2017-11-05T08:51:24Z

    labels        {1}

app    :    nginx-hui

    spec        {5}

    ports        [1]

    0        {4}

name    :    tcp-81-80-8yb4e

protocol    :    TCP

port    :    81

targetPort    :    80

    selector        {1}

app    :    nginx-hui

clusterIP    :    10.254.239.9

type    :    ClusterIP

sessionAffinity    :    None

    status        {1}

    loadBalancer        {0}
(empty object)

实际是在 服务器上  master上 创建2个yaml文件

rc.yaml  和svc.yaml

然后用

kubectl create -f xx.yaml
分别创建 rc和service

方案三:下面是采用命令方式创建:(未成功)

2. 在Master节点上使用kubectl命令来启动一个运行着nginx服务器的容器:

kubectl run my-nginx --image=192.168.179.133:80/nginx --replicas=2 --port=80

注:

以上命令会让节点上的Docker从nginx这个image上启动一个容器监听80端口,此为一个pod。
而replicas=2则表示会起两个一模一样的pod。
 
k8s会确保你的应用是一直运行的,当容器运行失败时,k8s会自动重启容器,当整个节点失败时,会在另外一个健康的节点启动这个容器。
 
界面查看 是2个pods

 

3.通过端口将应用连接到Internet上

以下命令将上一步骤中的nginx容器连接到公网中:

kubectl expose rc my-nginx --port=80 --type=LoadBalancer

注:rc即Replication Controller,上一步骤中的命令其实会自动创建一个名为my-nginx的rc来确保pod的数量维持在2个。

实际测试中  没有这个rc  叫my-nginx

使用以下命令来查看rc:
 
$ kubectl get rc
 

也可以界面:

kubernetes 创建nginx 容器的更多相关文章

  1. Docker(八)-Docker创建Nginx容器

    获取Nginx镜像 最简单的方法就是通过 docker pull nginx 命令来创建 Nginx容器. $ sudo docker pull nginx 或者: $ sudo docker pul ...

  2. docker 使用:创建nginx容器

    在上一节中了解了镜像和容器.对于镜像可以这样的理解,镜像相当于一个光盘,里面刻录了一个系统这个系统已经带有相关的服务了. 容器是通过镜像这个光盘安装的一个操作系统,光盘预加了什么服务,容器就有什么服务 ...

  3. kubernetes 创建tomcat 容器

    方案一: 使用k8s dashboard 创建rc 1.  界面操作 提示:暂时 忽略 查看: 2.测试 由于是外部服务 直接用  节点的ip访问: 同样也是   第二个端口可以访问.感觉 跟之前的提 ...

  4. toolbox 中创建nginx服务器,使用localhost不能访问

    使用toolbox 工具使用docker创建nginx 容器,使用localhost不能访问? 使用docker run --rm -d --name dweb  -p 80:80 nginx 命令执 ...

  5. Kubernetes创建挂载共享存储的容器

    原文链接:https://www.58jb.com/html/135.html 在上一次的Mysql容器中,已经使用过了配置宿主机目录挂载的方式,这样虽然方便但是不够安全:一般都是把数据存储在远程服务 ...

  6. 创建新镜像-从已创建的容器中更新镜像并提交镜像(以Nginx为例)

    目标:现在我们主要是修改nginx的index.html,然后做一个新镜像 1.基于nginx:1.12运行一个容器 docker run -d -p 8080:80 --name nginx ngi ...

  7. Docker Kubernetes 创建管理 Deployment

    Docker Kubernetes YAML文件创建容器 通过创建Deployment来管理pods从而创建容器.它会同时创建容器.pod.以及Deployment ! 环境: 系统:Centos 7 ...

  8. Kubernetes+Docker+Istio 容器云实践

    随着社会的进步与技术的发展,人们对资源的高效利用有了更为迫切的需求.近年来,互联网.移动互联网的高速发展与成熟,大应用的微服务化也引起了企业的热情关注,而基于Kubernetes+Docker的容器云 ...

  9. .NET Core+MySql+Nginx 容器化部署

    .NET Core容器化@Docker .NET Core容器化之多容器应用部署@Docker-Compose .NET Core+MySql+Nginx 容器化部署 GitHub-Demo:Dock ...

随机推荐

  1. 发布库到仓库 maven jcenter JitPack MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. Windows上的git、github部署及基本使用方法

    1.介绍 Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本 ...

  3. “正在注册字体”问题解决

    在win7下安装老软件,卡在"正在注册字体"了,检查发现是ocx注册有问题. 重写一个ocx注册的批处理就好了. 如: regsvr32 "C:\Program File ...

  4. PHP中日志相关处理

    内置函数: 1.error_log() ,第三个参数不能是绝对路径,必须是相对路径.写入文件: error_log("warn:\nthis is a warn!\n",3,&qu ...

  5. windows多线程同步--事件

    推荐参考博客:秒杀多线程第六篇 经典线程同步 事件Event   事件是内核对象,多用于线程间通信,可以跨进程同步 事件主要用到三个函数:CreateEvent,OpenEvent,SetEvent, ...

  6. 用MATLAB生成模糊控制离线查询表

    实时采样得到的数据经过模糊化处理后输入机器,通过查询模糊规则表便可得到应有的输出模糊量,从而避免了近似推理过程.实际应用中,特别是在控制系统较为简单而采用单片机控制时,常常采用这种查表法. 模糊控制表 ...

  7. javascript验证QQ号、邮箱和手机号码

    //验证QQ号码5-11位 function isQQ(qq) { var filter = /^\s*[.0-9]{5,11}\s*$/; if (!filter.test(qq)) { retur ...

  8. ios中输入框的父类--文本框,DataPick,pickerview

    父控制器 #import <UIKit/UIKit.h> #import "ScrollViewExt.h" @interface BaseKeyBoardCtrl : ...

  9. 一篇文章让你读懂iOS和Android的历史起源

    智能手机虽说是移动电话,但我们完全可以将其作为小型化的电脑来思考.这样一来也能够显示出智能手机OS的高性能.我们首先一起来回顾下智能手机OS的历史. OS的黎明期 其实在很早之前就已经有这样的想法,即 ...

  10. Android studio的主题颜色修改

    1.选择喜欢的主题 http://color-themes.com/?view=index 好几十款,总有一款你喜欢 2.下载你喜欢的主题,注意是jar文件 .File -> Import Se ...