kubeadm入门
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubeadm入门相关的知识,希望对你有一定的参考价值。
参考技术A 假定 Kubeadm 已经安装在节点上。初始化集群的第一阶段是启动主节点。主服务器负责运行控制平面组件、 etcd和API 服务器。客户端将与 API 通信,以调度工作负载和管理集群的状态
kubeadm init --token=102952.1a7dd4cc8d1f4cc5 --kubernetes-versionsion -o short)
在生产环境中,建议排除明文令牌, kubeadm 会生成一个令牌。
要管理 Kubernetes 集群,需要客户端配置和证书。这个配置是在 kubeadm 初始化集群时创建的。该命令将配置复制到用户的主目录,并设置环境变量以供 CLI 使用
容器网络接口(CNI)定义了不同节点及其工作负载应该如何通信。有多个网络解决方案可用,如下:
在此我们使用 WeaveWorks :
cat /opt/weave-kube.yaml
这可以使用 kubectl apply 进行部署
kubectl apply -f /opt/weave-kube.yaml
Weave 现在会在集群中以一系列 pod 的形式部署。它的状态可以通过命令 kubectl get pod -n kube-system 查看
目前 Master和CNI 初始化完成,其他节点就可以加入集群,只要它们拥有正确的令牌。令牌可以通过 kubeadm token 进行管理,如下:
在第二个节点上,运行该命令加入集群,并提供主节点的 IP 地址
其中
标记用于绕过 Discovery Token 验证 。由于这个令牌是动态生成的,所以不能在步骤中包含它。在生产环境中,使用 kubeadm init 提供的令牌。
集群现在已经初始化。主节点将管理集群,而我们的一个工作节点将运行容器工作负载
Kubernetes CLI(称为kubectl) 现在可以使用配置访问集群。例如,命令 kubectl get nodes 将返回我们集群中的两个节点:
集群中的两个节点的状态现在应该是 Ready 。这意味着我们的部署可以被调度和启动。使用 Kubectl 可以部署 pods 。向主节点发出命令,每个节点只负责执行工作负载。下面的命令根据Docker镜像 katacoda/ Docker -http-server 创建一个 Pod 。
可以通过以下方式查看 Pod 创建的状态
运行后,可以看到 Docker 容器运行在节点上。
Kubernetes 有一个基于 web 的 Dashboard UI ,借助它可以可视化 Kubernetes 集群
使用命令 kubectl apply -f dashboard.yaml 部署仪表板 yaml
指示板被部署到 kube-system 名称空间中。
命令 kubectl get pods -n kube-system 查看部署的状态
登录时需要使用 ServiceAccount 。 ClusterRoleBinding 用于为新的 ServiceAccount (admin-user) 分配集群中的 cluster-admin 角色
这意味着他们可以控制 Kubernetes 的所有方面。使用 ClusterRoleBinding和RBAC ,可以根据安全需求定义不同级别的权限。
创建 ServiceAccount 后,
要找到要登录的令牌:
kubectl -n kube-system describe secret $(kubectl -n kube-system grep admin-user | awk 'print $1')
部署完成仪表板,它使用 externalIPs 将服务绑定到端口 8443 。这使得仪表板对集群外部可用。
可以在 https://2886795312-8443-xdp.com/ 上查看。
使用 admin-user 令牌访问指示板。对于生产环境,建议使用 kubectl 代理来访问仪表板,而不是使用 externalIPs 。
使用 admin-user 令牌访问指示板。对于生产环境,建议使用 kubectl proxy 来访问仪表板,而不是使用 externalIPs 。
详情请访问:
以上是关于kubeadm入门的主要内容,如果未能解决你的问题,请参考以下文章
kubeadm工作原理-kubeadm init原理分析-kubeadm join原理分析