预先环境准备
- 虚拟机介绍和安装
3台虚拟机通过centOS7克隆,并同时按照了的docker。
系统类型 | IP地址 | 节点角色 | CPU | Memory | Hostname |
---|---|---|---|---|---|
Centos7 | 192.168.18.151 | master | 1 | 1G | node51 |
Centos7 | 192.168.18.152 | worker | 1 | 1G | node52 |
Centos7 | 192.168.18.153 | worker | 1 | 1G | node53 |
- 三台机器接受所有ip的数据包转发
$ vi /lib/systemd/system/docker.service
#找到ExecStart=xxx,在这行上面加入一行,内容如下:(k8s的网络需要)
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
- 三台机器启动服务
$ systemctl daemon-reload
$ service docker start
系统设置(所有节点)
- 关闭、禁用防火墙(让所有机器之间都可以通过任意端口建立连接)
- 设置系统参数 - 允许路由转发,不对bridge的数据进行处理
#写入配置文件
$ cat <<EOF > /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#生效配置文件
$ sysctl -p /etc/sysctl.d/k8s.conf
- 配置host文件
#配置host,使每个Node都可以通过名字解析到ip地址
$ vi /etc/hosts
#加入如下片段(ip地址和servername替换成自己的)
192.168.18.151 node51
192.168.18.152 node52
192.168.18.153 node53
准备二进制文件
[下载地址(kubernetes 1.9.0版本)] (https://pan.baidu.com/s/1KU1VoJsVcb1K3lSkyxjtLQ)
- 将下载的k8s上传到linux服务器上并配置环境变量
准备配置文件(所有节点)
[下载地址(kubernetes-starter文件夹)] https://pan.baidu.com/s/1fru2HKv3ebI9Wktjq-njcg
我们下载了kubernetes各个组件的二进制文件,这些可执行文件的运行也是需要添加很多参数的,包括有的还会依赖一些配置文件。现在我们就把运行它们需要的参数和配置文件都准备好。
文件说明
- gen-config.sh:shell脚本,用来根据每个老铁自己的集群环境(ip,hostname等),根据下面的模板,生成适合大家各自环境的配置文件。生成的文件会放到target文件夹下。
- kubernetes-simple:简易版kubernetes配置模板(剥离了认证授权)。适合刚接触kubernetes的老铁,首先会让大家在和kubernetes初次见面不会印象太差(太复杂啦~~),再有就是让大家更容易抓住kubernetes的核心部分,把注意力集中到核心组件及组件的联系,从整体上把握kubernetes的运行机制。
- kubernetes-with-ca:在simple基础上增加认证授权部分。大家可以自行对比生成的配置文件,看看跟simple版的差异,更容易理解认证授权的(认证授权也是kubernetes学习曲线较高的重要原因)
- service-config:这个先不用关注,它是我们曾经开发的那些微服务配置。等我们熟悉了kubernetes后,实践用的,通过这些配置,把我们的微服务都运行到kubernetes集群中。
- 修改配置文件
拷贝到其他节点:
scp -r kubernetes-starter node52:`pwd`
scp -r kubernetes-starter node53:`pwd`
执行gen-config.sh常见问题:
- gen-config.sh: 3: gen-config.sh: Syntax error: "(" unexpected
- bash版本过低,运行:bash -version查看版本,如果小于4需要升级
- 不要使用 sh gen-config.sh的方式运行(sh和bash可能不一样哦)
- config.properties文件填写错误,需要重新生成
再执行一次./gen-config.sh simple即可,不需要手动删除target
参考:
首席k8s布道师,高塔: https://github.com/kelseyhightower
特别感谢 IT人故事会:https://www.jianshu.com/nb/29343441
源码:https://github.com/limingios/msA-docker k8s分支和https://github.com/limingios/kubernetes-starter
来源:CSDN
作者:Jeremy_Lee123
链接:https://blog.csdn.net/lixinkuan328/article/details/103954756