etcd排查思路
排查思路,如下: 1. iptables防火墙、Selinux问题。 2. 时间是否同步。 3. 二进制文件是否存在 4. 检查日志journalctl -xefu 或者是查询/var/log/message 或者 日志目录 4. 配置文件没修改完或者多个空格? 5. 目录是否存在 6. 证书是否存在,且是否正确[初始化的时候需要指定三台etcd机器,我就搞错了,第一次错误,证书问题搞了好久]新机器加入etc集群
https://github.com/k8sp/sextant/issues/333
Kubernetes网络模型设计基本要求
一个Pod一个IP
每个Pod独立IP,Pod内所有容器共享网络(同一个IP)
所有容器都可以与所有其他容器通信
所有节点都可以与所有容器通信
网络模型实现flannel
calico
weaveworks
ovs
contiv
romana
cilium
前两个比较用的多。flannel小规模[百台以下],calcio基于BGP[路由表]适合大规模。但是维护成本高[上百台以上]。当前我们配置是flannel网络。
ip 操作系统 角色 安装软件 主机名192.168.0.10 centos7.6_x64 master1 docker,etcd 8bettest518
192.168.0.7 centos7.6_x64 node1 docker 8bettest520
192.168.0.8 centos7.6_x64 node2 docker 8bettest521
flannel 只需要部署在node节点上,master不用部署
以下部署步骤在规划的每个node节点都操作。
安装好docker
yum install -y yum-utils device-mapper-persistent-data lvm2 && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && yum list docker-ce --showduplicates | soft -r && yum install docker-ce -y && systemctl start docker && systemctl enable docker配置docker加速器
cat > /etc/docker/daemon.json<<EOF { "registry-mirrors":["https://registry.docker-cn.com"] } EOF service docker restart 部署Flannel 网络向 master写入集群 Pod 网段信息(etcd主节点上操作)
cd /data/soft/etcd/ssl/ /data/soft/etcd/bin/etcdctl \ --ca-file=etd-ca.pem --cert-file=etd-server.pem \ --key-file=etd-server-key.pem \ --endpoints="https://192.168.0.10:2379,https://192.168.0.12:2379,https://192.168.0.4:2379" \ set /coreos.com/network/config '{ "Network": "172.18.0.0/16", "Backend": {"Type": "vxlan"}}' 返回写入结果: { "Network": "172.18.0.0/16", "Backend": {"Type": "vxlan"}}注意:
Falnnel要用etcd存储自身一个子网信息,所以要保证能成功连接Etcd,写入预定义子网段:
flanneld 当前版本 (v0.10.0) 不支持 etcd v3,故使用 etcd v2 API 写入配置 key 和网段数据;
写入的 Pod 网段 ${CLUSTER_CIDR} 必须是 /16 段地址,必须与 kube-controller-manager 的 --cluster-cidr 参数值一致;
解压安装 tar -xvf flannel-v0.11.0-linux-amd64.tar.gz mv flanneld mk-docker-opts.sh /data/soft/kubernetes/bin/ 配置Flannel cat << EOF | tee /data/soft/kubernetes/cfg/flanneld FLANNEL_OPTIONS="--etcd-endpoints=https://192.168.0.10:2379,https://192.168.0.12:2379,https://192.168.0.4:2379 -etcd-cafile=http://www.likecs.com/data/soft/etcd/ssl/etcd-ca.pem -etcd-certfile=http://www.likecs.com/data/soft/etcd/ssl/etcd-server.pem -etcd-keyfile=http://www.likecs.com/data/soft/etcd/ssl/etcd-server-key.pem" EOF 注意: 这里是定义一个FLANNEL_OPTIONS的变量:指定etcd的位置和连接etcd集群的证书,好让flannel网络读取etcd创建 flanneld 的 flanneld.service 文件,配置所有node节点
vim /usr/lib/systemd/system/flanneld.service [Unit] Description=Flanneld overlay address etcd agent After=network-online.target network.target Before=docker.service [Service] Type=notify EnvironmentFile=http://www.likecs.com/data/soft/kubernetes/cfg/flanneld ExecStart=http://www.likecs.com/data/soft/kubernetes/bin/flanneld --ip-masq $FLANNEL_OPTIONS ExecStartPost=http://www.likecs.com/data/soft/kubernetes/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.env Restart=on-failure [Install] WantedBy=multi-user.target注意: