# k8s 安装 kubeadm

# 事先准备

  • 多台 Ubuntu 16.04+、CentOS 7 或 HypriotOS v1.0.1 + 系统
  • 每台机器最少 1GB+内存
  • 集群中所有机器之间网络连接正常
  • 每个节点有唯一 MAC 地址和 product_uuid
  • 打开某些端口。请参阅以下部分

# 检查所需端口

# Master 节点

端口范围 用途
6443 * Kubernetes API server
2379-2380 etcd server client API
10250 Kubelet API
10251 kube-scheduler
10252 kube-controller-manager
10255 Read-only Kubelet API (Heapster)

# 工作节点

端口范围 用途
10250 Kubelet API
10255 Read-only Kubelet API (Heapster)
30000-32767 NodePort Services 默认端口范围。

# Docker 安装

在机器安装 Docker,推荐使用 1.12 版本(v1.10 和 v1.11 也可以正常使用),1.13 和 17.03+版本未经过 k8s 团队的测试和验证。有关安装说明,请参阅 Docker 官方文档 Docker 安装。

# kubectl 安装

在所有机器上安装 kubectl,可参考: kubectl 安装。

# kubelet 和 kubeadm 安装

在所有机器上安装以下软件包:

  • kubelet
  • kubeadm

注意:如果机器上已经安装了 kubeadm,则应需要 apt-get update && apt-get upgrade 或者 yum update 获得最新版本的 kubeadm。如果想了解不同版本的 kubeadm,请参考

配置机器:

  • SSH 登录主机。
  • 如果使用的是 Ubuntu 或 HypriotOS,请运行:
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm
  • 如果使用的是 CentOS,请运行:

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
            https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOF
    setenforce 0
    yum install -y kubelet kubeadm
    systemctl enable kubelet && systemctl start kubelet
    

    执行完后,kubelet 会进入每隔几秒重新启动一次的循环模式,因为 kubelet 在等待 kubeadm 发出的命令。

    注意:必须使用运行 setenforce 0 命令来禁用 SELinux,因为需要允许容器访问主机文件系统,这是配置 pod 网络所要求的。(直到 kubelet 中对 SELinux 支持得到改进)

Last Updated: 4/15/2023, 8:33:17 PM