前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes学习记录(2)——基于Centos7.2的kubernetes集群自动安装与配置

kubernetes学习记录(2)——基于Centos7.2的kubernetes集群自动安装与配置

作者头像
胡了了
发布2017-12-28 17:20:44
9430
发布2017-12-28 17:20:44
举报

kubernetes集群的解决方案为:使用VMware Workstation Pro,安装3台Centos7 Minimal版(无图形化界面,防止电脑卡顿)的虚拟机。一台作为Master,另外两台作为Node。使用xshell软件操作虚拟机。

基于二进制文件离线安装的记录在kubernetes工作记录(1)——kubernetes1.7.4版集群的离线安装搭建过程记录 中,集成了CA认证、Flannel网络覆盖,经过多人测试,脚本没有问题。

通过xshell,可以使用rz(上传文件)、sz(下载文件)进行文本操作。需要先进行安装。Minimal版也不包括vim,需要自己安装。

代码语言:javascript
复制
yum -y install lrzsz vim

开发中一般最让人头疼的就是环境的搭建,在此,我初步学习了shell脚本的编写,虽然语法比较小白,但已能完成Master和Node服务器的自动安装与配置。下面分别进行记录。脚本中的IP等配置需要自己修改

1)Master端的安装与配置

采用的shell脚本为init-master-test.sh

代码语言:javascript
复制
#!/bin/bash
#关闭防火墙,并关闭防火墙的开机自启动安全的做法是在防火墙上配置各组件需要相互通信的端口号,这里选择直接禁用防火墙。
systemctl stop firewalld
systemctl disable firewalld
#禁用selinux,修改/etc/selinux/config
#SELINUX=enforcing改为SELINUX=disabled
echo "update /etc/selinux/config"
sed -i 's/enforcing/disabled/g' /etc/selinux/config
#安装etcd和kubernetes-master
#etcd为kubernetes集群的主数据库,配置文件通常不需要特别的参数配置,默认将监听127.0.0.1:2379地址供客户端链接使用,shell脚本执行后,可以通过etcdctl cluster-health验证etcd是否正确启动
yum -y install etcd kubernetes-master
#修改apiserver的配置文件/etc/kubernetes/apiserver
#修改-insecure-bind-address(apiserver绑定主机的非安全IP地址,改为masterip表示绑定master地址)
echo "update /etc/kubernetes/apiserver"
sed -i 's!KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1"!KUBE_API_ADDRESS="--insecure-bind-address=192.168.121.143"!' /etc/kubernetes/apiserver 
#修改kubernetes的配置文件/etc/kubernetes/config
#KUBE_MASTER:指定apiserver的url地址。我的master服务器ip为192.168.121.143
echo "update /etc/kubernetes/config"
sed -i 's!127.0.0.1!192.168.121.143!' /etc/kubernetes/config
systemctl daemon-reload
#让etcd kube-apiserver kube-scheduler kube-controller-manager随开机启动
systemctl enable etcd kube-apiserver kube-scheduler kube-controller-manager
#启动或重启etcd kube-apiserver kube-scheduler kube-controller-manager
systemctl restart etcd kube-apiserver kube-scheduler kube-controller-manager

在root权限下执行脚本。 注意,在执行脚本之前,需要修改脚本里的Master IP地址 注意编码格式,有时脚本执行错误是因为编码格式的原因。如果直接在vim里编辑可以避免,在windows下编辑,自己注意转码。

代码语言:javascript
复制
sh init-master-test.sh

执行完成后,验证Kubernetes Master各个组件的健康状态。我的Master IP为192.168.121.143。

代码语言:javascript
复制
kubectl -s http://192.168.121.143:8080 get componentstatus

如果该指令执行错误,则安装配置过程出现了错误。

这里写图片描述
这里写图片描述

至此,Master端算是简易安装配置起来了,覆盖网络、DNS、安全认证等内容以后再研究。

2)Node端的安装与配置

采用的shell脚本为init-node-test.sh

代码语言:javascript
复制
#!/bin/bash
#关闭防火墙,并关闭防火墙的开机自启动
#安全的做法是在防火墙上配置各组件需要相互通信的端口号,这里选择直接禁用防火墙。
systemctl stop firewalld
systemctl disable firewalld
#禁用selinux,修改/etc/selinux/config
#SELINUX=enforcing改为SELINUX=disabled
echo "update /etc/selinux/config"
sed -i 's/enforcing/disabled/g' /etc/selinux/config
#安装kubernetes-node(会自动安装docker)
yum -y install kubernetes-node
#修改kubernetes的配置文件/etc/kubernetes/config
#KUBE_MASTER:指定apiserver的url地址。我的master服务器ip为192.168.121.143
echo "update /etc/kubernetes/config"
sed -i 's!127.0.0.1!192.168.121.143!' /etc/kubernetes/config
#改成网易蜂巢云的镜像源,加速下载docker镜像
echo "update /etc/docker/daemon.json"
sed -i 's!{}!{"registry-mirrors":["http://hub-mirror.c.163.com"],"insecure-registries":["192.168.121.140:5000"]}!' /etc/docker/daemon.json
#修改kubelet的配置文件/etc/kubernetes/kubelet
#修改KUBELET_HOSTNAME,在此我改成了node ip
#修改KUBELET_API_SERVER,我的Master地址为192.168.121.143
echo "update /etc/kubernetes/kubelet"
sed -i 's!KUBELET_HOSTNAME="--hostname-override=127.0.0.1"!KUBELET_HOSTNAME="--hostname-override=192.168.121.144"!' /etc/kubernetes/kubelet
sed -i 's!KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"!KUBELET_API_SERVER="--api-servers=http://192.168.121.143:8080"!' /etc/kubernetes/kubelet
sed -i 's!KUBELET_ARGS=""!KUBELET_ARGS="--cluster_dns=10.254.10.2 --cluster_domain=cluster.local"!' /etc/kubernetes/kubelet
sed -i 's!KUBELET_ADDRESS="--address=127.0.0.1"!KUBELET_ADDRESS="--address=192.168.121.144"!' /etc/kubernetes/kubelet
systemctl daemon-reload 
systemctl restart docker kubelet kube-proxy
systemctl enable docker kubelet kube-proxy

root权限下执行脚本。 注意,每个Node在执行脚本之前,需要修改脚本里的Master IP地址,以及KUBELET_HOSTNAME改为Node的HostName,如果HostName不是IP地址的话,需要在Master配置HOST和IP的映射

代码语言:javascript
复制
sh init-node-test.sh

安装部署完成后,在Master上验证运行

代码语言:javascript
复制
kubectl get nodes
这里写图片描述
这里写图片描述

至此,Kubernets基本集群搭建完毕。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1)Master端的安装与配置
  • 2)Node端的安装与配置
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档