一 、集群情况如下,master作为k8s的主节点,在slave1上搭建docker的私库

Master

192.168.235.128

etcd、kube-apiserver、kube-controller-manager、 kubescheduler、docker

slave1

192.168.235.129

kube-proxy、kubelet、docker、docker私库

slave2

192.168.235.131

kube-proxy、kubelet、docker

二、配置

1、每个节点上关闭防火墙

(1)关闭防火墙
systemctl stop firewalld.service

(2)禁止firewall开机启动

systemctl disable firewalld.service

(3)查看默认防火墙状态(关闭后显示not running ,开启后显示 running)

firewall-cmd –state

2、每个节点上修改权限和建立文件夹

(1)sudo chmod –R +777 /opt

(2)sudo chmod –R +777 /usr/bin/

(3)mkdir /opt/k8s

3、每个节点上配置docker

(1)设置yum源

拷贝“每个节点”文件夹下/etc/yum.repos.d/docker.repo中的docker.repo文件到/etc/yum.repos.d/目录

(2)安装docker

yum install docker-engine

(3)安装后查看docker版本

docker –v

(4)是否需要设置国内镜像??

4、在slave1上配置docker私服

(1)docker pull registry

(2)配置国内源和设置私服信赖

拷贝“slave节点”文件夹下文件夹内的daemon.json到slave1的/etc/docker/目录下。(文件中需要配置私服的ip

(3)重启docker并设置开机启动

systemctl restart docker

systemctl enable docker

(4)启动私服

docker run -di --name=registry -p 5000:5000 registry

(5)提交镜像到私服

docker pull kubernetes/pause

docker tag docker.io/kubernetes/pause:latest 192.168.126.143:5000/google_containers/pauseamd64.3.0

docker push 192.168.126.143:5000/google_containers/pause-amd64.3.0

(6)查看是否提交成功

http://192.168.235.129:5000/v2/_catalog

5、在master上配置etcd

(1)拷贝“master节点”文件夹etcd-v3.3.9-linux-amd64.tar到/opt/k8s并解压,tar -xzvf etcd-v3.3.9-linux-amd64.tar,之后将解压目录内的etcd和etcdctl复制到/usr/bin目录

(2)拷贝“master节点”中的etcd.service 文件到/usr/lib/systemd/system/,并创建目录mkdir -p /var/lib/etcd/

(3)启动与测试etcd服务

systemctl daemon-reload

systemctl enable etcd.service

systemctl start etcd.service

etcdctl cluster-health

6、在master上配置kube-apiserver

(1)拷贝“每个节点”文件夹kubernetes-server-linux-amd64.tar到/opt/k8s并解压,tar -xzvf kubernetes-server-linux-amd64.tar,之后将/opt/k8s/kubernetes/server/bin目录下的kube-apiserver kube-controller-manager kube-scheduler kubectl复制到/usr/bin目录

cd /opt/k8s/kubernetes/server/bin

cp kube-apiserver kube-controller-manager kube-scheduler kubectl /usr/bin/

(2)拷贝“master节点”文件夹中的kube-apiserver.service文件到/usr/lib/systemd/system/

(3)创建目录:mkdir /etc/kubernetes并拷贝“master节点”文件夹中的apiserver文件到/etc/kubernetes

7、在master上配置kube-controller-manager

(1)拷贝“master节点”文件夹中的kube-controller-manager.service文件到/usr/lib/systemd/system/

(2)拷贝“master节点”文件夹中的controller-manager文件到/etc/kubernetes/(文件中需要设置—master为主节点的ip地址

8、在master上配置kube-scheduler

(1)拷贝“master节点”文件夹中的kube-scheduler.service文件到/usr/lib/systemd/system/

(2)拷贝“master节点”文件夹中的scheduler文件到/etc/kubernetes/(文件中需要设置—master为主节点的ip地址

9、在slave1和slave2上配置kubelet

(1)拷贝“每个节点”文件夹kubernetes-server-linux-amd64.tar到/opt/k8s并解压,tar -xzvf kubernetes-server-linux-amd64.tar,之后将/opt/k8s/kubernetes/server/bin目录下的kubelet、kube-proxy复制到/usr/bin目录

cd /opt/k8s/kubernetes/server/bin

cp kubelet kube-proxy /usr/bin/

(2)拷贝“slave节点”文件夹中的kubelet.service文件到/usr/lib/systemd/system/并创建文件sudo chmod -R +777 /var/lib

mkdir -p /var/lib/kubelet

(3)创建/ect/kubernetes目录mkdir /ect/kubernetes并拷贝“slave节点”文件夹中的kubelet文件到/ect/kubernetes(文件中需要设置--hostname-override为本机的ip地址

(4)拷贝“slave节点”文件夹中的kubeconfig文件到/ect/kubernetes(文件中需要设置server为master的ip地址

10、在slave1和slave2上配置kube-proxy

(1)拷贝“slave节点”文件夹中的kube-proxy.service文件到/usr/lib/systemd/system/

(2)拷贝“slave节点”文件夹中的proxy文件到/ect/kubernetes(文件中需要设置--master为master的ip地址

11、master启动

完成以上配置后,按顺序启动服务

systemctl daemon-reload

systemctl enable kube-apiserver.service

systemctl start kube-apiserver.service

systemctl enable kube-controller-manager.service

systemctl start kube-controller-manager.service

systemctl enable kube-scheduler.service

systemctl start kube-scheduler.service

检查每个服务的健康状态:

systemctl status kube-apiserver.service

systemctl status kube-controller-manager.service

systemctl status kube-scheduler.service

12、slave启动

systemctl daemon-reload

systemctl enable kubelet

systemctl start kubelet

systemctl status kubelet

systemctl enable kube-proxy

systemctl start kube-proxy

systemctl status kube-proxy

13、测试

(1)拷贝“master节点”文件夹下的nginx-rc.yamlnginx-svc.yaml到/opt/k8s/ 文件夹中

(2)提交rc和service描述文件,创建服务

kubectl create -f nginx-rc.yaml

kubectl create -f nginx-svc.yaml

(3)查看当前命名空间下的pod

kubectl get pods

(4)查看所有容器列表

kubectl get all

14、更多细节请参考其余四个文件。

15、kubectl get pods时no resource found的问题

(1)在slave节点上修改/etc/kubernetes/kubelet配置为KUBELET_ARGS="--pod_infra_container_image=192.168.126.143:5000/google_containers/pauseamd64.3.0"(和slave1上私服提交的镜像相对应,ip为私服所在slave1的ip)

(2)在master节点上修改/etc/kubernetes/apiserver,找到KUBE_ADMISSION_CONTROL,去掉SecurityContextDeny,ServiceAcc

ount

注:直接拷贝文件过去应该是已经修改好的,应该是不需要设置,这里写出来是为了注意一下。

二进制包方式安装部署三节点k8s相关推荐

  1. CentOS7中基于rpm包方式安装部署apm(php module模块)+ xcache

    CentOS 7, 基于rpm包方式安装部署apm(php module) : 要点: 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress: 1.配置环境: (1)关闭防火墙 ...

  2. k8s集群部署 | 三节点(复用)高可用集群过程参考

    文章目录 1. kubeadm 部署三节点(复用)高可用 k8s 集群 1.1 环境规划阶段 1.1.1 实验架构图 1.1.2 系统版本说明 1.1.3 环境基本信息 1.1.4 k8s 网段划分 ...

  3. Hyperledger Fabric 二进制安装部署 Peer 节点

    Hyperledger Fabric 二进制安装部署 Peer 节点 规划网络拓扑 3 个 orderer 节点; 组织 org1 , org1 下有两个 peer 节点, peer0 和 peer1 ...

  4. 使用二进制的方式安装mysql实践纪要

    下面是记录使用二进制的方式安装mysql的步骤 2011.3.5      使用二进制安装的好处 mysql安装为什么大部分使用二进制安装.而不是源码手动去编译? mysql使用的glibc进行开发的 ...

  5. 安装jdk步骤rpm_jenkins rpm包方式安装

    war包方式安装jenkins已经说过java openjdk的安装和注意事项,这里不做赘述 前提:确保 java的jdk或者jre已安装 #]java -version #]whereis java ...

  6. Nginx实战基础篇一 源码包编译安装部署web服务器

    Nginx实战基础篇一 源码包编译安装部署web服务器 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 您可以自由复制.发行.展览.表演.放映.广播或通 ...

  7. Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛

    Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 您可以自由复制.发行.展览. ...

  8. mysql5.5源码包安装_mysql的源码包方式安装(mysql5.5)

    -------初写博客,希望在工作和日常中学习到的一些知识和经验与大家交流分享! 在Mysql5.5之后,使用源码包方式安装mysql就需要通过cmake方式进行编译了.以下内容介绍通过cmake方式 ...

  9. nginx免安装二进制包制作(安装推荐)

    文章目录 nginx官网 安装包下载 安装 1.16.1免安装包下载 制作免安装包 1.下载nginx-portable-master 2. 编译指定版本 部署 上传并解压 启动 查看信息 yum 安 ...

最新文章

  1. 对话高博(一)| 机器码、Pascal,以及计算机学习的分形
  2. 【云炬大学生创业基础笔记】第1章第1节 测试
  3. 实验四——多分支结构及本章总结
  4. 数据驱动科技赋能,东吴证券打造数据中台“九大能力”
  5. 收藏!博士大佬的《机器学习》西瓜书手推笔记!
  6. echarts realtime图实现
  7. 用 QT实现拖放(drag-drop)功能
  8. python画三维投影图_python之画三维图像
  9. 【Lesson 2】 大调音阶及大调和弦
  10. Java的泛型---(英雄联盟集合嵌套案例)
  11. scala当中的文件操作、网络请求和隐式转换
  12. telnet控制路由器交换机与微信公众平台
  13. Unity-ProBuilder
  14. 2019最应该投资什么?是你明年的北大核心
  15. 你和csdn是什么关系
  16. 随身车联网——车联网生态新物种(附发布会视频)
  17. 理解矩阵和特征向量的本质
  18. js-视频播放插件Video.js简单使用
  19. laravel jwt attempt 总是返回false
  20. Rosetta Stone的第一遍学习总结

热门文章

  1. Laravel——Passport OAuth
  2. python 中的queue, deque
  3. 使用C语言中的宏来定位出错信息
  4. zabbix_get 命令介绍
  5. bootstrap 模态框垂直居中实现方法
  6. python 把数据 json格式输出
  7. C# 合并DLL, 合并DLL进入EXE
  8. 深数据 - Deep Data
  9. 在很多很多事情都要的情况下,最重要的东西是什么?
  10. 云计算面试题及答案,云计算主要就业岗位