zoukankan      html  css  js  c++  java
  • kubeadm搭建kubernetes集群之二:创建master节点

    在上一章kubeadm搭建kubernetes集群之一:构建标准化镜像中我们用VMware安装了一个CentOS7虚拟机,并且打算用这个虚拟机的镜像文件作为后续整个kubernetes的标准化镜像,现在我们就以这个镜像为基础,开始安装kubernetes集群吧;

    前提条件

    由于要用到谷歌的服务,所以要求您的网络环境可以科学上网,具体的方案就不在这里说了;

    复制文件

    如下图所示,cent7是我们上一章操作完成后对应的CentOS7的VMware文件夹,现在把这个文件夹复制三份一模一样的,再分别重命名为maste、node1、node2: 
    这里写图片描述

    启动master

    打开VMware软件,选中上面我们复制的master文件夹,选中里面的文件然后点击“打开”按钮,如下图: 
    这里写图片描述

    如下图,点击红框中的“编辑虚拟机设置”按钮 
    这里写图片描述

    如下图,在设置页面中将虚拟机名字改成”master”: 
    这里写图片描述

    如下图,点击红框中的按钮启动master: 
    这里写图片描述

    如下图,在弹出的窗口中选择“我已复制该虚拟机”: 
    这里写图片描述

    修改hostname再重启master

    等master启动完毕,进入系统,修改/etc/hostname文件,这里面只有一行内容“localhost.localdomain”,改成”master”;

    修改完hostname文件后,重启master;

    启动kubelet服务

    执行以下命令设置kubelet自启动,然后再启动kubelet服务:

    systemctl enable kubelet;systemctl start kubelet

    初始化kubernetes的master服务

    执行以下命令,初始化kubernetes的master服务,此时由于要去下载谷歌服务的镜像文件,所以请保证当前网络可以科学上网:

    kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=0.0.0.0

    如果网络没有问题,就请耐心等待吧,大约二十分钟就会完成init过程,如下图:

    这里写图片描述

    注意上图中的最后一句kubeadm join –token 4fccd2.b0e0f8918bd95d3e 192.168.119.132:6443,在node加入的时候我们就是用这一句来将node加入到集群的;

    为什么init操作要用这么长时间呢?执行docker images命令可以看到下载多了很多镜像,如下图:

    这里写图片描述

    新增了6个镜像;

    如果不能科学上网,可以使用下面的方法下载镜像:

    下载镜像

    在运行kubeadm之前,需要在本地先下载一系列images,这些images名称和版本,可以运行kubeadm init,初始化后得到

    具体会生成在/etc/kubernetes/manifest目录下,通过grep命令可以列出,比如

    cat etcd.yaml | grep gcr*
        image: gcr.io/google_containers/etcd-amd64:3.0.17

    那具体需要下载哪些images和相应的版本呢? 可以参照kubernetes kubeadm手册,具体地址

    https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/

     查看kubeadm的版本号:

    [root@master ~]# kubeadm version
    kubeadm version: &version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.5", GitCommit:"f01a2bf98249a4db383560443a59bed0c13575df", GitTreeState:"clean", BuildDate:"2018-03-19T15:50:45Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

    这里就有比较清楚的版本和对应关系。

    如何获取镜像

    国内因为gcr.io被墙,所以要么通过代理FQ获取,要么寻找其他办法。我的办法是访问

    https://hub.docker.com/,然后搜索kube-apiserver-amd64,会列出各位大神已经build好的images

     

    进入源代码仓库如下图:

    点击dockerfile查看镜像打包的版本

     选择相应的版本,进行pull

    docker pull maichong/etcd-amd64:3.1.10
    docker pull maichong/pause-amd64:3.0
    docker pull maichong/kube-proxy-amd64:v1.9.2
    docker pull maichong/kube-scheduler-amd64:v1.9.2
    docker pull maichong/kube-controller-manager-amd64:v1.9.2
    docker pull maichong/kube-apiserver-amd64:v1.9.2

    下载完查看镜像

     

    创建kube目录,添加kubectl配置

    执行以下命令,把配置信息复制到执行目录中:

    mkdir -p $HOME/.kube;cp -i /etc/kubernetes/admin.conf $HOME/.kube/config;chown $(id -u):$(id -g) $HOME/.kube/config

    添加Calico(网络组件)

    执行以下命令,安装Calico

    kubectl apply -f http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml

    检查是否启动成功

    执行以下命令,看基础服务的pod都起来了没有:

    kubectl get pods --all-namespaces

    看到的pod信息如下图所示,红框中有一个pod并不是Running状态,而是ContainerCreating:

    这里写图片描述

    这时候请耐心等待几分钟,再看就会变成下面的状态:

    这里写图片描述

    用docker images命令看一下,发现多了几个镜像,如下图:

    这里写图片描述

    用kubectl get node命令查看当前的节点信息,能看见只有一个master节点,如下图:

    这里写图片描述

    至此,kubernetes集群的master节点就安装完成了,因为还没有加入node节点,所以此时还不能部署应用,等下一章我们将node节点加入后再部署应用试试;

  • 相关阅读:
    事件对象
    type of 操作符和instanceof操作符的区别以及使用方法
    JS:XML
    JS:事件处理程序
    JS:event对象下的target属性和取消冒泡事件
    JS:callee属性
    JS:call()和apply的区别
    JS:事件对象1
    DOM元素的大小和位置
    CSS:在IE浏览器下,元素下沉一行的解决办法
  • 原文地址:https://www.cnblogs.com/yhaing/p/8568206.html
Copyright © 2011-2022 走看看