kubeadm init - 失败

时间:2018-04-08 12:32:48

标签: kubernetes vagrantfile kubeadm

我对这个Vagrantfile遇到了麻烦,我已经定义了https://github.com/pablotoledo/kubernetes-poc/blob/master/Vagrantfile

在这个Vagrant文​​件中,我设置了:

  • 1大师
  • 2名工人

我已经定义了一些要在每个VM上运行的脚本:

  • Master的SSH Keygen - > script_generate_ssh_key
  • SSH复制密钥,用于将id_rsa从master复制到worker - > script_copy_key
  • 在每个VM上安装通用软件的脚本 - > script_install_common_software此脚本基于https://kubernetes.io/docs/setup/independent/install-kubeadm/
  • 设置主节点角色的另一个脚本 - > script_setup_master<这是有问题的部分
  • 最后一个脚本用于将工作人员与主人联系起来 - > script_setup_worker

当我跑步"流浪汉"命令" sudo kubeadm init --pod-network-cidr = 192.168.0.0 / 16 --apiserver-advertise-address = 192.168.40.10"总是它挂起。

如果我ssh到主节点,我可以看到kube-apiserver容器总是在大约3分钟后重新创建。

这是崩溃的kube-apiserver实例的输出:

tell application "Xcode"    
  activate
  set targetProject to project of active project document
  if (build targetProject) is equal to "Build succeeded" then
      launch targetProject
  end if
end tell

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

通常,当您使用kubeadm创建kubernetes集群时,您会遵循典型的序列:

  1. 准备VM(配置CPU,ram,网络,驱动器,流浪盒等)
  2. 添加 gpg-keys 存储库
  3. 配置 sysctl bridge-nf-call-ip6tables,bridge-nf-call-iptables
  4. 安装包,具体取决于您的系统
    • ubuntu( ebtables ethtool docker.io apt-transport-https kubelet kubeadm kubectl
    • centos( go git wget docker kubelet kubectl kubeadm )( crictl on master)
  5. 运行kubeadm init
  6. 配置kubectl(创建〜/ .kube / config)
  7. 配置kubernetes网络子系统( calico,weave 等)
  8. 将工作人员加入群集
  9. 此时,您通常有一个即用型kubernetes集群。

    检查您的Vagrant文​​件后,我建议您:

    1. 在repo config步骤中更改kubernetes baseurl:
    2.   

      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\\$basearch

      1. 将这些行移至$ script_install_common_software,
      2.   

        sudo bash -c“echo net.bridge.bridge-nf-call-ip6tables = 1>>   /etc/sysctl.conf中“
          sudo bash -c“echo net.bridge.bridge-nf-call-iptables = 1>> /etc/sysctl.conf”
          sudo sysctl --system

        1. 安装crictl后将二进制文件复制到/ usr / bin(仅在master上需要这个二进制文件)
        2.   

          sudo cp~ / go / bin / crictl / usr / bin

          1. 在使用kubectl
          2. 部署calico之前,将这些行放在之前
              

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

            1. 取消注释工人加入命令
            2. 这足以使您的群集处于“就绪”状态。