续上文,在部署docker之前需要预习下docker命令

docker基础命令

docke pull Nginx#下载Nginx镜像

docke push 192.168.161.117:5000/os/centos#上传本地制作的镜像到本地镜像库

docker images #查看下载到本地的镜象

docker tag 980e0e4c79ec 192.168.161.117:5000/os/centos #将Image id镜像为980e0e4c79ec的镜像标记为192.168.161.117:5000/os/centos

docker run -it Nginx /bin/bash #进入交互模式下的Nginx容器,相当于一个小的linux系统,里面只安装了Nginx

docker开启sshd

通过docker指定容器id或者kubectl指定pod连接到相应的docker容器,这样操作不是很方便。开启docker容器的sshd服务,通过宿主机的端口映射docker容器的sshd服务的内部端口,可以实现宿主机的端口下访问内部docker。

docker run -d -p 10022:22 centos_sshd /usr/sbin/sshd -D #使用安装了sshd 的tomcentos_sshd镜像,启动时启动sshd服务。10022:22前者是宿主机的端口,后者是docker容器的端口

ssh宿主机 -p10022 #远程登录docker容器

搭建本地镜像库

docker pull registry #下载registry镜像,使用docker直接部署本地镜像库

docker run -d -p 5000:5000 registry ##以registry 镜像启动docker容器,搭建本地镜像库,监听5000端口

curl -X GET http://127.0.0.1:5000/v2/_catalog ##查看本地仓库已push镜像


部署k8s pod与service

以Nginx镜像为示例,通过docke pull Nginx下载镜像到本地


k8s部署支持yaml,json,命令,dashboard管理平台4种方式部署pod\service
1 .kubectl run my-Nginx --image=Nginx --replicas=2 --port=80


2. ./kubectl create -f Nginx_svc.json 或者kubectl expose deployment my-Nginx --type=NodePort --name=my-Nginx-serv

3.命令完成后,通过kubectl get pod 查看pod

NAME READY STATUS RESTARTS AGE
my-Nginx-2494149703-7040i 1/1 Running 0 4d
my-Nginx-2494149703-8cwj9 1/1 Running 2 4d

4.命令完成后,通过kubectl get service查看service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-Nginx-serv 10.10.10.112 <nodes> 8080/TCP 5d

5.如果pod运行失败,上图中status不为Running状态。通过kubectl describle pod my-Nginx-2494149703-7040i查看失败日志
Name: my-Nginx-2494149703-7040i
Namespace: default
Node: 192.168.161.117/192.168.161.117
Start Time: Thu,05 Jan 2017 14:52:26 +0800
Labels: pod-template-hash=2494149703
run=my-Nginx
Status: Running
IP: 10.1.83.9
Controllers: replicaset/my-Nginx-2494149703
Containers:
my-Nginx:
Container ID: docker://aa0540cabb114f6291399b1675f9e84fdb8baffcc8c64f1689f65ec63b5f8a49
Image: Nginx
Image ID: docker://sha256:01f818af747d88b4ebca7cdabd0c581e406e0e790be72678d257735fad84a15f
Port: 80/TCP
State: Running
Started: Thu,05 Jan 2017 14:52:29 +0800
Ready: True
Restart Count: 0
Environment Variables: <none>
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
No volumes.
QoS Tier: BestEffort
No events.

6.通过./kubectl exec my-Nginx-2494149703-7040i -i -t -- bash -il进行docker容器调试

root@my-Nginx-2494149703-7040i:/# pwd
/
root@my-Nginx-2494149703-7040i:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
root@my-Nginx-2494149703-7040i:/# ps -ef|grep Nginx
root 1 0 0 Jan05 ? 00:00:00 Nginx: master process Nginx -g daemon off;
Nginx 7 1 0 Jan05 ? 00:00:00 Nginx: worker process
root 44 34 0 08:27 ? 00:00:00 grep Nginx
root@my-Nginx-2494149703-7040i:/# find / -name error.log
/var/log/Nginx/error.log

6.通过dashboard查看nodes、serive、pod

7.访问Nginx
通过内网访问 ,30451端口是service配置负载均衡类型为nodePort后,可以通过宿主机Ip+端口访问service.service 实现负载均衡访问Pod .由Pod由多个docker组成,此处ngnx一个pod由一个docker组成。
访问 http://192.168.161.117:30451/ 可以返回welcome to Nginx画面



注意services图 中clusterIp 与internal endpoints内容。cluster ip是10.10.10.112,这是集群的内网Ip,在安装了kubelproxy的主机上可以访问。internal endpoints中的30451端口,宿主机局域网内任意主机都可以访问。
通过内部集群访问,ip与端口取自第4步中CLUSTER-IP与PORT或者对应本图中的cluster ip与internal endpoints内容的端口8080 curl http:// 10.10.10.112:8080/




pod内部Nginx容器也会分配内部Ip10.1.83.9 与10.1.83.7子网,如果node有多台。每台宿主机都是一个独立子网段,centos7下安装与部署kubernets1.3(一)有描述。

访问以下地址,均能返回welcome to Nginx的成功界面
curlhttp:// 10.10.83.1:8080/
curlhttp:// 10.10.83.7:8080/

更重要的是每个宿主机的独立子网,是相互能互通的。通过docker run -it centos /bin/bash到两台不同宿主机上,分别进行centos操作系统命令界面,相互ping对方Ip是可以相互ping通的。相互访问Nginx pod的访问地址也是能通的。
后续,再续写测试子网互通的例子+制做tomcat 应用镜像的示例。

centos安装kubernetes1.3(二)的更多相关文章

  1. HTML5页面无缝闪开的问题及解决方案

    这篇文章主要介绍了HTML5页面无缝闪开方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  3. ios – 1天后firebase crashlytics报告中没有数据

    解决方法对于那些仍然有问题的人.检查您的podfile中是否还有pod’Firebase/Crash’.当我删除旧的Firebase崩溃报告时,我的问题已修复.

  4. ios – 当我在xCode 5中验证我的应用程序时,获取错误的广告标识符[IDFA]错误

    在验证我的应用程序时,我收到错误消息“广告标识符使用不当.您的应用包含广告标识符[IDFA]API,但您尚未遵守iOS中的限制广告跟踪设置.”我在广告标识符的准备上传页面上检查了“是”.我在我的应用程序中使用revmob广告和flurry分析(COCOS2D-X项目).如何解决这个问题,我已经尝试了很多但没有成功.我使用下面的代码进入appdelegate但没有运气.解决方法这个IDFA问题今天仍

  5. 将POD规范属性与其Xcode配置中的不同构建设置相关联(例如,发布,调试)

    我正在尝试为现有的库项目创建POD规范.在Xcode项目中,构建设置为不同的构建配置定义了不同的预处理器宏例如:对于“调试”配置:对于“发布”配置:如何将这些设置映射到相应的POD规范?

  6. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  7. ios – 将容器带到视图前方

    我怎样才能解决这个问题?

  8. ios – 如何使用XCode 6.4下载和替换AppGroup容器

    我知道如何使用XCode6的Devices窗口下载和替换特定iOS应用程序的文件系统容器.但是对于我正在开发的应用程序,我需要能够下载和替换共享的AppGroup容器以进行调试.这将使我能够模拟AppGroup文件夹内容中的情况以进行测试.任何人都可以告诉我如何做到这一点?

  9. ios – 故事板UICollectionViewCell显示,然后变为空白

    问题:我在Storyboard/InterfaceBuilder上使用UIViewController,其中有一个UICollectionView,用于定义UICollectionViewCell.每当我在这个单元格中更改某些内容时,其所有子视图都会变为空白,从而无法看到任何内容.此外,当我更新约束时,即使我刷新,框架也不会移动,就像整个界面构建器被破坏一样.它只适用于这个UIViewContro

  10. ios – Xcode 7.3 – 警告未显示且无法搜索项目

    自从我升级到Xcode7.3后,我注意到在搜索我的工作区时总是得到“无结果”,并且警告窗格中也没有出现任何警告.偶尔它会工作几分钟而且会再次死亡.重新启动我的电脑,Xcode,并重新安装没有帮助.是否有其他人遇到此问题或找到解决方案/解决方法?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部