博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS 7.2安装Kubernetes 1.03
阅读量:6687 次
发布时间:2019-06-25

本文共 4263 字,大约阅读时间需要 14 分钟。

hot3.png

截止2015年9月1日,CentOS 已经把 Kubernetes 加入官方源,所以现在安装Kubernetes已经方便很多。

各组件版本如下:

Kubernetes-1.03docker-1.8.2flannel-0.5.3etcd-2.1.1
Kubernetes部署环境角色如下:
CentOS 7.2 64位系统,3台虚拟机:master:192.168.32.15minion1:192.168.32.16minion2:192.168.32.17

1. 预处理

每台机器禁用iptables 避免和docker 的iptables冲突:

systemctl stop firewalldsystemctl disable firewalld
禁用selinux:
vim /etc/selinux/config#SELINUX=enforcingSELINUX=disabled
在2个minions机器安装docker:
yum -y install dockeryum -y updatereboot

CentOS系统,使用devicemapper作为存储后端,初始安装docker 会使用loopback, 导致docker启动报错,需要update之后再启动。

Docker启动脚本更新

vim /etc/sysconfig/docker

添加:-H tcp://0.0.0.0:2375,最终配置如下,以便以后提供远程API维护:

OPTIONS=--selinux-enabled -H tcp://0.0.0.0:2375 -H fd://

提前说明一下,kubernetes运行pods时需要连带运行一个叫pause的镜像,需要先从docker.io上下载此镜像,然后用docker命令改名字:

docker pull docker.io/kubernetes/pausedocker tag kubernetes/pause gcr.io/google_containers/pause:0.8.0docker tag gcr.io/google_containers/pause:0.8.0 gcr.io/google_containers/pause

2. master结点的安装与配置

安装etcd与kubernetes-master:

yum -y install etcd kubernetes-master
修改etcd配置文件:
# egrep -v “^#” /etc/etcd/etcd.confETCD_NAME=defaultETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"ETCD_ADVERTISE_CLIENT_URLS="http://192.168.32.15:2379"
修改kube-master配置文件:
# egrep -v ‘^#’ /etc/kubernetes/apiserver | grep -v ‘^$’KUBE_API_ADDRESS="--address=0.0.0.0"KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.32.15:2379"KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"KUBE_API_ARGS=""
# egrep -v ‘^#’ /etc/kubernetes/controller-manager |grep -v ‘^$’KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"
[root@localhost ~]# egrep -v ‘^#’ /etc/kubernetes/config | egrep -v ‘^$’KUBE_LOGTOSTDERR="--logtostderr=true"KUBE_LOG_LEVEL="--v=0"KUBE_ALLOW_PRIV="--allow_privileged=false"KUBE_MASTER="--master=http://192.168.32.15:8080"
启动服务:
systemctl enable etcd kube-apiserver kube-scheduler kube-controller-managersystemctl start etcd kube-apiserver kube-scheduler kube-controller-manager

定义flannel网络配置到etcd,这个配置会推送到各个minions的flannel服务上:

etcdctl mk /coreos.com/network/config '{"Network":"172.17.0.0/16"}'
3. minion结点的安装与配置
yum -y install kubernetes-node flannel
修改kube-node和flannel配置文件:
# egrep -v ‘^#’ /etc/kubernetes/config | grep -v ‘^$’KUBE_LOGTOSTDERR="--logtostderr=true"KUBE_LOG_LEVEL="--v=0"KUBE_ALLOW_PRIV="--allow_privileged=false"KUBE_MASTER="--master=http://192.168.32.15:8080"
# egrep -v ‘^#’ /etc/kubernetes/kubelet | grep -v ‘^$’KUBELET_ADDRESS="--address=127.0.0.1"KUBELET_HOSTNAME="--hostname_override=192.168.32.16"KUBELET_API_SERVER="--api_servers=http://192.168.32.15:8080"KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause"
为etcd服务配置flannel,修改配置文件 /etc/sysconfig/flanneld:
FLANNEL_ETCD="http://192.168.32.15:2379"FLANNEL_ETCD_KEY="/coreos.com/network"
启动服务:
systemctl enable flanenld kubelet kube-proxysystemctl restart flanneld dockersystemctl start kubelet kube-proxy
在每个minions可以看到2块网卡:docker0和flannel0,这2块网卡的ip在不同的机器ip地址不同:
#minion14: flannel0: 
mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500 link/none inet 172.17.98.0/16 scope global flannel0 valid_lft forever preferred_lft forever5: docker0:
mtu 1500 qdisc noqueue state DOWN link/ether 02:42:9a:01:ca:99 brd ff:ff:ff:ff:ff:ff inet 172.17.98.1/24 scope global docker0 valid_lft forever preferred_lft forever#minion24: flannel0:
mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500 link/none inet 172.17.67.0/16 scope global flannel0 valid_lft forever preferred_lft forever5: docker0:
mtu 1500 qdisc noqueue state DOWN link/ether 02:42:25:be:ba:64 brd ff:ff:ff:ff:ff:ff inet 172.17.67.1/24 scope global docker0 valid_lft forever preferred_lft forever
4. 检查状态

登陆master,确认minions的状态:

[root@master ~]# kubectl get nodesNAME            LABELS                                 STATUS192.168.32.16   kubernetes.io/hostname=192.168.32.16   Ready192.168.32.17   kubernetes.io/hostname=192.168.32.17   Ready
kubernetes的集群就配置完成,下面就是搞pod了,后续会继续试验。

转载于:https://my.oschina.net/renguijiayi/blog/546631

你可能感兴趣的文章
MVC、MVP以及Model2[上篇]
查看>>
面试总结,坚定自己的想法
查看>>
数据库隐式类型转换
查看>>
解决WCF调用多次之后没有响应的问题 转
查看>>
【BZOJ2318】【spoj4060】game with probability Problem 概率DP
查看>>
空格&nbsp在不同浏览器中显示距离不一致问题解决方法
查看>>
Nancy 学习-身份认证(Basic Authentication) 继续跨平台
查看>>
分享5个主流的HTML5开发工具
查看>>
基于Ionic2的开源项目
查看>>
QEMU-KVM中的多线程压缩迁移技术
查看>>
Android下创建一个SQLite数据库
查看>>
软件产品与代码版本管理指南
查看>>
分析Linux内核创建一个新进程的过程【转】
查看>>
sql如何分组选择显示最新的一条数据
查看>>
周锦民:腾讯在线教育视频互动直播间技术实践
查看>>
[perl] 正则表达式实现多模式匹配
查看>>
class左边nbu 2414 Please help the poor donkey!
查看>>
[转]UML类图、关系及其JAVA代码
查看>>
PhotoShop算法原理解析系列 - 像素化---》碎片。
查看>>
设计模式之责任链模式
查看>>