温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用Docker部署k8s

发布时间:2022-05-20 15:13:15 来源:亿速云 阅读:984 作者:iii 栏目:大数据

这篇文章主要介绍了怎么用Docker部署k8s的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Docker部署k8s文章都会有所收获,下面我们一起来看看吧。

拓扑结构

  1. 1master + 2minion

  2. k8s-master 192.168.0.201 master

  3. k8s-node1 192.168.0.202 minion

  4. k8s-node2 192.168.0.203 minion

准备工作系统

安装ubuntu 14.04 lts 64bit server版本系统,配置好hostname和ip。
在更新国内的软件源的时候,由于gfw的原因,经常会出现md5校验错误,建议使用的源。

docker

在minion节点上安装docker,版本需要在1.2+,此处安装的是1.7.1。安装方法参见docker安装(ubuntu 64bit) 。
安装好docker之后,我们最好还配置一个国内的registry mirror,加快镜像拉取速度,参考。

google pause

给每个minion下载google pause镜像。之后的工作会用到gcr.io/google_containers/pause镜像,国内用户由于gfw问题总是会出错,所以我们先从docker.io下载pause镜像,并设置tag。

# docker pull docker.io/kubernetes/pause
# docker tag kubernetes/pause gcr.io/google_containers/pause:0.8.0
# docker tag gcr.io/google_containers/pause:0.8.0 gcr.io/google_containers/pause

ssh

需要所有minion节点都能从master节点直接登录,不用密码。

在master节点上进行如下操作:

$ ssh-keygen
$ ssh-copy-id user@192.168.0.201
$ ssh-copy-id user@192.168.0.202
$ ssh-copy-id user@192.168.0.203

部署集群

下载

下载部署脚本及二进制文件。

首先从k8s的github仓库中下载部署脚本。

$ git clone https://github.com/kubernetes/kubernetes.git

修改各组件的版本,下载所有组件的二进制文件。此处我们使用etcd 2.2.0,flannel 0.5.0,k8s 1.0.6。

$ cd kubernetes/cluster/ubuntu
$ vim build.sh #修改版本号
 # version setting
 flannel_version="0.5.0"
 etcd_version="2.2.0"
 kube_version="1.0.6"
$ ./build.sh

有时候使用非root账户下载会出现错误,此时我们可以切换到root权限下下载,完成之后再使用chown命令将文件权限设置为原来的账户。

目录binaries中出现如下结构则表示成功。

怎么用Docker部署k8s

配置

打开cluster/ubuntu/config-default.sh文件,修改如下字段:

export nodes=${nodes:-"wangtao@192.168.0.201 wangtao@192.168.0.202 wangtao@192.168.0.203"}

export role=${role:-"a i i"}

export num_minions=${num_minions:-2}

export service_cluster_ip_range=${service_cluster_ip_range:-10.0.1.0/24}

export flannel_net=${flannel_net:-172.16.0.0/16}

如果需要master节点也作为minion节点的话,只需将role中的a改为ai即可,num_minions表示minion节点的个数。

service_cluster_ip_range表示集群中service所对应的ip范围。
flannel_net表示pod所分配的ip范围。

部署

进到cluster/目录下进行如下操作,

$ export kubernetes_provider=ubuntu
$ ./kube-up.sh

接下来脚本就会将二进制文件拷贝到相应的节点上,不过在运行服务的时候需要root权限,所以需要我们为每一个节点输入一次密码。

测试

我们可以使用kubectl工具进行测试是否安装成功。

首先我们把kubectl的路径加入到path中,然后我们就可以直接使用该命令了。

怎么用Docker部署k8s

我们启动一个redis服务试一试。

进入examples/guestbook目录,修改redis-master-controller.yaml文件如下:

apiversion: v1
kind: replicationcontroller
metadata:
 name: redis-master
 labels:
 name: redis-master
spec:
 replicas: 2
 selector:
 name: redis-master
 template:
 metadata:
  labels:
  name: redis-master
 spec:
  containers:
  - name: master
  image: redis
  ports:
  - containerport: 6379

然后运行如下命令启动redis。

$ kubectl create -f redis-master-controller.yaml

然后使用kubectl get rc 和 kubectl get pods 查看是否成功。

怎么用Docker部署k8s

如果每个pod的状态都为running则部署成功。

这里可能会遇到pod状态一直处于penning的问题,此时可以通过kubectl describe pods/pod-name来查看pod信息,如果没有出错信息,那么minion一直处于下载镜像中,下载好之后pod即会成功启动。

动态管理cluster

如果集群已经部署好,我们希望能够动态地添加和删除minion节点。

一种方法是,使用kube-down.sh将所有节点停掉之后,修改config-default.sh文件,将新添加的节点信息加入进去,或者删掉不用的节点信息,然后再使用kube-up.sh脚本重新启动。

关于“怎么用Docker部署k8s”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么用Docker部署k8s”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI