flannel部署及常见问题

  • A+
所属分类:日志

flannel是一个专门为kubernetes定制的三层网络解决方案,主要用于解决容器的跨主机通信问题。Flannel 直接使用 Kubernetes API 或 ETCD 存储网络配置、分配的子网以及任何辅助数据(如主机的公网 IP)。数据包使用几种后端机制之一进行转发,包括 VXLAN 和各种云集成Flannel 需要在集群中的每台主机上运行一个名为 flanneld的代理程序,负责从群集预配置地址空间中为每台主机分配一个网段(subnet),本机上所有容器的Ip地址都将从该网段进行分配。

flannel最新版本下载地址:https://github.com/coreos/flannel/releases

flannel部署及常见问题

下载flannel并安装


下载

wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz

解压缩

mkdir flannel && tar xzvf flannel-v0.10.0-linux-amd64.tar.gz -C flannel

二进制安装

cd flannel && rm -rf README.md

拷贝二进制文件到/usr/bin目录

scp * gcdr-kubernetes-node01:/usr/bin

scp * gcdr-kubernetes-node02:/usr/bin

scp * docker-node3:/usr/bin

创建生成flannel证书和私钥

flannel 从 etcd 集群存取网段分配信息,而 etcd 集群启用了双向 x509 证书认证,所以需要为 flanneld 生成证书和私钥。

创建证书签名请求:

cd /opt/ssl/

cat > /opt/ssl/flanneld-csr.json <<EOF

{
"CN": "flanneld",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "generalichina.com"
}
]
}

EOF

该证书只会被 kubectl 当做 client 证书使用,所以 hosts 字段为空;

生成证书和私钥:

/opt/local/cfssl/cfssl gencert -ca=/etc/kubernetes/ssl/ca.pem -ca-key=/etc/kubernetes/ssl/ca-key.pem -config=/opt/ssl/config.json -profile=kubernetes flanneld-csr.json | /opt/local/cfssl/cfssljson -bare flanneld

向 etcd 写入集群 Pod 网段信息


此处为隐藏的内容!
发表评论并刷新,方可查看

扩展阅读


1,main.go:232] Failed to create SubnetManager: parse "http://127.0.0.1:2379: first path segment in URL cannot contain colon

将-etcd-endpoints=,配置中的引号去掉。一个引号引发的惨案。

shengbao

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: