kubernetes环境搭建(上)

预先环境准备

  • 虚拟机介绍和安装

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常见问题:

  1. gen-config.sh: 3: gen-config.sh: Syntax error: "(" unexpected
  • bash版本过低,运行:bash -version查看版本,如果小于4需要升级
  • 不要使用 sh gen-config.sh的方式运行(sh和bash可能不一样哦)
  1. 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

发布了382 篇原创文章 · 获赞 306 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/lixinkuan328/article/details/103954756