美文网首页
在 CentOS 7 上安装 Kubernetes

在 CentOS 7 上安装 Kubernetes

作者: chenj23986526 | 来源:发表于2019-05-23 01:35 被阅读0次
    • 准备工作
      • master 节点要求 cpu 至少两核
      • 使用 root
      • 使当前主机名可在内网访问
      • 确保每台机器时间同步
    • 安装 Docker
      • yum install -y yum-utils device-mapper-persistent-data lvm2
      • yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      • yum -y install docker-ce docker-ce-cli containerd.io
      • GPG key fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
    • 配置 Docker
      • mkdir /etc/docker

      • 修改配置文件

        cat > /etc/docker/daemon.json <<EOF
        {
          "registry-mirrors": ["https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com"],
          "exec-opts": ["native.cgroupdriver=systemd"],
          "log-driver": "json-file",
          "log-opts": {
            "max-size": "100m"
          },
          "storage-driver": "overlay2",
          "storage-opts": [
            "overlay2.override_kernel_check=true"
          ]
        }
        EOF
        
      • systemctl daemon-reload

      • systemctl enable docker

    • 设置 Docker 代理(可选)
      • vim /usr/lib/systemd/system/docker.service
      • Environment="HTTPS_PROXY=http://<ip>:<port>"
      • Environment="HTTP_PROXY=http://<ip>:<port>"
      • Environment="NO_PROXY=localhost, 127.0.0.1"
      • systemctl daemon-reload
    • 启动 Docker
      • systemctl start docker
      • docker info
    • 安装 kubeadm, kubelet, kubectl
      • 增加 kubernetes 的 repo (使用阿里云镜像)
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
      exclude=kube*
      EOF
      
      • setenforce 0
      • sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
      • yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
      • systemctl enable kubelet
      • systemctl start kubelet
    • 禁用 Swap
      • swapoff -a
      • sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
    • 设置 sysctl
      • 修改系统配置
      cat <<EOF > /etc/sysctl.d/k8s.conf
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      EOF
      
      • sysctl --system
    • 关闭防火墙
      • systemctl stop firewalld
      • systemctl disable firewalld
    • 以上步骤所有机器都要执行
    • 创建 Master
      • 切换到 Master 主机
      • kubeadm config print init-defaults > ./kubeadm-init.yaml
      • 修改 advertiseAddress 为主机IP地址
      • 修改 kubernetesVersion 为需要安装的版本号
      • 修改 podSubnet10.244.0.0/16 (flannel 默认网段)
      • 删除默认 token
      • kubeadm config images pull --config ./kubeadm-init.yaml
      • kubeadm init --config ./kubeadm-init.yaml
      • 成功后记录最后生成的 join 命令
      • 若 token 过期可使用如下命令再生成
      • kubeadm token create --print-join-command
    • 配置 Master 用户环境
      • mkdir -p $HOME/.kube
      • sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      • sudo chown $(id -u):$(id -g) $HOME/.kube/config
    • 安装 pod 网络 - flannel
    • 创建 Node
      • 切换到 Node 主机
      • 执行刚才记录的 kubeadm join 完整命令
      • kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
      • 如果 join 卡住,可以使用 -v10 打印具体日志

    相关文章

      网友评论

          本文标题:在 CentOS 7 上安装 Kubernetes

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