文档章节

Kubenetes 1.4 安装

z
 zxpost
发布于 2016/11/05 23:02
字数 1066
阅读 210
收藏 1

0. Linux环境调整

2个VM, 192.168.1.157(docker2) 作为master, 192.168.1.158 (docker3)作为minon

1. 修改hostname

/etc/hostname

192.168.1.157命名为docker2

192.168.1.158 命名为docker3

2. 修改hosts

/etc/hosts

增加

192.168.1.157 docker2 docker2

192.168.1.158 docker3 docker3

1. 修改yum的repo

目录下/etc/yum.repos.d创建文件kubernetes.repo,内容如下:

[kubernetes]
name=Kubernetes
baseurl=http://files.rm-rf.ca/rpms/kubelet/
enabled=1
gpgcheck=0

2. 安装docker和kubenetes

yum install -y docker kubelet kubeadm kubectl kubernetes-cni

3. 修改docker的镜像来源

使用daocloud的加速器:

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://7f135bb1.m.daocloud.io

修改后/lib/systemd/system/docker.service里面如下:

ExecStart=/usr/bin/docker-current daemon --registry-mirror=http://7f135bb1.m.daocloud.io \
          --exec-opt native.cgroupdriver=systemd \
          $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY

 

4. 启动docker和kubelet

# systemctl enable docker && systemctl start docker
# systemctl enable kubelet && systemctl start kubelet

 

5. 获取相关镜像

docker pull chasontang/kube-proxy-amd64:v1.4.0
docker pull chasontang/kube-discovery-amd64:1.0
docker pull chasontang/kubedns-amd64:1.7
docker pull chasontang/kube-scheduler-amd64:v1.4.0
docker pull chasontang/kube-controller-manager-amd64:v1.4.0
docker pull chasontang/kube-apiserver-amd64:v1.4.0
docker pull chasontang/etcd-amd64:2.2.5
docker pull chasontang/kube-dnsmasq-amd64:1.3
docker pull chasontang/exechealthz-amd64:1.1
docker pull chasontang/pause-amd64:3.0

//dashboard这个是登陆daocloud.io后获取的(docker login daocloud.io),需要注册daocloud的帐号

docker pull mritd/kubernetes-dashboard-amd64:v1.4.2   

下载以后使用 docker tag 命令将其做别名改为 gcr.io/google_containers

docker tag chasontang/kube-proxy-amd64:v1.4.0  gcr.io/google_containers/kube-proxy-amd64:v1.4.0
docker tag chasontang/kube-discovery-amd64:1.0 gcr.io/google_containers/kube-discovery-amd64:1.0
docker tag chasontang/kubedns-amd64:1.7  gcr.io/google_containers/kubedns-amd64:1.7
docker tag chasontang/kube-scheduler-amd64:v1.4.0  gcr.io/google_containers/kube-scheduler-amd64:v1.4.0
docker tag chasontang/kube-controller-manager-amd64:v1.4.0  gcr.io/google_containers/kube-controller-manager-amd64:v1.4.0
docker tag chasontang/kube-apiserver-amd64:v1.4.0  gcr.io/google_containers/kube-apiserver-amd64:v1.4.0
docker tag chasontang/etcd-amd64:2.2.5  gcr.io/google_containers/etcd-amd64:2.2.5
docker tag chasontang/kube-dnsmasq-amd64:1.3  gcr.io/google_containers/kube-dnsmasq-amd64:1.3
docker tag chasontang/exechealthz-amd64:1.1  gcr.io/google_containers/exechealthz-amd64:1.1
docker tag chasontang/pause-amd64:3.0  gcr.io/google_containers/pause-amd64:3.0

docker tag mritd/kubernetes-dashboard-amd64:v1.4.2 gcr.io/google_containers//kubernetes-dashboard-amd64:v1.4.2

清除原来下载的镜像

docker rmi chasontang/kube-proxy-amd64:v1.4.0
docker rmi chasontang/kube-discovery-amd64:1.0
docker rmi chasontang/kubedns-amd64:1.7
docker rmi chasontang/kube-scheduler-amd64:v1.4.0
docker rmi chasontang/kube-controller-manager-amd64:v1.4.0
docker rmi chasontang/kube-apiserver-amd64:v1.4.0
docker rmi chasontang/etcd-amd64:2.2.5
docker rmi chasontang/kube-dnsmasq-amd64:1.3
docker rmi chasontang/exechealthz-amd64:1.1
docker rmi chasontang/pause-amd64:3.0

 

 

 

6. 初始化master

用192.168.1.157作为master

kubeadm init --api-advertise-addresses=192.168.1.157 --use-kubernetes-version=v1.4.0

7. 安装网络

直接使用官方推荐的weave-net方案,如果使用flannel方案需要特殊处理,具体查阅http://kubernetes.io/docs/admin/kubeadm/

kubectl create -f https://git.io/weave-kube

安装完成后,dns容器应该自动起来了, 通过Kubectl get pods --all-namespaces或者docker ps查看dns的pod是否起来了。

 

8.安装minon

前5步及第7步相同,完成后加入cluster

kubeadm join --token=018c3f.099d4f13a077a155 192.168.1.157

9.查看状态

kubectl get pods --all-namespaces

[root@docker2 ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                    READY     STATUS             RESTARTS   AGE
kube-system   dummy-2088944543-pju0l                  1/1       Running            0          2h
kube-system   etcd-docker2                            1/1       Running            0          2h
kube-system   kube-apiserver-docker2                  1/1       Running            1          2h
kube-system   kube-controller-manager-docker2         1/1       Running            1          2h
kube-system   kube-discovery-1150918428-u51m6         1/1       Running            0          2h
kube-system   kube-dns-654381707-dotvk                3/3       Running            4          2h
kube-system   kube-proxy-6qf47                        1/1       Running            0          2h
kube-system   kube-proxy-u8qr0                        1/1       Running            0          1h
kube-system   kube-scheduler-docker2                  1/1       Running            0          2h
kube-system   weave-net-5chdf                         2/2       Running            0          1h
kube-system   weave-net-wfb3l                         2/2       Running            0          1h

10. 创建kubernetes-dashboard.yaml 

修改镜像策略为

IfNotPresent
imagePullPolicy: Always

运行:

kubectl create -f kubernetes-dashboard.yaml

如果创建出现问题,运行下面命令清理:

kubectl delete -f kubernetes-dashboard.yaml

具体日志和问题可以查看:

kubectl describe dashbaord的pod name --namespace=kube-system

11.查看Dashboard状态

[root@docker2 ~]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                    READY     STATUS    RESTARTS   AGE
kube-system   dummy-2088944543-pju0l                  1/1       Running   3          1d
kube-system   etcd-docker2                            1/1       Running   3          1d
kube-system   kube-apiserver-docker2                  1/1       Running   16         1d
kube-system   kube-controller-manager-docker2         1/1       Running   7          1d
kube-system   kube-discovery-1150918428-u51m6         1/1       Running   3          1d
kube-system   kube-dns-654381707-dotvk                3/3       Running   13         1d
kube-system   kube-proxy-6qf47                        1/1       Running   3          1d
kube-system   kube-proxy-u8qr0                        1/1       Running   1          23h
kube-system   kube-scheduler-docker2                  1/1       Running   5          1d
kube-system   kubernetes-dashboard-2117559662-zptxa   1/1       Running   0          19h
kube-system   weave-net-5chdf                         2/2       Running   14         23h
kube-system   weave-net-wfb3l                         2/2       Running   2          23h

12.访问dashboard

http://192.168.1.157:8080/ui

发现该url访问不了,查看api server的地址:

[root@docker2 ~]# kubectl cluster-info
Kubernetes master is running at http://localhost:8080
kube-dns is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kube-dns

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

直接在master服务器上运行:wget http://localhost:8080/ui 发现可以获取ui页面

怀疑是路由的问题,于是增加iptables的路由:

iptables -t nat -A PREROUTING --dst 192.168.1.157 -p tcp --dport 8080 -j DNAT --to-destination 127.0.0.1:8080

再次访问: http://192.168.1.157:8080/ui,成功。

13. 限制

这种方式存在的限制是etcd服务是由kubeadm在容器中启动的,而且只是在master节点上启动了一个,存在单点故障, apiserver也存在单点故障。

多个apiserver

--api-advertise-addresses (multiple values are allowed)

可以通过指定使用外部etcd服务

--external-etcd-cafile etcd certificate authority file

--external-etcd-endpoints (multiple values are allowed)

--external-etcd-certfile etcd client certificate file

--external-etcd-keyfile etcd client key file

具体参考官方文档:http://kubernetes.io/docs/admin/kubeadm/

© 著作权归作者所有

共有 人打赏支持
z
粉丝 1
博文 409
码字总数 21359
作品 0
成都
私信 提问
Ubuntu 18.04 LTS安装Kubernetes 1.11

Ubuntu 18.04 + Kuberntes 1.11.2 + Istio 1.0组合来了。 完整安装说明,参考: https://linuxconfig.org/how-to-install-kubernetes-on-ubuntu-18-04-bionic-beaver-linux 安装的其它细节问......

openthings
08/04
0
1
使用Kubeadm(1.13)快速搭建Kubernetes集群

Kubeadm是管理集群生命周期的重要工具,从创建到配置再到升级,Kubeadm处理现有硬件上的生产集群的引导,并以最佳实践方式配置核心Kubernetes组件,以便为新节点提供安全而简单的连接流程并支...

雨夜朦胧
12/07
0
0
通过Helm在Kubernetes集群上安装IPFS

通过Helm在Kubernetes集群上安装IPFS Helm (https://helm.sh/) 是用于Kubernetes的应用包管理程序,可以按照定义来安装、启动、停止、删除由多个Docker和Pod组合的服务应用,而且具有回滚等功...

openthings
02/13
0
0
容器化 RDS:借助火焰图定位Kubernetes性能问题

容器化RDS系列文章: 容器化RDS:计算存储分离架构下的“Split-Brain” 容器化RDS:计算存储分离还是本地存储? 容器化RDS:你需要了解数据是如何被写"坏"的 容器化RDS:PersistentLocalVolu...

Docker
09/10
0
0
【干货】快速部署微软开源GPU管理利器: OpenPAI

【干货】快速部署微软开源GPU管理利器: OpenPAI 介绍 不管是机器学习的老手,还是入门的新人,都应该装备上尽可能强大的算力。除此之外,还要压榨出硬件的所有潜力来加快模型训练。OpenPAI作...

UniversalAIPlatform
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 其实我在地板也睡不着

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @witt-z :分享歌词: 阴天 在不开灯的房间,当所有思绪都一点一点沉淀。 分享莫文蔚的单曲《阴天》: 《阴天》- 莫文蔚 手机党少年们想听歌,...

小小编辑
30分钟前
28
5
微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
今天
3
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
今天
4
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
3
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部