安装 kubeadm

kubeadm 是 kubernetes 的集群安装工具,能够快速安装 kubernetes 集群。

配置kubernetes软件源

  • kubernetes阿里云源
    1. echo "[kubernetes]
    2. name=Kubernetes
    3. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    4. enabled=1
    5. gpgcheck=1
    6. repo_gpgcheck=1=
    7. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg" >>/etc/yum.repos.d/kubernetes.repo

安装工具

安装kubernetes所需工具

  • kubelet、kubeadm、kubectl
    1. sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

启动kubelet

  • 安装完成后启动 kubelet服务
    1. systemctl enable --now kubelet

配置kubeadm

概述

安装 kubernetes 主要是安装它的各个镜像,而 kubeadm 已经为我们集成好了运行 kubernetes 所需的基本镜像。但由于国内的网络原因,在搭建环境时,无法拉取到这些镜像。此时我们只需要修改为阿里云提供的镜像服务即可解决该问题。

配置文件

  • 创建文件存储路径

    1. mkdir -p /usr/local/docker/kubernetes && cd /usr/local/docker/kubernetes
  • 获取默认配置

    1. kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm-config.yml
  • 编辑获取到的文件

    1. vi kubeadm-config.yml

调整里面主要注释的几个地方

  1. apiVersion: kubeadm.k8s.io/v1beta2
  2. bootstrapTokens:
  3. - groups:
  4. - system:bootstrappers:kubeadm:default-node-token
  5. token: abcdef.0123456789abcdef
  6. ttl: 24h0m0s
  7. usages:
  8. - signing
  9. - authentication
  10. kind: InitConfiguration
  11. localAPIEndpoint:
  12. # 改为自己的 master 地址
  13. advertiseAddress: 192.168.233.200
  14. bindPort: 6443
  15. nodeRegistration:
  16. criSocket: /var/run/dockershim.sock
  17. name: k8smaster
  18. taints:
  19. - effect: NoSchedule
  20. key: node-role.kubernetes.io/master
  21. ---
  22. apiServer:
  23. timeoutForControlPlane: 4m0s
  24. apiVersion: kubeadm.k8s.io/v1beta2
  25. certificatesDir: /etc/kubernetes/pki
  26. clusterName: kubernetes
  27. controllerManager: {}
  28. dns:
  29. type: CoreDNS
  30. etcd:
  31. local:
  32. dataDir: /var/lib/etcd
  33. # 由于国外镜像过慢,调整为阿里云镜像仓库
  34. imageRepository: registry.aliyuncs.com/google_containers
  35. kind: ClusterConfiguration
  36. kubernetesVersion: v1.17.4
  37. networking:
  38. dnsDomain: cluster.local
  39. # 配置成 Calico 的默认网段
  40. podSubnet: 192.168.0.0/16
  41. serviceSubnet: 10.96.0.0/12
  42. scheduler: {}
  43. ---
  44. # 开启 IPVS 模式
  45. apiVersion: kubeproxy.config.k8s.io/v1alpha1
  46. kind: KubeProxyConfiguration
  47. featureGates:
  48. SupportIPVSProxyMode: true
  49. mode: ipvs

查看和拉取镜像

  • 查看镜像文件版本
    1. kubeadm config images list --config kubeadm-config.yml

    registry.aliyuncs.com/google_containers/kube-apiserver:v1.17.4 registry.aliyuncs.com/google_containers/kube-controller-manager:v1.17.4 registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.4 registry.aliyuncs.com/google_containers/kube-proxy:v1.17.4 registry.aliyuncs.com/google_containers/pause:3.1 registry.aliyuncs.com/google_containers/etcd:3.4.3-0 registry.aliyuncs.com/google_containers/coredns:1.6.5

  • 拉取配置中所需的镜像
    1. kubeadm config images pull --config kubeadm-config.yml

    [config/images] Pulled registry.aliyuncs.com/google_containers/kube-apiserver:v1.17.4 [config/images] Pulled registry.aliyuncs.com/google_containers/kube-controller-manager:v1.17.4 [config/images] Pulled registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.4 [config/images] Pulled registry.aliyuncs.com/google_containers/kube-proxy:v1.17.4 [config/images] Pulled registry.aliyuncs.com/google_containers/pause:3.1 [config/images] Pulled registry.aliyuncs.com/google_containers/etcd:3.4.3-0 [config/images] Pulled registry.aliyuncs.com/google_containers/coredns:1.6.5