美文网首页菜鸟学编程
开始创建 Kubernetes 主机

开始创建 Kubernetes 主机

作者: 菜鸟飞不动 | 来源:发表于2019-04-18 00:13 被阅读4次

    本指南已验证 Kubernetes v1.13 上。 由于易变性的 Kubernetes 版本到版本,本部分可能会使并持有适用于适用于所有的未来版本的假设。 找不到初始化使用 kubeadm Kubernetes 主机的正式文档在此处。 只需除此之外启用混合操作系统计划部分

    近期已更新 Linux 计算机所需遵循沿;Kubernetes 主像kube dnskube 计划程序,以及kube apiserver不已移植到 Windows 尚未的资源。

    提示

    面向Ubuntu 16.04针对定制的 Linux 说明。 其他认证运行 Kubernetes 的 linux 还应提供等效命令可以替代。 它们将还兼容成功与 Windows。

    使用 kubeadm 初始化

    除非明确指定,否则作为运行下面的任何命令。

    首先,进入提升的根外壳:

    bash复制

    sudo –s
    
    

    请确保你的计算机保持最新状态:

    bash复制

    apt-get update -y && apt-get upgrade -y
    
    

    安装 Docker

    若要能够使用容器,你需要一个容器引擎,如 Docker。 若要获取最新版本,你可以使用 Docker 安装这些说明。 你可以验证该 docker 是否已正确安装通过运行hello-world容器:

    bash复制

    docker run hello-world
    
    

    安装 kubeadm

    下载kubeadm为 Linux 分发的二进制文件并初始化群集。

    重要

    具体取决于你 Linux 分发,你可能需要替换kubernetes-xenial下面与正确代号

    bash复制

    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
    deb http://apt.kubernetes.io/ kubernetes-xenial main
    EOF
    apt-get update && apt-get install -y kubelet kubeadm kubectl 
    
    

    准备主节点

    在 Linux 上的 Kubernetes 需要交换空间将其关闭:

    bash复制

    nano /etc/fstab  # (remove a line referencing 'swap.img' , if it exists)
    swapoff -a 
    
    

    初始化大纲

    记下你群集子网 (例如 10.244.0.0/16) 和服务子网 (例如 10.96.0.0/12) 并初始化使用 kubeadm 你大纲:

    bash复制

    kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
    
    

    这可能需要几分钟。 完成后,你应该看到像你大纲已初始化此确认屏幕:

    文本

    提示

    你应注意此 kubeadm 加入命令。 应 kubeadm 令牌过期,你可以使用kubeadm token create --print-join-command若要创建一个新的令牌。

    提示

    如果你拥有所需的 Kubernetes 版本你想要使用,你可以传递--kubernetes-versionkubeadm 标志。

    我们不尚未完成。 若要使用kubectl作为常规用户,运行以下unelevated 的非根用户 shell 中

    bash复制

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

    现在可以使用 kubectl 编辑或查看有关群集的信息。

    启用混合操作系统计划

    默认情况下,某些 Kubernetes 资源是写入它们正在计划的所有节点上的方式。 但是,在 multi-OS 环境中,我们不希望 Linux 资源干扰或双计划到 Windows 节点,反之亦然。 出于此原因,我们需要应用NodeSelector标签。

    在这里,我们将修补程序 linux kube 代理DaemonSet仅面向 Linux。

    首先,让我们创建一个目录来存储.yaml 清单文件:

    bash复制

    mkdir -p kube/yaml && cd kube/yaml
    
    

    确认更新策略的kube-proxyDaemonSet 设置为RollingUpdate:

    bash复制

    kubectl get ds/kube-proxy -o go-template='{{.spec.updateStrategy.type}}{{"\n"}}' --namespace=kube-system
    
    

    接下来,通过下载此 nodeSelector修补 DaemonSet 并将其仅面向 Linux 应用:

    bash复制

    wget https://raw.githubusercontent.com/Microsoft/SDN/master/Kubernetes/flannel/l2bridge/manifests/node-selector-patch.yml
    kubectl patch ds/kube-proxy --patch "$(cat node-selector-patch.yml)" -n=kube-system
    
    

    一旦成功,你应该看到"节点选择器"的kube-proxy和任何其他 DaemonSets 设置为 beta.kubernetes.io/os=linux

    bash复制

    kubectl get ds -n kube-system
    
    
    文本

    收集群集信息

    若要成功加入未来节点到主服务器,你应跟踪的以下信息:

    1. kubeadm join 从输出 (在此处) 的命令
    • 示例: kubeadm join <Master_IP>:6443 --token <some_token> --discovery-token-ca-cert-hash <some_hash>
    1. 群集子网期间定义kubeadm init(在此处
    • 示例: 10.244.0.0/16
    1. 定义期间的服务子网kubeadm init(在此处
    • 示例: 10.96.0.0/12
    • 此外可以通过使用找到 kubectl cluster-info dump | grep -i service-cluster-ip-range
    1. Kube dns 服务 IP
    • 示例: 10.96.0.10
    • 可以在"群集 IP"字段中使用找到 kubectl get svc/kube-dns -n kube-system
    1. Kubernetesconfig生成后文件kubeadm init(在此处)。 如果你遵循的说明,这可以在以下路径找到:
    • /etc/kubernetes/admin.conf
    • $HOME/.kube/config

    验证主机

    几分钟后,系统应处于以下状态:

    • kubectl get pods -n kube-system,将有关Kubernetes 主组件中的 podRunning状态。
    • 调用kubectl cluster-info将显示有关 Kubernetes 主 API 服务器以及 DNS 加载项的信息。

    提示

    由于 kubeadm 不设置网络,DNS pod 仍可以在ContainerCreatingPending状态。 他们会切换到Running状态后选择的网络解决方案

    相关文章

      网友评论

        本文标题:开始创建 Kubernetes 主机

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