花了几天时间完整搭建了一次集群,中途还是碰到了许多问题,但通过推理与google去解决,还是非常有趣的一件事情。写篇文章记录下都碰到了哪些问题,做个总结吧,哈哈。
集群是在vultr上利用private ip建立的。(好奇如何实现集群的公网介入了?)这里还是要熟悉下其他几个云,比如azure,aliyun,amozon,gcp。
首先就是创建证书请求,创建kubernetes证书时在host字段吧ip填错了。后面验证etcd是才发现提示证书不对(某个ip后面多加了个点。。。)。
被迫开始了第二遍。。第二遍一开始一开始某个证书内容错了,导致创建后面的证书时报错。又重来。然后遇到的就是flannel这里,安装完了之后发现各节点相互之间不能ping通,但能看到网段,最开始想到的是看flannel的log,但log看上去都正常。然后想肯定是防火墙的问题,最初想到的就是iptables,这里有个错误就是第一时间并没有想起来centos还有firewall这个防火墙,(需要把两者关系搞清楚),研究了半天iptables,不行,想起来还有个firewall,直接stop掉,诶,行了,哈哈,开心。然后是安装dns,教程是安装kube-nds,我感觉写得不是很清楚,安装了coredns,根据官网操作,然后就碰到了应该是权限错误的问题,根据官网给出的错做,删除掉了对应的kind,(什么叫NON rbac部署?)然后还是提示配置文件有两个错误,看了下应该不是很关键的错误,直接跳过验证了。(需要进一步了解,)ok,ping pod可以找打ip了。
然后就是在安装fluented提示的log不能写入容器,这个问题因为时间关系没有解决,以及
fluented启动的3个pod总是有一个pod启动不起来。很奇怪。如果下次碰到在仔细研究。
对于常用的命令,还必须得熟练的计划学习。
以及一些基础的地方,还需要学习。
回溯一下整个过程的话,我认为有以下几点很关键:
首先是一定要细致,这一点让我走了弯路。
第二点是不要急于google,先主动的分析问题,可能的原因。
第三点就是对于整个系统的结构应该有一个大致的了解学习,这一点是平时需要完成的,做不到对每一个tech达到底层,但需要对其大致结构与工作原理熟悉,这样在排错时才能找到问题大致找在哪里,需要往哪里查找。
最后一点就是,逻辑推理的过程一定要缜密。确保每一个环节都是被得到检验的。这样才能真正的发先问题的点在哪里。
大致就是这些了。希望以后能够有所改进。
- 文章翻译
- Large-scale cluster management at Google with Borg
- Borg Omega and kubernetes
- scaling kubernetes to 7500 nodes
- bpf 的过去,未来与现在
- Demystifying Istio Circuit Breaking
- 知识图谱
- skill level up graph
- 一、运维常用技能
- 1.0 Vim (编辑器)
- 1.1 Nginx & Tengine(Web服务)
- 基础
- 1.2 zabbix
- 定义
- 登录和配置用户
- 1.3 RabbitMQ(消息队列)
- 原理
- RabbitMQ(安装)
- 1.4虚拟化技术
- KVM
- 1.5 Tomcat(Web中间件)
- 1.6Jenkins
- pipline
- 1.7 Docker
- network
- 1.8 Keepalived(负载均衡高可用)
- 1.9 Memcache(分布式缓存)
- 1.10 Zookeeper(分布式协调系统)
- 1.11 GitLab(版本控制)
- 1.12 Jenkins(运维自动化)
- 1.13 WAF(Web防火墙)
- 1.14 HAproxy负载均衡
- 1.15 NFS(文件传输)
- 1.16 Vim(编辑器)
- 1.17 Cobbler(自动化部署)
- 二、常用数据库
- 2.1 MySQL(关系型数据库)
- mysql主从复制
- 2.2 Mongodb(数据分析)
- 2.3 Redis(非关系数据库)
- 三、自动化运维工具
- 3.1 Cobbler(系统自动化部署)
- 3.2 Ansible(自动化部署)
- 3.3 Puppet(自动化部署)
- 3.4 SaltStack(自动化运维)
- 四、存储
- 4.1 GFS(文件型存储)
- 4.2 Ceph(后端存储)
- 五、运维监控工具
- 5.1 云镜
- 5.2 ELK
- 六、运维云平台
- 6.1 Kubernetes
- 6.2 OpenStack
- 介绍
- 安装
- 七、Devops运维
- 7.1 理念
- 7.2 Devops运维实战
- 八、编程语言
- 8.1 Shell
- 书籍《Wicked Cool Shell Scripts》
- 8.2 Python
- 8.3 C
- 8.4 Java
- leecode算法与数据结构
- 九、杂记
- 高优先级技能
- 知识点
- JD搜集
- 明显的短板
- 1.0 Python
- 1.1 Kubernetes
- 1.18.2 《kubernetes in action》
- 遗漏知识点
- 1.18.3 GCP、azure、aliyun
- Azure文档
- 1.18.5 《program with kubernetes》
- Istio
- HELM
- 《Kubernetes best practice》
- Kubernetes源码学习
- Scheduler源码
- 调度器入口
- 调度器框架
- Node筛选算法
- Node优先级算法
- pod抢占调度
- 入口
- 主要代码结构
- new
- 文章翻译
- Flannel
- 从二进制集群搭建
- 信息收集
- docker优化
- 1.2 shell
- 面试题
- grep awk sed 常见用法
- shell实践
- 1.3 Data structure(数据结构)
- Calico
- Aliyun文档以及重点模块
- git
- 大数据组件
- 前端,后端,web框架
- cgroup,namespace
- 内核
- Linux搜集
- crontab
- centos7常用优化配置
- centos Mariadb
- eBPF
- ebpf的前世今生
- Linux性能问题排查与分析
- 性能分析搜集
- 性能分析常用10条
- 网络性能优化
- 文本处理命令
- sql
- Iptables
- python面试题
- iptables
- iptables详细
- zabbix面试题,proj
- prometheus
- web中间件
- nginx
- Haproxy
- grep sed awk
- Linux常用命令
- 云平台
- 书籍Linux应用技巧
- kafka
- kafka面试题
- ETCD
- Jenkins
- 3天补充的点
- K8s源码
- K8s
- k8s实操
- etcd
- test
- BPF
- PSFTP使用
- StackOverflow问答精选
- 问题
- 我对于学习思考
- 修改ssh超时时间
- 课程目录
- 运维与运维开发
- The Person
- 个人杂谈
- mysql主从复制
- 对于工作的认识与思考