zoukankan      html  css  js  c++  java
  • 二、kubernetes环境搭建

    主要内容

    1.环境准备(2主机)

    2.安装流程

    3.问题分析

    4.总结

    环境配置(2主机)

    系统:CentOS 7.3 x64 
    网络:局域网(VPC) 
    主机: 
    master:172.16.0.17 
    node-1:172.16.0.7

    一、修改host配置

    修改master和minion-1的host文件,使得各主机可通过主机名访问,方便更新和迁移

    echo "39.96.69.98   k8s-master
    47.94.174.85   k8s-node1" >> /etc/hosts

    二、关闭

      1、禁用并关闭防火墙或者直接一句话 systemctl stop firewalld & systemctl disable firewalld

    [root@k8s-master ~]# systemctl disable firewalld
    [root@k8s-master ~]# systemctl stop firewalld
    
    [root@k8s-node-1 ~]# systemctl disable firewalld
    [root@k8s-node-1 ~]# systemctl stop firewalld
    

      2、关闭selinux

    [root@k8s-master ~]# setenforce 0
    
    [root@k8s-node-1 ~]# setenforce 0
    

     临时关闭,重启后失效

      3、关闭swap

     

    [root@k8s-master ~]# swapoff -a
    
    [root@k8s-node-1 ~]# swapoff -a
    

       临时关闭,重启后失效  

    开始搭建 Master

    设置hostname-将hostname修改为 k8s-master并且sudo vim /etc/hosts 追加 39.96.69.98 k8s-master

    hostnamectl set-hostname k8s-master
    
    echo "39.96.69.98   k8s-master" >> /etc/hosts
    

      

     开启  br_netfilter kernel module

    modprobe br_netfilter
    echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
    echo '1' > /proc/sys/net/ipv4/ip_forward
    

     1、安装 docker ce

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    yum install -y docker-ce
    

     

    2、安装 k8s

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
           http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    

      

    安装
    yum install -y kubelet kubeadm kubectl
    

    3、重启

    sudo reboot
    

    4、启动 docker and kublet

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

      

    下面要初始化 但是下面部分需要讲解改变docker 源 才可以进行操作

    更改初始化的docker 源以下步骤:

      

    解决方式

    最少需要2个cpu或者加个参数 --ignore-preflight-errors=NumCPU
    
    kubeadm init --apiserver-advertise-address=47.94.174.85 --ignore-preflight-errors=NumCPU
    

     

    提示docker pull镜像失败,开启ss

    kubeadm init 命令默认使用的docker镜像仓库为k8s.gcr.io,国内无法直接访问,于是需要变通一下。

    首先查看需要使用哪些镜像

    kubeadm config images list
    #输出如下结果
    k8s.gcr.io/kube-apiserver:v1.12.2
    k8s.gcr.io/kube-controller-manager:v1.12.2
    k8s.gcr.io/kube-scheduler:v1.12.2
    k8s.gcr.io/kube-proxy:v1.12.2
    k8s.gcr.io/pause:3.1
    k8s.gcr.io/etcd:3.2.24
    k8s.gcr.io/coredns:1.2.2

    我们通过 docker.io/mirrorgooglecontainers 中转一下

    批量下载及转换标签

    脚本如下

    kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/mirrorgooglecontainers#g' |sh -x
    docker images |grep mirrorgooglecontainers |awk '{print "docker tag ",$1":"$2,$1":"$2}' |sed -e 's#docker.io/mirrorgooglecontainers#k8s.gcr.io#2' |sh -x
    docker images |grep mirrorgooglecontainers |awk '{print "docker rmi ", $1":"$2}' |sh -x
    docker pull coredns/coredns:1.2.2
    docker tag coredns/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2
    docker rmi coredns/coredns:1.2.2
    

    注:coredns没包含在docker.io/mirrorgooglecontainers中,需要手工从coredns官方镜像转换下。

     

    查看镜像列表
    
    docker images
    #输出如下结果
    k8s.gcr.io/kube-apiserver:v1.12.2
    k8s.gcr.io/kube-controller-manager:v1.12.2
    k8s.gcr.io/kube-scheduler:v1.12.2
    k8s.gcr.io/kube-proxy:v1.12.2
    k8s.gcr.io/pause:3.1
    k8s.gcr.io/etcd:3.2.24
    k8s.gcr.io/coredns:1.2.2
    

    现在已经满足要求了,可以愉快的继续kubeadm init   (我采用这个方法)

    kubeadm init --apiserver-advertise-address=39.96.69.98   
    最少需要2个cpu或者加个参数 --ignore-preflight-errors=NumCPU
    
    即:kubeadm init --apiserver-advertise-address=39.96.69.98    --ignore-preflight-errors=NumCPU
    

      

     (下面是另一种方式没实践过)

    另外一种方法是使用kubeadm配置文件,通过在配置文件中指定docker仓库地址,便于内网快速部署。目前处于试验阶段。

    生成配置文件

    kubeadm config print-defaults --api-objects ClusterConfiguration >kubeadm.conf
     

    将配置文件中的

    imageRepository: k8s.gcr.io
     

    改为你自己的私有docker仓库,比如

    imageRepository: docker.io/mirrorgooglecontainers
     

    kubeadm生成的配置文件目前不够完善,需要修改kubernetes版本

    kubernetesVersion: v1.12.0
     

    改为

    kubernetesVersion: v1.12.2
     

    然后运行命令

    kubeadm config images list --config kubeadm.conf
    kubeadm config images pull --config kubeadm.conf
    kubeadm init --config kubeadm.conf
     

    更多kubeadm配置文件参数详见

    kubeadm config print-defaults

     总之如图上面镜像是可以的,但是下面还是有问题 分别是1、内核不支持5.0的 2、 上面补上开启  br_netfilter kernel module 3、docker 版本改上

  • 相关阅读:
    linux安装mongodb磁盘空间不足
    ccf颁奖晚会
    Bug总结流程
    测试自学过程
    一个div,包含两个div,调整文字位置和div平均分布
    一个div,包含三个小的div,平均分布的样式
    测试成长之路
    k8s常用命令记录
    K8S 1.20.6安装dashboard(基于kubernetes-dashboard 2.0.0版本)
    F. Programming Contest
  • 原文地址:https://www.cnblogs.com/fger/p/10459028.html
Copyright © 2011-2022 走看看