zoukankan      html  css  js  c++  java
  • Kubernetes 集群搭建(下)

    早安~~不知道昨天的文章各位有没有去尝试操作一下呢?没有的话建议再去看一下昨天的文章,这样可以更好的理解今天的文章! 今天的信息量比较大,大家可能会比较懵,建议多看几遍呀~ 下面开始今天的内容~

     

    安装

    yum安装需要的组件,我这里指定了具体的版本,我用的版本比较老,不过如果你是第一次用,问题不是很大,如果是大佬的话就不要喷我了~~~

    yum -y install kubeadm-1.11.1  
    yum -y install kubectl-1.11.1 
    yum -y install kubelet-1.11.1 
    yum -y install kubernetes-cni-0.6.0
    yum -y install docker-ce-17.03.0.ce-1.el7.centos
    

    设置docker启动

    systemctl enable docker
    systemctl start docker
    systemctl enable kubelet.service
    systemctl start kubelet
    

    这里就是比较艰难的部分了,网上的处理办法大同小异在这里给大家写一下我用的。

    kubernetes是Google的,他的镜像托管在Google云上,国内下载比较坎坷,到这个地址去下载https://github.com/anjia0532/gcr.io_mirror 脚本在这里

    vim pullimages.sh #这里指定了具体的版本,如果你不是这个版本的需要修改脚本呀~~
    
    #!/bin/bash
    images=(kube-proxy-amd64:v1.11.1 kube-scheduler-amd64:v1.11.1 kube-controller-manager-amd64:v1.11.1
    kube-apiserver-amd64:v1.11.1 etcd-amd64:3.2.18 coredns:1.1.3 pause:3.1 )
    for imageName in ${images[@]} ; do
    docker pull anjia0532/google-containers.$imageName
    docker tag anjia0532/google-containers.$imageName k8s.gcr.io/$imageName
    docker rmi anjia0532/google-containers.$imageName
    done
    

    其实呢kubeadm是可以一键部署Master节点的,不过呢为了给大家演示一下集群的搭建,我在这里写了一个kubeadm.yaml

    apiVersion: kubeadm.k8s.io/v1alpha1
    kind: MasterConfiguration
    controllerManagerExtraArgs:
      horizontal-pod-autoscaler-use-rest-clients: "true"
      horizontal-pod-autoscaler-sync-period: "10s"
      node-monitor-grace-period: "10s"
    apiServerExtraArgs:
      runtime-config: "api/all=true"
    kubernetesVersion: "v1.11.1"
    

    这里将horizontal-pod-autoscaler-use-rest-clients: "true",这意味者,将来部署的kube-controlller-manger能够使用自定义资源进行自动水平拓展。

    部署kunernetes Master节点

    kubeadm init --config kubeadm.yaml
    

    这里会生成一大串代码,我摘录一部分放在这里供大家参考

    [init] using Kubernetes version: v1.11.1
    [preflight] running pre-flight checks
    .................
    .................
    .................
    Your Kubernetes master has initialized successfully!
    
    To start using your cluster, you need to run the following as a regular user:
    
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    You should now deploy a pod network to the cluster.
    Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
      https://kubernetes.io/docs/concepts/cluster-administration/addons/
    
    You can now join any number of machines by running the following on each node
    as root:
    
      kubeadm join 192.168.72.132:6443 --token q1nck1.4znr09ayrj6xpsdw --discovery-token-ca-cert-hash sha256:095e199243fad6ee350beb9869942f54ee4074cd5bcef1222a2cca712b8b4878
    

    这个kubeadm join命令是来给Master节点添加工作节点的命令,当然我这里是单节点肯定是用不上了,不过我还是想给大家解释一下,你们知道就好。

    配置安全配置文件的存放目录,这个在上述的代码中有提到,各位可以详细看一下

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

    为啥要写这个呢?原因是kubernetes集群默认需要加密方式访问,这几条命令的作用在于将刚部署集群的配置文件放在当前用户的.kube目录下啊,kubectl默认使用这个目录下的授权信息访问kubernetes集群。

    查看节点状态

    [root@localhost yum.repos.d]# kubectl get nodes
    NAME                    STATUS     ROLES    AGE   VERSION
    localhost.localdomain   NotReady   master   6m    v1.11.1
    

    我这里部署的状态是NotReady,是因为我没有安装网络组件

    安装网络插件

    kubectl apply -f https://git.io/weave-kube-1.6
    

    部署完成后我们可以通过kubectl重新检查Pod状态

    [root@localhost yum.repos.d]# kubectl get pods -n kube-system
    NAME                                            READY   STATUS              RESTARTS   AGE
    coredns-78fcdf6894-8w8dx                        1/1     Running             0          11m
    coredns-78fcdf6894-w9sk2                        1/1     Running             0          11m
    etcd-localhost.localdomain                      1/1     Running             0          10m
    kube-apiserver-localhost.localdomain            1/1     Running             0          10m
    kube-controller-manager-localhost.localdomain   1/1     Running             0          10m
    kube-proxy-cpxmx                                1/1     Running             0          11m
    kube-scheduler-localhost.localdomain            1/1     Running             0          10m
    weave-net-pt2l7                                 2/2     Running             0          23s
    

    这里可以看到我部署的Pod都启动成功了,如果你也能看到这些,那么恭喜你,至此kubernetes Master节点部署完成咯

    最后提一下,kubernetes也有可视化插件的,看起来还不错,由于这篇文章写的还是比较早的,今天才整理完毕,虚拟机被我给删掉了,没留截图,这里就不在赘述了,大家有兴趣可以自己操作一下,或者大家实在想看,可以留言呐!!呼声高的话我可以特意出一个文章给大家的~~~

    最后马上过年了,提前祝各位鼠年行大运,工作顺利,吃嘛嘛香,身体倍儿棒,阖家欢乐~~~~~~

    然后时间有限,小编能力有限,文章可能存在疏漏,各位大佬轻喷~~~~

  • 相关阅读:
    高考,高中毕业之后,这人世间,又多了一只闲云野鹤
    玩转Android之Drawable的使用
    Spring核心技术(七)——Spring容器的扩展
    商业研究(21):活力蛙,足疗O2O,曾经的“中国上门足疗领先品牌”
    商业研究(21):活力蛙,足疗O2O,曾经的“中国上门足疗领先品牌”
    【Raspberry Pi】DHT11 温度湿度传感器数据读取
    【Raspberry Pi】读取DHT11温度湿度波折
    【Raspberry Pi】webpy+mysql+GPIO 实现手机控制
    【python】正则表达式
    【Raspberry Pi】GPIO-发光二极管控制
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/13031807.html
Copyright © 2011-2022 走看看