试图在裸机上构建k8s集群。我将CoreOS用作节点的主机OS。我对于为群集网络安装法兰绒的方式有些困惑。
我从文档中看到,我可以将其下载到主机并使用systemd
或使用k8s DaemonSet manifest启动它。
我个人喜欢DaemonSet的想法,因为k8将负责在每个节点上运行法兰绒。但是将法兰绒作为k8s-DaemonSet运行是否有任何缺点?
文档还指出,我应该先运行法兰绒,再使用其他Pod。这就是为什么我的第一个想法是将其放在为kubelet --pod-manifest
参数指定的路径上的原因。但是由于法兰绒的yaml不包含Pod
而是DaemonSet
和一些RBAC相关的实体,因此我使用--pod-manifest
dir部署法兰绒时遇到以下错误:
Can't process manifest file "/etc/kubernetes/manifests/flannel.yaml": /etc/kubernetes/manifests/flannel.yaml: couldn't parse as pod(invalid pod: &rbac.ClusterRole{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"flannel", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Rules:[]rbac.PolicyRule{rbac.PolicyRule{Verbs:[]string{"get"}, APIGroups:[]string{""}, Resources:[]string{"pods"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}, rbac.PolicyRule{Verbs:[]string{"list", "watch"}, APIGroups:[]string{""}, Resources:[]string{"nodes"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}, rbac.PolicyRule{Verbs:[]string{"patch"}, APIGroups:[]string{""}, Resources:[]string{"nodes/status"}, ResourceNames:[]string(nil), NonResourceURLs:[]string(nil)}}, AggregationRule:(*rbac.AggregationRule)(nil)}), please check manifest file.
因此,如果我想在特定节点上的其他Pod之前执行法兰绒yaml-manifest,应该放在哪里?还是唯一的选择是执行
kubectl apply -f flannel.yaml
?
最佳答案
该 list 包括一个ClusterRole,一个ClusterRoleBinding,一个ConfigMap和DaemonSet资源(隐式定义了pod资源),因此它无法与--pod-manifest一起运行,后者只需要pod资源定义。
我没有在systemd和daemonset下运行绒布的比较经验。
我将看一下AddOn管理器,以确保将kubernetes对象视为集群服务并在集群生命周期的早期启动:
https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/addon-manager/README.md
关于kubernetes - 我应该将法兰绒作为系统服务安装在裸机上还是作为带有k8s的DaemonSet运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48973394/