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 ...
随机推荐
- eclipse格式化代码快捷键失效解决的一个基本方法
eclipse格式化代码的快捷键Ctrl+Shift+F,是比较常用的一个快捷键之一. 但是用到时却发现按了也没有反应,百度了说是跟搜狗输入法的快捷键冲突了. 搜狗输入法的快捷键Ctrl+Shift+ ...
- maven项目Dao层优化
平时我们习惯一个实体类就对应一个dao类,这样做,增删改查都大同小异,只是实体类对象不一样而已,因此,我们可以把公用的方法抽取来,建立一个IBaseDao接口,如下: public interface ...
- MySQL 触发器简单实例 - 转载
MySQL 触发器简单实例 触发器:可以更新,删除,插入触发器,不同种类的触发器可以存在于同一个表,但同种类的不能有多个.一个更新.一个删除是可以共存的. ~~语法~~ CREATE TRIGGER ...
- SSH2 增删查改实例
(一)引入包 (共73个,不一定都需要,但是我的项目是这么多,经过调试,没有包冲突) (二)创建数据库表 建立数据库octtest,并创建user表,表里面一共4个字段:id,姓,名,年龄. 语句如下 ...
- SpringBoot实现多数据源(实战源码)
通过一个数据库的表数据去查询同步另一个数据库,之前的方式是通过写个小工具,然后jdbc方式进行处理,这个方式也挺好用的.学习了springboot后发现可以实现多数据源操作,然后就具体实现以下. 以下 ...
- 20165332 学习基础和C语言基础调查
学习基础和c语言基础调查 一.技能学习经验 从小学过很多东西,架子鼓.电子琴.街舞.吉他.书法.美术......爱好也有很多,乒乓球.篮球.唱歌......这么多项技能,要说那一项比大多数人好,还真的 ...
- ddt读取json文件测试用例的执行顺序
一. 源码的说明 在源码中,ddt的file_data函数下有这样一段话 意思是说,如果json文件的内容是字典,字典的键名将会作为测试用例名的后缀,字典的值将会作为测试数据,如果这样的话,如果键名字 ...
- 完全卸载gitlab
完全卸载删除gitlab 2017年5月29日 wuhao 暂无评论 4,089次浏览 完全卸载删除gitlab 1.停止gitlab 1 gitlab-ctl stop 2.卸载gitlab ...
- require.js资料
1.http://www.ruanyifeng.com/blog/2012/11/require_js.html?bsh_bid=230697246 (require.js的用法) 2.http:// ...
- 慕课网:4-2—— 使用DB facade实现CURD (09:11)
public function test1() { //新增数据: /* $bool=DB::insert('insert into student(name,age) VALUES (?,?)', ...