zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    mysq 日期相减
    说说时间观与时间管理——北漂18年(71)
    ionic之切换开关
    ionic之单选框
    SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE locks在RR模式下可以看到最新的记录
    14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读
    14.5.2.2 autocommit, Commit, and Rollback
    14.5.2 事务隔离级别
    对于唯一索引使用唯一条件搜索, InnoDB 只锁定找到的index record,不是它之前的区间
    mysql explain 解释
  • 原文地址:https://www.cnblogs.com/xjcn/p/11597433.html
Copyright © 2011-2022 走看看