kubernetes - 我应该将法兰绒作为系统服务安装在裸机上还是作为带有k8s的DaemonSet运行?

标签 kubernetes flannel

试图在裸机上构建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/

相关文章:

kubernetes - kube-dns 获取 kube-proxy 无法列出 *core.Endpoints

kubernetes - 容器和 Kubernetes 是 IaaS 还是 PaaS?

azure - Strimzi Kafka 监听器自定义证书配置

docker - Kubernetes - 如何向所有小兵发送请求?

docker - 来自 kubernetes 容器的响应丢失

centos - Kube-api 服务器没有出现在 Baremetal 上

kubernetes - "services is forbidden: User\"系统 :serviceaccount:tick:external-dns\"cannot list resource\"services\"in API group\"\"at the cluster scope"

kubernetes - 普罗米修斯平滑度使用度量

linux - 为什么 Kubernetes 返回 ioctl 的奇怪结果

dns - kube-dns 一直处于 ContainerCreating 状态