美文网首页
vagrant + ubuntu16.04 搭建 kuberne

vagrant + ubuntu16.04 搭建 kuberne

作者: SlowGO | 来源:发表于2018-12-06 16:57 被阅读0次

    创建 vagrant ubuntu 虚机

    创建2个虚机,一个 master,一个 worker。

    Vagrantfile 模板:

    Vagrant.configure("2") do |config|
      config.vm.box = "bento/ubuntu-16.04"
      #config.vm.provision "docker"
      config.vm.hostname = "master"
      config.vm.network "private_network", type: "dhcp"
    
       config.vm.provider "virtualbox" do |vb|
         vb.memory = "2048"
         vb.cpus = 2
       end
    end
    

    分别执行 vagrant up 启动虚机,启动后执行 vagrant ssh 登录。

    安装 docker

    apt-get update && apt-get install docker.io -y
    

    每台虚机中都安装。

    安装 kubelet kubeadm kubectl

    # 安装 1.9.6 版本
    # 如需安装其他版本,可以查询版本列表:
    # curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'
    
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
      echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
      sudo apt-get update -q && \
      sudo apt-get install -qy kubelet=1.9.6-00 kubectl=1.9.6-00 kubeadm=1.9.6-00
    
    # 服务自启动
    systemctl start docker && systemctl enable docker
    systemctl start kubelet && systemctl enable kubelet
    
    # 命令自动提示
    echo "source <(kubectl completion bash)" >> ~/.bashrc
    source ~/.bashrc
    
    # 准备工作
    swapoff -a
    sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
    sed -i '0,/ExecStart=/s//Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"\n&/' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
    

    每台虚机中都安装。

    master 中初始化 cluster

    # 查看本机 ip 并设置系统变量
    ifconfig
    IPADDR=172.28.128.8
    
    
    # 查看本机名称
    NODENAME=$(hostname -s)
    
    # 初始化
    kubeadm init --apiserver-cert-extra-sans=$IPADDR --apiserver-advertise-address=$IPADDR --node-name $NODENAME
    

    执行完成后会给出提示,执行提示的命令,例如:

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

    还会给出 worker 节点加入的命令,例如:

    kubeadm join --token ef0914.ef20fb77d714a7fd 172.28.128.9:6443 --discovery-token-ca-cert-hash sha256:b8272dfce74563023bd8ad62a42d3e8aadb3da4cb51940464eb10516fb0f22fd
    

    cluster 创建完成后,需要安装网络:

    kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')
    

    worker 加入 cluster

    执行上面提示的 kubeadm join ...

    master 中验证

    现在一个最简单的 cluster 已经搭建出来了,下面验证一下。

    查看 node 列表:

    kubectl get nodes
    

    如果正常,node 的状态都应是 Ready

    验证 DNS:

    kubectl run -it --image=busybox:1.28.3 --restart=Never dns-test /bin/sh
    
    / # nslookup kubernetes.default
    

    正常输出类似:

    Server: 10.96.0.10 
    Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local 
    Name: kubernetes.default 
    Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local
    

    如果有问题可以通过一个几个命令配合查找问题:

    journalctl -f
    kubectl describe node xxx
    kubectl describe pod xxx
    kubectl logs xxx
    

    相关文章

      网友评论

          本文标题:vagrant + ubuntu16.04 搭建 kuberne

          本文链接:https://www.haomeiwen.com/subject/gjwocqtx.html