Flannel 开源项目安装与使用指南
flannel项目地址:https://gitcode.com/gh_mirrors/fla/flannel
目录结构及介绍
在 flannel
的主仓库中,其主要由以下几个关键子目录组成:
-
cmd: 包含了
kube-flannel
,flanneld
, 和其他相关工具的执行代码。 -
pkg: 内置了大量的程序包,涵盖了从网络控制、路由到管理集群内的网络配置等功能的实现。
-
Documentation/: 此目录包含了详细的文档,包括如何设置和运行
flannel
, 其中最重要的两个文件是cluster.md
, 它介绍了如何将flannel
集成至Kubernetes环境中;还有standalone.md
, 探讨了在非Kubernetes环境下的部署方法。
启动文件介绍
flanneld
是 Flannel 主要的服务组件。通常情况下它通过 /usr/bin/flanneld
脚本来启动。然而,在大多数容器编排系统例如 Kubernetes 中,flanneld 服务常被设计为一个守护进程来自动启动并持续运行。该守护进程与系统服务 manager(如systemd或upstart)整合以确保稳定性和可靠性。
如何手动启动 flanneld:
可以通过以下命令进行简单测试:
/usr/bin/flanneld --ip-masq
此外,对于完整的集成场景,您应当创建一个systemd
服务文件来进行自动化的启动与管理:
[Unit]
Description=Flannel daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/flanneld --ip-masq
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
保存此服务文件至 /etc/systemd/system/flanneld.service
并利用 systemctl enable
命令启用它.
最后别忘记重新加载 system manager 的数据以便使其生效:
systemctl daemon-reload
完成以上步骤之后, 您便能够运用 systemctl start flanneld
来开启服务. 当遇到问题时, 可使用journalctl -u flanneld
进行日志查阅。
配置文件介绍
Flannel 使用 JSON 格式的配置文件进行设置, 通常位于 /etc/kubernetes/manifests/flanneld.yaml
. 下面提供了具体的示例内容:
apiVersion: v1
kind: Pod
metadata:
name: kube-flannel-ds
namespace: kube-system
spec:
hostNetwork: true
priorityClassName: critical-infrastructure
restartPolicy: Always
volumes:
- name: cni
hostPath:
path: /var/lib/cni
- name: run
hostPath:
path: /run/flannel
- name: flannel-cfg
configMap:
name: flannel-config-map
initContainers:
- name: install-cni
image: quay.io/coreos/flannel:v0.10.0
command:
- cp
- -t
- /var/lib/cni/
- /etc/kube-flannel/cni-conf.json
containers:
- name: kube-flannel-agent
image: quay.io/coreos/flannel:v0.10.0
securityContext:
privileged: true
envFrom:
- configMapRef:
name: flannel-cfg
volumeMounts:
- name: cni
mountPath: /var/lib/cni
- name: run
mountPath: /run/flannel
- name: flannel-cfg
mountPath: /etc/kube-flannel/
上述 YAML 文件不仅构建了Kubernetes中的 DaemonSet 而且还定义了如何在节点上自动安装CNI插件,并将flanneld作为独立进程的一部分嵌入。务必查看并更新 flannel-cfg
ConfigMap 中的相关配置项来适应您的具体情况。 对于不同的使用情境和需求, 配置参数会有所变化, 因此在实际操作之前请仔细检查官方文档来获取更详尽的信息。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考