zoukankan      html  css  js  c++  java
  • 部署 k8s Cluster(下)【转】

    上节我们通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。

    安装 Pod 网络

    要让 Kubernetes Cluster 能够工作,必须安装 Pod 网络,否则 Pod 之间无法通信。

    Kubernetes 支持多种网络方案,这里我们先使用 flannel,后面还会讨论 Canal。

    执行如下命令部署 flannel:

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    593.png
     

    添加 k8s-node1 和 k8s-node2

    在 k8s-node1 和 k8s-node2 上分别执行如下命令,将其注册到 Cluster 中:

    kubeadm join --token d38a01.13653e584ccc1980 192.168.56.105:6443
    如果报错,需要添加
    --discovery-token-unsafe-skip-ca-verification
    kubeadm join --token o7bn0z.eh3ro2iwd1n7jz97 192.168.169.31:6443 --discovery-token-unsafe-skip-ca-verification

    这里的 --token 来自前面 kubeadm init 输出的第 ⑨ 步提示,如果当时没有记录下来可以通过 kubeadm token list 查看。

    595.png
     

    kubeadm join 执行如下:

    594.png

    根据提示,我们可以通过 kubectl get nodes 查看节点的状态。

    596.png

    目前所有节点都是 NotReady,这是因为每个节点都需要启动若干组件,这些组件都是在 Pod 中运行,需要首先从 google 下载镜像,我们可以通过如下命令查看 Pod 的状态:

    kubectl get pod --all-namespaces

    597.png

    PendingContainerCreatingImagePullBackOff 都表明 Pod 没有就绪,Running 才是就绪状态。我们可以通过 kubectl describe pod <Pod Name> 查看 Pod 具体情况,比如:

    kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system
    598.png
     

    为了节省篇幅,这里只截取命令输出的最后部分,可以看到在下载 image 时失败,如果网络质量不好,这种情况是很常见的。我们可以耐心等待,因为 Kubernetes 会重试,我们也可以自己手工执行 docker pull 去下载这个镜像。

    等待一段时间,image 都成功下载后,所有 Pod 会处于 Running 状态。

    599.png

    这时,所有的节点都已经 Ready,Kubernetes Cluster 创建成功,一切准备就绪。

    600.png

    小结

    本章通过 kubeadm 部署了三节点的 Kubernetes 集群,后面章节我们都将在这个实验环境中学习 Kubernetes 的各项技术。

  • 相关阅读:
    Android Studio 插件(不定期更新)
    Spring 之 @ComponentScan以及mock Spring MVC
    Spring MVC 之传递模型数据到视图中
    开发笔记
    最小可用 Spring MVC 配置
    Spring 之定义切面尝试(基于 XML)
    Spring 之定义切面尝试(基于注解)
    Spring 之高级装配
    Spring 之混合配置
    Spring 之通过 XML 装配 bean
  • 原文地址:https://www.cnblogs.com/twobrother/p/11081218.html
Copyright © 2011-2022 走看看