一、K8s安装准备

1.至少两台主机,一台作为master,一台作为node。两台主机需要关闭防火墙。

#centos6
service stop firewalld  && service disable firewalld
#centos7
systemctl stop iptables && systemctl disable iptables;

2.两台机器需要各自编辑/etc/hosts文件,互相添加hostname,然后相互ping通,以下为例

echo "192.168.18.128 centos-master
192.168.18.130 centos-minion
" >> /etc/hosts

二、K8s的安装

1.两台主机都需要安装docker,kubernetes,如有docker版本冲突需要卸载重新安装docker.

yum -y install docker kubernetes

2.master节点需要安装etcd数据库服务,etcd作为kubernetes的数据库

yum -y install etcd

3.每个节点,master及minion节点都需要修改kubernetes配置文件

vim /etc/kubernetes/config# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://centos-master:8080"
#master节点关于指向etcd的ip可能需要改成127.0.0.1:2379,改成主机名的话kube-controller-manager可能会启动失败,不知原因
KUBE_ETCD_SERVERS="--etcd_servers=http://centos-master:2379"

示例master 下config

# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://kube01:8080"KUBE_ETCD_SERVERS="--etcd-servers=http://kube01:2379"

4.master节点上,配置api服务给node

vim /etc/kubernetes/apiserver# The address on the local server to listen to.
#这个地址好像只能用0.0.0.0
KUBE_API_ADDRESS="--address=0.0.0.0"
KUBE_API_PORT="--port=8080"
# Comma separated list of nodes in the etcd cluster
#KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"##ServiceAccount这个参数删掉,会影响docker拉去镜像
# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

示例:master节点apiserver:

# kubernetes system config
#
# The following values are used to configure the kube-apiserver
## The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"# Add your own!
KUBE_API_ARGS=""

5.master节点上编写启动相关kubernetes服务的脚本

vim k8s-server.sh#!/bin/bashOPT=$1case $1 in
-s)for SERVICES in etcd  kube-apiserver kube-controller-manager kube-scheduler; dosystemctl restart $SERVICESsystemctl enable $SERVICESsystemctl status $SERVICESdone
;;-k)for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler ; dosystemctl stop $SERVICESdone
;;-stat)for SERVICES in etcd  kube-apiserver kube-controller-manager kube-scheduler; dosystemctl status $SERVICES
done
;;
*)echo "useage:./k8s-server.sh <-s|-k|-stat>----  '-s' is start Servers\n---  '-k' is stop Servers\n'-stat' is watch the status  "
;;
esac

6.node节点修改/etc/kubernetes/kubelet,配置与master的连接

###
# kubernetes kubelet (minion) config
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname_override=centos-minion"
KUBELET_API_SERVER="--api_servers=http://centos-master:8080“
# Add your own!
KUBELET_ARGS=""

minion节点 config示例


###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://kube01:8080"

minion节点kubelet示例

###
# kubernetes kubelet (minion) config# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0"# The port for the info server to serve on
#KUBELET_PORT="--port=10250"# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=kube02"# location of the api-server
KUBELET_API_SERVER="--api-servers=http://kube01:8080"# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"# Add your own!
KUBELET_ARGS=""

7.node节点编写启动和查看服务脚本


#!/bin/bashOPT=$1case $1 in
-s)for SERVICES in kube-proxy kubelet docker; dosystemctl restart $SERVICESsystemctl enable $SERVICESsystemctl status $SERVICESdone
;;-k)for SERVICES in kube-proxy kubelet docker; dosystemctl stop $SERVICESdone
;;-stat)for SERVICES in kube-proxy kubelet docker; dosystemctl status $SERVICES
done
;;
*)echo "useage:./k8s.sh <-s|-k|-stat>----  '-s' is start Servers\n---  '-k' is stop Servers\n'-stat' is watch the status  "
;;
esac

8.node节点查看是否成功注册到master节点,如果没关闭防火墙会报错

tail -f /var/log/messages |grep kube

9.master节点查看刚才注册的节点,节点status为ready为正常

kubectl get nodes

10.kubectl是master端的交互工具,可以通过子命令查看节点等信息

kubectl get nodes #获取节点列表kubectl cluster-info #查看节点信息

下一节演示一个简单的kubernetes实例,master节点通过yaml文件,让node节点自动pull镜像并运行。**

如果启动docker报错,如下


当前docker版本1.13.1 执行启动命令: systemctl   start docker  ,报下面错误:Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false)重新编辑docker配置文件:
vi /etc/sysconfig/docker
# /etc/sysconfig/docker# Modify these options if you want to change the way the docker daemon runsOPTIONS='--selinux-enabled=false  --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; thenDOCKER_CERT_PATH=/etc/docker
fi:wq systemctl  restart  docker

Kubernates集群入门(1)相关推荐

  1. Linux部署集群入门

    Linux部署集群入门 1.克隆虚拟机 直接复制已有的虚拟机的文件夹复制及可 2.配置网卡和ip地址 2.1配置网卡 2.2 配置ip地址 2.3 重启!!! 3.关闭防火墙 4.关闭seLinux ...

  2. 构建高可用的LVS负载均衡集群 入门篇

    一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver. ...

  3. mysql数据库rp集群_MySQL集群入门(PXC)

    目标: 1.掌握PXC集群MySQL方案的原理: 2.掌握PXC集群的强一致性: 3.掌握PXC集群的高可用方案: 硬件要求: 1.Win10x64企业版/linux/MacOS: 2.Docker虚 ...

  4. Redis集群入门实践教程

    一.Redis 集群概述 Redis 主从复制 到目前为止,我们所学习的 Redis 都是单机版的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会受到一定的影响. 所以一开始我 ...

  5. k8s实践(1)--k8s集群入门介绍和基础原理

    我们学习安排:由浅入深 1.简单了解集群的工作原理和基础概念,名词解释. 2.安装etcd集群:etcd分布式键值存储系统,用于保持集群状态,比如Pod.Service等对象信息. 3.安装k8s集群 ...

  6. golang实战-nsq集群入门与坑

    这段时间,群里的gofun大增,讨论了nsq在集群使用的使用问题.这里简单整理了一下,希望有所帮助. 作为实时的分布式消息处理平台,nsq设计的目的是用来大规模地处理每天数以十亿计级别的消息. 由于具 ...

  7. Windows 上建立虚拟机安装Centos系统并部署 Kubernates 集群

    @VMWare Workstation Pro 建立虚拟机 首先声明,本文章只是为学习的人员提供参考,文中的部分图片几内容来自网络,我也是根据网络的材料学习过程中整理为一个份完整地内容. Window ...

  8. Linux Linux 集群

    Linux 集群 Page navigation 什么是集群? 集群分类 基于 Linux 的集群 Linux 服务器集群系统 Linux 高性能计算集群 集群系统 MOSIX 构建 Linux 集群 ...

  9. 用Kubernetes搭建Etcd集群和WebUI

    今天用这篇文章带大家在自己的电脑上搭建一个Kubernetes Etcd集群,Kubernetes本身的功能就依赖Etcd实现,不过并不会开放给我们的程序使用,所以需要自己单独搭建. Etcd现在是分 ...

最新文章

  1. javascript常用工具类封装
  2. 最直接的解决服务器宕机的方法
  3. qml dockwidget窗口停靠
  4. [书目20071127]图书 时间陷阱 目录
  5. Spring Boot –使用执行器端点在运行时配置日志级别
  6. 牛客网_Go语言相关练习_选择题(2)
  7. Linux基础(3)--搭建最小的Linux系统
  8. 09-js数组常用方法
  9. Spring MVC基础环境搭建
  10. 基于C语言的图形化编程软件,图形化编程工具
  11. java拦截器_Java拦截器
  12. python毕业设计作品基于django框架 二手物品交易系统毕设成品(2)网站功能
  13. linux中grep命令 菜鸟教程,Linux 常用命令学习 | 菜鸟教程
  14. Ubuntu卸载Anaconda步骤
  15. 常用的编程语言有哪些
  16. 为语音社交平台加一个防护罩,即构上线实时语音安全方案
  17. felix 与Phoenix 发音 n和l的分辨
  18. openldap中的Mirror mode模式中的主主同步
  19. [导入]Swatch手表
  20. 台式机安装ubuntu 双系统(踩坑)

热门文章

  1. linux的裁剪过程,让你的小linux更加完善,赶快试试吧!
  2. VDI序曲二十一 APP-V 4.6 SP1服务器端部署
  3. iOS App上架流程
  4. MaxCompute studio与权限那些事儿
  5. MYSQL 查询数据排序数据和分组数据
  6. 安装Oracle11g先决条件检查失败
  7. 《Linux 高级程序设计(第三版)》——导读
  8. 四个Webix实例:生成多种类型的JavaScript列表
  9. thinkphp-条件判断-范围判断-range标签
  10. VC6迁移到VS2008几个问题——良好的代码,从我做起,从现在开始。