Centos7手工安装Kubernetes集群
安装Kubernetes集群有多种方式,前面介绍了Kubeadm的方式,本文将介绍手工安装的方法。
安装环境有3台Azure上的VM:
Hkube01:10.0.1.4
Hkube02:10.0.1.5
Hbube03:10.0.1.6
其中hkube01是Master节点,将会安装docker, etcd, Kubernetes master, flannel所需要的组件;
Hkube02和hkube03是worker节点,将会安装docker, kubernetes node, flannel所需要的组件。
安装过程如下:
一 master节点
1 安装软件
yum install -y docker etcd kubernetes-master
2 配置启动docker
由于docker-hub的站点在国外,下载会非常慢,把docker下载指向国内的镜像站点:
vim /etc/docker/daemon.json
{"registry-mirrors": ["registry.docker-cn.com"]}
systemctl enable docker
systemctl start docker
3 配置启动etcd
Etcd和zookeeper类似,是存储key/value的工具。
cd /etc/etcd
vim etcd.conf ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="master"
ETCD_ADVERTISE_CLIENT_URLS=http://10.0.1.4:2379 systemctl enable etcd
systemctl start etcd
4 配置kubernetes
在/etc/kubernetes目录中,有4个配置文件:
需要配置apiserver和config两个配置文件。Controller-manager和scheduler不需要配置。
配置apiserver,需要指定etcd地址、api-server的端口、提供服务的地址和cluster的ip范围:
vim /etc/kubernetes/apiserver KUBE_API_PORT="--port=8080"
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd-servers=http://10.0.1.4:2379"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.0.0.0/16"
KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"
本文不设计Kubernetes的安全问题,所以在api-server的配置中的admission_control中去掉了和安全相关的内容SecurityContextDeny,ServiceAccount。
配置config,需要指定kubernetes master的地址和端口:
vim /etc/kubernetes/config KUBE_MASTER="--master=http://10.0.1.4:8080"
5 启动服务
systemctl enable kube-apiserver kube-controller-manager kube-scheduler
systemctl start kube-apiserver kube-controller-manager kube-scheduler
systemctl status kube-apiserver kube-controller-manager kube-scheduler
二 node节点
1 安装软件
yum install -y docker kubernetes-node
2 配置启动docker
和master节点相同:
vim /etc/docker/daemon.json
{"registry-mirrors": ["registry.docker-cn.com"]}
systemctl enable docker
systemctl start docker
3 配置kubelet
在/etc/kubernetes下有3个配置文件:
需要配置config和kubelet两个配置文件,proxy是kube-proxy的配置文件,保留默认就可以。
配置config,需要指定kubernetes master的地址和端口:
vim /etc/kubernetes/config
KUBE_MASTER="--master=http://10.0.1.4:8080"
配置kubelet,指定其工作地址、本机注册到master时的名称、master的地址和端口:
vim /etc/kubernetes/kubelet KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname-override=hkube02"
KUBELET_API_SERVER="--api-servers=http://10.0.1.4:8080"
另外由于centos的yum源指定的pod-infrastructure的docker镜像需要redhat的证书,会导致安装不成功。为避免这个问题,我们把kubelet中的这个镜像更改成docker-hub中的镜像。
先搜索一下:
docker search pod-infrastructure
选择一个更改,我选择了最后一个:
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image= docker.io/zengshaoyong/pod-infrastructure:latest "
4 启动服务
systemctl enable kubelet kube-proxy
systemctl start kubelet kube-proxy
systemctl status kubelet kube-proxy
5 检查
在master节点上查看:
已经看到hkube02和hkube03都注册上来了。
创建一个deployment:
kubectl run nginx --image=nginx
kubectl scale deployment nginx --replicas=
但网络层面pod只能和本node的其他pod连通。
三 网络
本文将安装flannel,实现跨节点的容器互通。
1 安装
yum install -y flannel
2 配置
在master节点进行Etcd的配置:
etcdctl set /coreos.com/network/config '{"Network":"192.168.0.0/16"}'
在所有node节点上配置flannel配置文件:
vim /etc/sysconfig/flanneld
systemctl enable flanneld
systemctl start flanneld
systemctl restart docker
开启转发:
iptables -P FORWARD ACCEPT
此时可以看到docker0的地址和flannel的端口地址网段相同:
3 验证
部署pod nginx:
kubectl run nginx --image nginx
kubectl scale deployment nginx --replicas=
登录到hkube03,进入到容器:
通过部署flannel,可以实现各个pod间的网络互通。
总结:
在Centos7上,通过yum安装Kubernetes的各个组件,实现Kubernetes的集群部署。
Centos7手工安装Kubernetes集群的更多相关文章
- [Kubernetes]CentOS7部署Kubernetes集群
环境介绍及安装前准备 三台机器,用于部署k8s的运行环境: 节点 ip Master 192.168.243.138 Node1 192.168.243.139 Node2 192.168.243.1 ...
- Centos7部署Kubernetes集群
目录贴:Kubernetes学习系列 1.环境介绍及准备: 1.1 物理机操作系统 物理机操作系统采用Centos7.3 64位,细节如下. [root@localhost ~]# uname -a ...
- Centos7部署Kubernetes集群(单工作节点)+配置dashboard可视化UI
目标:docker+kubernetes+cadvosor+dashboard 一:物理硬件 两台虚拟机(centos7):一台做为主节点(master),一台做为工作节点(node) [root@M ...
- 基于 CentOS7 的 Kubernetes 集群
一.环境 相关主机 master 192.168.12.197 minion 192.168.12.198~232 etcd 192.168.12.233~236 相关软件 OS CentOS 7 软 ...
- Centos7部署kubernetes集群CA证书创建和分发(二)
1.解压软件包 [root@linux-node1 ~]# cd /usr/local/src/ [root@linux-node1 src]# ls k8s-v1.10.1-manual.zip [ ...
- 基于Kubernetes集群部署skyDNS服务
目录贴:Kubernetes学习系列 在之前几篇文章的基础,(Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard.为Kubernetes集群部署本地镜像仓库 ...
- 基于kubernetes集群部署DashBoard
目录贴:Kubernetes学习系列 在之前一篇文章:Centos7部署Kubernetes集群,中已经搭建了基本的K8s集群,本文将在此基础之上继续搭建K8s DashBoard. 1.yaml文件 ...
- 为Kubernetes集群部署本地镜像仓库
目录贴:Kubernetes学习系列 经过之前两篇文章:Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard,我们基本上已经能够在k8s的集群上部署一个应用了 ...
- Centos7上安装Kubernetes集群部署docker
一.安装前准备1.操作系统详情需要三台主机,都最小化安装 centos7.3,并update到最新 [root@master ~]# (Core) 角色 主机名 IPMaster master 192 ...
随机推荐
- Button之常用事件
Button之常用事件 一.简介 1.button介绍 本文介绍了Buttonn的点击事件,触摸事件,获得焦点事件 接口分别为:OnClickListener,OnTouchListener,OnFo ...
- CentOS下安装mysql及配置使用
最近一直使用的是CentOS,平时用的最多的数据库是Sql Server,对于mysql还停留在上学的时候,早已忘得一干二净,写这篇内容目的是,重新学习如何安装使用mysql. 一.安装mysql 操 ...
- 51nod 1270 dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1270 简单的线性dp,最近狂刷水题真的是...药丸 差值最大得话要么是峰 ...
- HDU 3037 组合数、lucas,逆元
题目链接 题目大意,N颗树上取不超过M个果子,求总方案个数模P的值,P是质数且不超过10w,N,M不超过1e9: 在这里树是被认为不同的,也就是将k(0<=k<=M)个小球放入N个不同的盒 ...
- Linux文件的默认权限:umask
1. 文件的默认权限 Linux下当我们新建一个文件和目录时,该文件和目录的默认权限是什么? 通过umask命令来查看: $ umask0002 $ umask -Su=rwx,g=rwx,o=rx ...
- 【scala】占位符
Scala语言为了让函数字面量更加精简,还可以使用下划线作为占位符,用来表示一个或多个参数. 我们用来表示的参数必须满足只在函数字面量中出现一次. 我们用例子来看占位符的用法 scala> va ...
- 【Hive】自定义函数
Hive的自定义函数无法满足实际业务的需要,所以为了扩展性,Hive官方提供了自定义函数来实现需要的业务场景. 1.定义 (1)udf(user defined function): 自定义函数,特 ...
- 012-对象——魔术常量__CLASS__ __METHOD__ __FUNCTION__ __DIR__ __FILE__
<?php /** *魔术常量__CLASS__ __METHOD__ __FUNCTION__ __DIR__ __FILE__ */ //魔术常量:__CLASS__ 得到类名. /*cla ...
- 【C#】Socket中的ssl通信
引言 有个项目中用到了Socket ssl通信,在此记录一下. 证书 Socket ssl需要用到证书用来校验身份,而作为调试,我们只需用测试证书即可. 有个工具可以很方便地制作测试证书,下载地 ...
- Apk大瘦身
Android的apk文件越来越大了这已经是一个不争的事实.在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB ...