For the complete documentation index, see llms.txt. This page is also available as Markdown.

使用 kubeadm 部署 kubernetes

kubeadm 提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建 kubernetes 集群的最佳实践。

安装 Docker

参考 安装 Docker 一节安装 Docker。

安装 kubelet kubeadm kubectl

Ubuntu/Debian

$ apt-get update && apt-get install -y apt-transport-https
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

$ cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

$ apt-get update
$ apt-get install -y kubelet kubeadm kubectl

CentOS/Fedora

修改内核的运行参数

配置 kubelet

修改 kubelet.service

/etc/systemd/system/kubelet.service.d/10-proxy-ipvs.conf 写入以下内容

执行以下命令应用配置。

部署

master

  • --pod-network-cidr 10.244.0.0/16 参数与后续 CNI 插件有关,这里以 flannel 为例,若后续部署其他类型的网络插件请更改此参数。

执行可能出现错误,例如缺少依赖包,根据提示安装即可。

执行成功会输出

node 工作节点

另一主机 重复 部署 小节以前的步骤,安装配置好 kubelet。根据提示,加入到集群。

查看服务

所有服务启动后,查看本地实际运行的 Docker 容器。这些服务大概分为三类:主节点服务、工作节点服务和其它服务。

主节点服务

  • apiserver 是整个系统的对外接口,提供 RESTful 方式供客户端和其它组件调用;

  • scheduler 负责对资源进行调度,分配某个 pod 到某个节点上;

  • controller-manager 负责管理控制器,包括 endpoint-controller(刷新服务和 pod 的关联信息)和 replication-controller(维护某个 pod 的复制为配置的数值)。

工作节点服务

  • proxy 为 pod 上的服务提供访问的代理。

其它服务

  • Etcd 是所有状态的存储数据库;

使用

/etc/kubernetes/admin.conf 复制到 ~/.kube/config

执行 $ kubectl get all -A 查看启动的服务。

由于未部署 CNI 插件,CoreDNS 未正常启动。如何使用 Kubernetes,请参考后续章节。

部署 CNI

这里以 flannel 为例进行介绍。

flannel

检查 podCIDR 设置

master 节点默认不能运行 pod

如果用 kubeadm 部署一个单节点集群,默认情况下无法使用,请执行以下命令解除限制

Last updated