https://www.kubernetes.org.cn/4041.html

第1章 环境概述

环境介绍:

OS:Linux CentOS 7.3 3.10.0-514.el7.x86_64

Master IP:192.168.100.50

组件 版本 部署方式 安装目录或访问入口
etcd 3.3.2 二进制 /usr/local/kubernetes/bin/etcd
docker 18.03.0-ce 二进制 /usr/bin/docker
flannel 0.10.0 二进制 /usr/local/kubernetes/bin/flanneld
kubernetes 1.10.0 二进制 /usr/local/kubernetes/bin



kube-apiserver、kube-controller-manager、kubectl、kube-proxy、kube-scheduler




Node IP:192.168.100.51/52

组件 版本 部署方式 安装目录或访问入口
etcd 3.3.2 二进制 /usr/local/kubernetes/bin/etcd
docker 18.03.0-ce 二进制 /usr/bin/docker
flannel 0.10.0 二进制 /usr/local/kubernetes/bin/flanneld
kubernetes 1.10.0 二进制 /usr/local/kubernetes/bin



Kubectl、kubelet、kube-proxy




第2章 部署ETCD

Etcd需要在3台主机上都安装。

1、注意编辑install_etcd.sh脚本中ifconfig获取本机IP地址的命令,按照实际情况进行修改以正确过滤获得主机IP

2、在3台主机上分别执行如下命令

./install_etcd.sh etcd01 etcd01=http://192.168.100.50:2380,etcd02=http://192.168.100.51:2380,etcd03=http://192.168.100.52:2380

./install_etcd.sh etcd02 etcd01=http://192.168.100.50:2380,etcd03=http://192.168.100.52:2380

./install_etcd.sh etcd03 etcd01=http://192.168.100.50:2380,etcd03=http://192.168.100.52:2380

注意:执行上述命令时,不能等一台完全执行成功了再去下一台执行,因为etcd启动后会进行选举leader投票,如果各etcd启动间隔过大,会导致etcd集群启动失败。

3、确认

#etcdctl member list
b12108f5c8234dfb: name=etcd02 peerURLs=http://192.168.100.51:2380 clientURLs=http://192.168.100.51:2379 isleader=false
d5b914ca14c97aed: name=etcd03 peerURLs=http://192.168.100.52:2380 clientURLs=http://192.168.100.52:2379 isleader=true
fc3d5384c4e24956: name=etcd01 peerURLs=http://192.168.100.50:2380 clientURLs=http://192.168.100.50:2379 isleader=false

第3章 安装Flannel

Flannel需要在所有主机上安装。

1、编辑install_flannel.sh脚本设置正确的网卡接口及etcd键值

2、在3台主机上分别执行下面命令

./install_flannel.sh http://192.168.100.50:2379,http://192.168.100.51:2379,http://192.168.100.52:2379

3、确认

# ifconfig flannel.1
flannel.1: flags=4163<UP,broADCAST,RUNNING,MULTICAST> mtu 1450
inet 172.18.64.0 netmask 255.255.255.255 broadcast 0.0.0.0
ether 2e:ff:72:f0:0f:a8 txqueuelen 0 (Ethernet)
RX packets 828 bytes 80054 (78.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 876 bytes 71341 (69.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

第4章 部署Docker

Docker需要在所有主机上安装。

此次docker部署采用二进制安装方式进行。

1、编辑 install-docker.sh

在二进制安装脚本中添加flannel参数

2、执行安装脚本

./install-docker.sh docker-18.03.0-ce.tgz

3、确认

# docker version
Client:
Version: 18.03.0-ce
API version: 1.37
Go version: go1.9.2
Git commit: 0520e24
Built: Wed Mar 21 23:05:52 2018
OS/Arch: linux/amd64
Experimental: false
orchestrator: swarm

Server:
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:14:54 2018
OS/Arch: linux/amd64
Experimental: false

第5章 部署Kubernetes

1、部署Master节点

在192.168.100.50主机上执行下面命令

./install_k8s_master.sh 192.168.100.50 http://192.168.100.50:2379,http://192.168.100.52:2379

2、部署Minion节点

在51和52主机上执行下面命令

./install_k8s_node.sh 192.168.100.50

3、确认集群状态

# kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
etcd-2 Healthy {“health”:”true”}
etcd-0 Healthy {“health”:”true”}
etcd-1 Healthy {“health”:”true”}
controller-manager Healthy ok

# kubectl get nodes
NAME STATUS ROLES AGE VERSION
webgate2 Ready <none> 1d v1.10.0
webgate3 Ready <none> 1d v1.10.0

至此,一个简单的kubernetes集群就搭建完成了。

第6章 部署BusyBox容器

1、准备容器镜像

因为实验环境无法连外网,也没有构建registry,所以只能使用node上的本地镜像来跑容器。要把busyBox容器跑起来,除了要有busyBox镜像外,还需要pause镜像。

镜像使用上传tar文件用docker load的方式在每台node导入。

# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busyBox 1.0 8ac48589692a 7 weeks ago 1.15MB
busyBox latest 8ac48589692a 7 weeks ago 1.15MB
gcr.io/google_containers/kubernetes-dashboard-amd64 v1.8.3 0c60bcf89900 3 months ago 102MB
gcr.io/google_containers/k8s-dns-sidecar-amd64 1.14.7 db76ee297b85 7 months ago 42MB
gcr.io/google_containers/k8s-dns-kube-dns-amd64 1.14.7 5d049a8c4eec 7 months ago 50.3MB
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64 1.14.7 5feec37454f4 7 months ago 41MB
gcr.io/google_containers/pause-amd64 3.0 99e59f495ffa 2 years ago 747kB

上面images包含下一节用到的dns和dashboard镜像。

2、编写busyBox_rc.yaml

具体内容见本文对应介质包内文件内容。

3、运行rc

./ kubectl create -f /root/busyBox-rc.yaml

4、确认

docker exec -it {容器ID} sh进入其中一个容器,执行命令进行验证。

下面再部署下kube-dns和DashBoard服务。

第7章 部署kube-dns和DashBoard服务

1、部署kube-dns服务

Kube-dns作为集群内部的域名解析服务,没有它就只能使用ip地址来相互访问。

注意修改kube-dns.yaml中的clusterIP地址和kube-master-URL地址。

执行命令:kubectl create -f kube-dns.yaml,部署启动kube-dns服务。

注意使用的是kube-dns1.14.7版本镜像,1.14.1镜像在docker ce 18.03下跑不起来。镜像也要手工load到本地。

2、部署DashBoard服务

注意修改kubernetes-dashboard.yaml中的API server地址和开放的Node port。

执行命令:kubectl create -f kubernetes-dashboard.yaml,部署启动dashboard服务。

使用get pods命令找出pod运行的node,使用http://{NodeIP}:30090访问即可。

注意:镜像也要手工load到本地。

3、确认

# kubectl get pods -o wide –namespace kube-system
NAME READY STATUS RESTARTS AGE IP NODE
kube-dns-6fbf8d6694-5bxxh 3/3 Running 0 12d 172.18.90.2 webgate2
kubernetes-dashboard-dbd4c76f-wq8sd 1/1 Running 0 12d 172.18.64.2 webgate3

文章对应的安装介质及镜像下载地址:

链接: https://pan.baidu.com/s/17KDR-XxvbUu8Bamjwqbs-w 密码: c3ns

二进制方式搭建极简kubernetes1.10环境@centos7.3的更多相关文章

  1. ios – 伞框架

    错误.应用程序,通常位于…错误仍然存在你也可以在这里添加(子)框架的路径.

  2. ios – 错误域= NSURLErrorDomain代码= -1003“找不到具有指定主机名的服务器

    当我尝试在设备上运行应用程序时出现此错误.当我在模拟器上运行它并且post请求正常工作时,我没有收到此错误.这是我的代码片段:任何帮助表示赞赏.谢谢解决方法此错误通常会提示DNS相关问题.检查设备上的DNS设置并确认您可以使用Safari或其他浏览器浏览互联网.如果有一个url,你可以在同一台服务器上获取,尝试直接在设备上的Safari中访问它.

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

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

  4. 如何在xcode 6中构建32位和64位的单二进制文件

    我已经遵循this堆栈溢出解决方案,但即使我得到低于警告.我已经选择虽然我得到了警告.请帮帮我.谢谢.解决方法有同样的问题.看起来将’arm64’添加到ValidArchitectures解决了它.

  5. ios – 将二进制文件上传到Apple的iTunesConnect时会发生什么?

    我问,因为:它可能指向我们可以做的事情来加快这个过程.大约一年前,这个过程从“缓慢,因为苹果的服务器功率不足”变得“非常缓慢,因为苹果公司使用的带宽是发送二进制文件所需带宽的3倍”.例如我最近提交了一个90Mb应用程序,Xcode4将超过350Mb的数据上传到Apple.例如刚才我提交了一个8Mb的二进制文件,Xcode4将超过40Mb的数据上传到Apple.最近上传者有了很大的改进.但我想知道:苹果在上传期间实际上做了什么?

  6. 在两个屏幕上运行的iOS应用程序(无镜像)

    我创建了一个包含幻灯片的iPad应用程序,当用户点击此幻灯片时,他/她可以输入一些信息.我现在要做的是在通过AirPlay连接电视和iPad时在电视上显示幻灯片显示内容可以这样做吗?如何在iOS中完成?所以不要反映整个应用程序.解决方法您可以使用Airplay和AppleTV编写应用程序以处理2个UIScreens,然后为电视UIScreen和iPadUIScreen设置单独的根视图控制器.然后在电视的视图控制器上显示图像或幻灯片,并从iPad视图控制器的事件中运行该图像或幻灯片!

  7. ios – iTunes Connect警告:“您的二进制文件不支持iPad”

    我刚刚将一个新的二进制文件上传到iTunesConnect,并将其添加到iOS版本的新版本.添加二进制文件并保存更改后,iTunesConnect会显示警告消息:“您的二进制文件不支持iPad,iPad的屏幕截图或应用视频预览将不会显示在AppStore上.”Xcode项目是使用Cordova3CLI生成的;自从应用从Cordova2迁移以来,上传的二进制文件是第一个Cordova3版本.该应用程

  8. ios – 二进制无效,二进制文件缺少体系结构[arm64]

    没有足够的信誉发布图像,请搜索“TimT”作为他的回复.更新:已经修复“是的,最近有一个修复程序应用于服务器,每个人都应该能够再次提交32位应用程序.–由TimT在同一个线程.我再次尝试,一切都很好.

  9. ios – 不能检查CGPoint是否不等于CGPointZero

    我有一个CGPoint在UIView类中声明,在我的viewController中,我尝试检查CGPoint是否不等于CGPointZero,但是我收到这个错误:二进制表达式(‘CGPoint'(又名’structCGPoint’)’和’CGPoint“)这是if语句:错误指向!=和我不知道为什么它给我一个错误.操纵杆是UIView类,CGPoint速度是这样声明的:@property(非原子)C

  10. ios – 如何镜像UIBezierPath?

    我有一个UIBezierPath,我想得到它的镜像.我该如何做到这一点?

随机推荐

  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架构–可能与问题有关!

返回
顶部