环境:Centos7
版本:Kubernetes v1.11.4
 
一、下载Kubernetes(在所有机器上都要)
 
1)下载
wget https://github.com/kubernetes/kubernetes/releases/download/v1.11.4/kubernetes.tar.gz
2)解压
tar -zxvf kubernetes.tar.gz
cd kubernetes
sh cluster/get-kube-binaries.sh
3)server目录下会多一个文件
 
解压:进入到bin目录,可以看到很多二进制文件
 
 
二、Master上部署服务etcd、kube-apiserver、kube-controller-manager、kube-schedule服务
 
1、关闭防火墙
yum -y install firewalld
systemctl stop firewalld
systemctl disable firewalld.service
2、配置etcd
 
etcd服务作为Kubernetes集群的主数据库,在安装Kubernetes各服务之前需要首先安装和启动
wget https://github.com/coreos/etcd/releases/download/v3.3.2/etcd-v3.3.2-linux-amd64.tar.gz
tar -zxvf cd etcd-v3.3.2-linux-amd64/tar.gz
cd etcd-v3.3.2-linux-amd64/
 
把etcd、etcdctl拷贝到/usr/bin目录下,并设置systemd服务文件
cp etcd etcdctl /usr/bin/
vim /usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target [Service]
Type=simple
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/bin/etcd [Install]
WantedBy=multi-user.target
加载配置文件并启动

mkdir  /var/lib/etcd
systemctl daemon-reload
systemctl start etcd.service
查看etcd是否健康
 
etcdctl cluster-health

 
3、kube-apiserver   
 
vim  /usr/lib/systemd/system/kube-apiserver.service
 
[Unit]
Description=Kubernetes API Server
After=etcd.service
Wants=etcd.service [Service]
EnvironmentFile=/etc/kubernetes/apiserver
ExecStart=/usr/bin/kube-apiserver \
$KUBE_LOGTOSTDERR \
$KUBE_ETCD_SERVERS \
$KUBE_LOG_LEVEL \
$KUBE_LOG_DIR \
$KUBE_API_ADDRESS \
$KUBE_API_PORT \
$KUBE_SERVICE_ADDRESS \
$KUBE_SERVICE_PORT \
$KUBE_ADMISSION_CONTROL
Restart=on-failure
Type=notify
LimitNOFILE= [Install]
WantedBy=multi-user.target
配置文件:
 
vim /etc/kubernetes/apiserver

 
 
 
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_API_PORT="--insecure-port=8080"
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=169.169.0.0/16"
KUBE_SERVICE_PORT="--service-node-port-range=1-65535"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_LOGTOSTDERR="--logtostderr=false"
KUBE_LOG_DIR="--log-dir=/var/log/kubernetes"
KUBE_LOG_LEVEL="--v=2"
--etcd-servers:指定etcd服务的URL
--insecure-bind-address:apiserver绑定主机的非安全IP地址,设置0.0.0.0表示绑定所有IP地址
--insecure-port:apiserver绑定主机的非安全端口号,默认为8080
--service-cluster-ip-range:Kubernetes集群中Service的虚拟IP地址范围,该IP范围不能与物理机的真实IP段有重合
--service-node-ip-range:Kubernetes集群中Service可映射的物理机端口号范围,默认为30000~32767
--admission-control:Kubernetes集群的准入控制设置,各控制模块以插件的形式依次生效
--logtostderr:设置为false表示将日志写入文件,不写入stderr
--log-dir:日志目录
--v:日志级别
 
 
启动并查看其状态:

 
cp kube-apiserver /usr/bin/
systemctl daemon-reload
systemctl start kube-apiserver.service
systemctl status kube-apiserver.service
 
4、kube-controller-manager  
kube-controller-manager服务依赖于kube-apiserver
 
vim /usr/lib/systemd/system/kube-controller-manager.service
 
[Unit]
Description=Kubernetes Controller Manager Server
After=kube-apiserver.service
Requires=kube-apiserver.service [Service]
EnvironmentFile=/etc/kubernetes/controller-manager
ExecStart=/usr/bin/kube-controller-manager \
$KUBE_LOGTOSTDERR \
$KUBE_LOGDIR \
$KUBE_LOG_LEVEL \
$KUBE_MASTER
Restart=on-failure
LimitNOFILE= [Install]
WantedBy=multi-user.target
vim /etc/kubernetes/controller-manager
 
KUBE_MASTER="--master=http://127.0.0.1:8080"
KUBE_LOGTOSTDERR="--logtostderr=false"
KUBE_LOGDIR="--log-dir=/var/log/kubenetes"
KUBE_LOG_LEVEL="--v=2"
--master:表示apiserver的URL地址
--logtostderr:设置为false表示将日志写入文件,不写入stderr
--log-dir:日志目录
--v:日志级别
 
启动查看状态:

cp kube-controller-manager /usr/bin/
systemctl start kube-controller-manager.service
systemctl status kube-controller-manager.service
5、kube-schedule
kube-schedule服务也依赖于kube-apiserver服务
 
vim /usr/lib/systemd/system/kube-schedule.service
 
[Unit]
Description=Kubernetes Schedule Server
After=kube-apiserver.service
Requires=kube-apiserver.service [Service]
EnvironmentFile=/etc/kubernetes/schedule
ExecStart=/usr/bin/kube-scheduler \
$KUBE_LOGTOSTDERR \
$KUBE_LOGDIR \
$KUBE_LOG_LEVEL \
$KUBE_MASTER Restart=on-failure
LimitNOFILE= [Install]
WantedBy=multi-user.target
vim /etc/kubernetes/schedule
KUBE_MASTER="--master=http://127.0.0.1:8080"
KUBE_LOGTOSTDERR="--logtostderr=false"
KUBE_LOGDIR="--log-dir=/var/log/kubenetes"
KUBE_LOG_LEVEL="--v=2"
 
启动、查看状态
cp kube-scheduler /usr/bin/
systemctl daemon-reload
systemctl start kube-schedule.service
systemctl status kube-schedule.service
 
三、Node上的Kubelet、kube-proxy服务
 
在node节点上得先安装docker
yum -y remove docker*
yum -y install docker
systemctl start docker
1)Kubelet
Kubelet服务依赖于Docker服务
 
vim /usr/lib/systemd/system/kubelet.service

 
[Unit]
Description=Kubernetes Kubelete Server
After=docker.service
Requires=docker.service [Service]
WorkingDirectory=/var/lib/kubelet
EnvironmentFile=/etc/kubernetes/kubelet
ExecStart=/usr/bin/kubelet \
$KUBELET_ADDRESS \
$KUBELET_POD_INFRA_CONTAINER \
$KUBELET_ARGS \
$KUBE_LOGTOSTDERR \
$KUBE_LOGDIR \
$KUBE_LOG_LEVEL \
$KUBE_CGROUPS \
$KUBE_HOSTNAME Restart=on-failure [Install]
WantedBy=multi-user.target
vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure"
KUBELET_ARGS="--enable-server=true --enable-debugging-handlers=true --fail-swap-on=false --kubeconfig=/etc/kubernetes/config"
KUBE_LOGTOSTDERR="--logtostderr=false"
KUBE_LOGDIR="--log-dir=/var/log/kubenetes"
KUBE_LOG_LEVEL="--v=2"
KUBE_CGROUPS="--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice"
KUBE_HOSTNAME="--hostname-override=node1"
vim /etc/kubernetes/config
apiVersion: v1
kind: Config
users:
- name: kubelet
clusters:
- name: kubernetes
cluster:
server: http://172.29.1.165:8080
contexts:
- context:
cluster: kubernetes
user: kubelet
name: service-account-context
current-context: service-account-context
mkdir /var/lib/kubelet
cp kubelet /usr/bin/
systemctl daemon-reload
systemctl start kubelet.service
systemctl status kubelet.service

这里启动kubelet可能会报错:

failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
 
解决办法:
vim /lib/systemd/system/docker.service
--exec-opt native.cgroupdriver=systemd  修改成  --exec-opt native.cgroupdriver=cgroupfs
2、kube-proxy
 
vim /usr/lib/systemd/system/kube-proxy.service
[Unit]
Description=Kubernetes Kubelete Server
After=network.service
Requires=network.service [Service]
EnvironmentFile=/etc/kubernetes/proxy
ExecStart=/usr/bin/kube-proxy \
$KUBE_LOGTOSTDERR \
$KUBE_LOGDIR \
$KUBE_LOG_LEVEL \
$KUBE_MASTER
Restart=on-failure
LimitNOFILE= [Install]
WantedBy=multi-user.target
vim /etc/kubernetes/proxy
KUBE_MASTER="--master=http://172.29.1.165:8080"
KUBE_LOGTOSTDERR="--logtostderr=false"
KUBE_LOGDIR="--log-dir=/var/log/kubenetes"
KUBE_LOG_LEVEL="--v=2"
cp kube-proxy /usr/bin/
systemctl daemon-reload
systemctl start kube-proxy.service
systemctl status kube-proxy.service
 
四、验证
 
在master上查看组件状态:

 
 
cp kubectl /usr/bin/
kubectl get cs
 
 
在master上查看nodes,看nodes是否在master上注册

 
 
 kubectl get nodes

 
 
 
 

Kuberneteser二进制安装与配置(二)的更多相关文章

  1. zabbix系列之六——安装后配置二Items

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp 1Items 1.1creating items ...

  2. mysql5.7 for windows二进制安装及配置

    1)mysql5.7二进制软件下载 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载软件:mysql-5.7.25-wi ...

  3. zabbix系列之七——安装后配置二Userparameters

    1User parameters(用户自定义参数) 1.1配置 描述 详细 备注 简介 1执行zabbix中未预定义的agent check时使用 配置 1)    zabbix agent的配置文件 ...

  4. 二进制安装kubernetes(二) kube-apiserver组件安装

    根据架构图,我们的apiserver部署在hdss7-21和hdss7-22上: 首先在hdss7-200上申请证书并拷贝到21和22上: 创建证书文件: # cd /opt/certs # vi c ...

  5. 试用vSphere 6(三):安装vCenter 6(独立数据库)之:vCenter安装与配置

    ------------------------------------------ 一.VMware vSphere 6(RC版)安装配置系列文章: 1.试用vSphere 6(一):安装ESXi ...

  6. MySQL服务器的安装和配置,MySQL Workbench 8.0.12安装,MySQL的基本使用

    一 MySQL服务器的安装和配置 二 MySQL Workbench 8.0.12安装 三 MySQL的基本使用 一MySQL服务器的安装和配置 MySQL是目前最为流行的开放源码的数据库,是完全网络 ...

  7. 持续集成(CI)工具------Hudson/Jenkins(Continuous Integration)安装与配置具体解释

    本文同意转载.但请标明出处:http://blog.csdn.net/wanghantong/article/40985653/, 版权全部 文章概述: 一. 描写叙述了持续集成工具Hudson的安装 ...

  8. 13. 第十二篇 二进制安装kubelet

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06 ...

  9. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

随机推荐

  1. 20175224 2018-2019-2 《Java程序设计》第六周学习总结

    教材学习内容总结 第七章:内部类与异常类 内部类:java支持在类中定义另一个类,这个类为内部类,包含内部类的类称为外嵌类. 理解内部类与外嵌类. Java编译器生成的内部类的字节码文件为“外嵌类名$ ...

  2. Vue源码之 diff Vnode

    其实现在这个还没看懂,只能是初步看一下 _update调用__patch__方法,如果prevVnode(也就是oldVnode),旧vnode和新vnode对比,如果没有,就vnode就是vm.$e ...

  3. 软件测试:第二次作业(JUnit单元测试方法)

    一.JUnit是什么? JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework).JUnit测试是程序员测试, ...

  4. C#中委托的同步和异步有什么区别

    通过定义委托,来实现同步和异步,委托通过Action和Func来实现,记录学习委托的同步和异步的过程 委托的同步方法 委托的Invoke方法用来进行同步调用. static void Main(str ...

  5. 汉诺塔III

    题目描述: 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到大顺序串着由64个圆盘构成的塔.目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动 ...

  6. IDEAL 热更新

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  7. java学习初体验NO.1

    一.学习目标: 1.理解Java编译原理 在Java编程语言中,所以源代码首先以用.Java扩展名结尾的纯文本件编写,然后,编译器将这些源文件编译成.Class文件.然后,Java启动器工具使用Jav ...

  8. js 冒泡排序与快速排序

    刚好今晚看了js的冒泡排序跟快速排序,趁着还没忘记先记下来. 1. 冒泡排序:遍历数组,每个元素都与后一个元素比较,如果大于下一个元素,则两个元素位置调换.否则的话当前元素再与下下个元素比较,一直到 ...

  9. tomcat免安装版做成windows系统服务

    安装服务在命令行中进入/Tomcat路径/bin/,执行“service.bat install”:卸载服务在命令行中进入/Tomcat路径/bin/,执行“service.bat remove”:

  10. idea【快捷键】

    ctrl+shift+a:全局搜索 IDEA 的操作和设置 shift+f6:重命名 ctrl+alt+m:提取方法 ctrl+alt+l:格式化代码 ctrl+alt+o:优化导入类和包 ctrl+ ...