一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情。
本章节是回顾第一章节kubeadmin,搭建k8s集群中重要步骤和参数的总结
节点名示例:k8s-master是Master,k8s-node1和k8s-node2是Node。
(1)安装Docker
Docker安装过程较为简单,在此不再赘述。
(2)安装kubelet、kubadm和kubectl
kubelet运行在集群所有节点上,负责启动Pod和容器。
kubeadm用于初始化集群。
kubectl是k8s命令行工具。通过kubectl可以部署和管理应用,查看、创建、删除和更新各种资源和组件。
(3)用kubadmin创建Cluster
(3.1)初始化Master
kubeadm init
--apiserver-advertise-address指明用主节点的哪个接口与集群的其他节点通信。如果主节点有多个接口,建议明确指定,如果不指定,kubeadm会自动选择有默认网关的接口。
--pod-network-cidr指定Pod网络的范围。k8s支持多种网络方案,而且不同网络方案对--pod-network-cidr有自己的要求,我们将使用flannel网络方案,所以这里设置为10.244.0.0/16,而且必须设置成这个CIDR。当然我们还可以使用其他网络方案,比如Canal。
生成KubeConfig文件,kubelet需要用这个文件与主节点通信
(3.2)配置kubectl
启用kubectl命令的补全功能
echo "source <(kubectl completion bash)" >> ~/.bashrc
(3.3)安装Pod网络
要让Kubernetes 集群能够工作,必须安装Pod网络,否则Pod之间无法通信。Kubernetes支持多种网络方案,这里我们就使用flannel
kubectl appply -f kube-flannel.yml
(3.4)添加k8s-node1和k8s-node2
kubadmin join
目前所有节点都是NotReady未就绪,这是因为每个节点都需要启动很多组件,这些组件都是在Pod中运行,需要首先从Google下载镜像,需要先自行解决网络问题
可以通过kubectl describe pod
总结
在集群安装完毕后,记得安装和启用命令补全工具bash-completion,这个对于以后输入命令是非常方便的。需要注意的是 RHEL 7/CentOS 7 的默认安装类型是最小安装,它是没有这个功能的。要启用这个功能,你需要安装一个 bash-completion 包,然后退出 bash,重新登录即可(未重启 bash 的情况下继续使用可能出现补全功能异常,出现一堆代码)