• Kubernetes学习笔记02_安装单Master节点


    准备好了镜像模板,依此创建3个虚拟机,分别是:

    主节点   K8s-Master1  IP 10.9.41.115

    工作节点1  K8s-Work1  IP 10.9.41.116

    工作节点2  K8s-Work2  IP 10.9.41.117

    初始化Master节点 

    ※ 初始化 master 过程中,如果因为中间某些步骤的配置出错,想要重新初始化 master 节点,请先执行 kubeadm reset 操作

    1、设置安装过程中用到的环境变量

    • APISERVER_NAME 不能是 master 的 hostname
    • APISERVER_NAME 必须全为小写字母、数字、小数点,不能包含减号
    • POD_SUBNET 所使用的网段不能与 master节点/worker节点 所在的网段重叠。
    # 只在 master 节点执行
    # 替换 x.x.x.x 为 master 节点实际 IP,本例为10.9.41.115(请使用内网 IP)
    # export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
    export MASTER_IP=x.x.x.x
    # 替换 apiserver.demo 为 您想要的 dnsName
    export APISERVER_NAME=apiserver.demo
    # Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
    export POD_SUBNET=10.100.0.1/16
    echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
    

    2、创建初始化配置文件并执行初始化

    查看完整配置选项参考 https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2
    cat <<EOF > ./kubeadm-config.yaml
    apiVersion: kubeadm.k8s.io/v1beta2
    kind: ClusterConfiguration
    kubernetesVersion: v1.16.0
    imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
    controlPlaneEndpoint: "${APISERVER_NAME}:6443"
    networking:
      serviceSubnet: "10.96.0.0/16"
      podSubnet: "${POD_SUBNET}"
      dnsDomain: "cluster.local"
    EOF
    
    # kubeadm init
    # 根据您服务器网速的情况,您需要等候 3 - 10 分钟
    kubeadm init --config=kubeadm-config.yaml --upload-certs
    
    # 配置 kubectl
    rm -rf /root/.kube/
    mkdir /root/.kube/
    cp -i /etc/kubernetes/admin.conf /root/.kube/config

    3、安装Calico网络插件

    # 参考文档 https://docs.projectcalico.org/v3.8/getting-started/kubernetes/
    wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
    sed -i "s#192.168.0.0/16#${POD_SUBNET}#" calico.yaml
    kubectl apply -f calico.yaml

    4、检查初始化结果

    # 只在 master 节点执行
    
    # 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
    watch kubectl get pod -n kube-system -o wide
    
    # 查看 master 节点初始化结果
    kubectl get nodes -o wide

    初始化Worker节点

    获得join命令参数:

    # 只在 master 节点执行
    kubeadm token create --print-join-command

     复制这段输出结果,后面要用

    在所有Worker节点执行:

    # 只在 worker 节点执行
    # 替换 x.x.x.x 为 master 节点实际 IP,本例10.9.41.115(请使用内网 IP)
    export MASTER_IP=x.x.x.x
    # 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
    export APISERVER_NAME=apiserver.demo
    echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
    # 替换为 master 节点上 kubeadm token create 命令的输出
    kubeadm join apiserver.demo:6443 --token g02x2p.kqxc0hky31n8zgiq     --discovery-token-ca-cert-hash sha256:27d65191d9c91f65339bb89a43e8d352ada7f6d0723a1d88a2fee8cb65a1d275

    检查初始化结果

    # 只在 master 节点执行
    kubectl get nodes -o wide

     补充:移除worker节点

    如果添加到集群出错,您可以移除 worker 节点,再重新尝试添加

    # 在要移除的 worker 节点执行
    kubeadm reset
    # 在 master 节点执行
    kubectl delete node k8s-worker-x
  • 相关阅读:
    使用Strust2框架写HelloWorld
    MyEclipse10搭建Strust2开发环境
    MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
    HTML一些标签注意事项
    Spring常用注解
    VB.NET中Module的概念
    vs2008发布项目失败的解决方法
    Java开发中的一些小技巧
    DNS服务器
    关于在Struts2的Action中使用domain模型接收参数的问题
  • 原文地址:https://www.cnblogs.com/xjcn/p/11597433.html
Copyright © 2020-2023  润新知