环境: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. L360 Most People Spend Their Time in Just 25 Places

    Some people are always out on the town, going to concerts, restaurant openings, you name it. They're ...

  2. 汉化DevExpress

    现在的DevExpress组件包提供了TcxLocalizer,拖一个放到Form上. 然后设置相关的属性: 即可完成汉化了!怎么样,够简单!!! 需要DevChs.ini文件的朋友,点击链接加入群聊 ...

  3. Java学习——类与对象

    在学习面向对象之前首先我们要理解一下几点: 什么是面向对象 对象的概念 类 类与对象的关系/区别 什么是对象的属性 什么是对象的方法 什么是面向对象.对象.类 讲到面向对象就不得提到面向过程,早期的计 ...

  4. python之三级目录

    #python之三级目录低配版 menu = { '北京':{ '朝阳':{ '国贸':{ 'CICC':{ }, 'HP':{ }, '渣打银行':{ }, 'CCTV':{ }, }, '望京': ...

  5. sqlserver智能提示插件-sql prompt(9.4.6)的安装及注册流程

    官网下在地址:https://www.red-gate.com/products/sql-development/sql-prompt/ CSDN下载地址(对应的版本是9.4.6,其中包含安装包和注册 ...

  6. Java学习笔记(9)

    lambda表达式: 只定义了单个方法的接口,称为单一抽象方法(Single Abstract Method, SAM)接口:由于此接口通过调用,完成某一功能,所以也称为功能接口,此类接口的实例称为功 ...

  7. java实现截图功能

    package Jietu; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import j ...

  8. iframe嵌套vue页面打开新窗口

    iframe嵌套vue页面时目录结构为下图: 此时出口文件指向index.html, 所以只需要用a标签动态拼接href, 并设置属性 target="_blank" ,即可在if ...

  9. 浅谈jquery事件命名空间

    什么是jquery的事件命名空间? 先看如下简单代码: $("#btn").on("click.name1.name2",function(){ console ...

  10. 王者荣耀交流协会互评Beta版本--爱阅app

    测评人:任思佳 爱阅APP软件说明书地址:http://www.cnblogs.com/szjzsd/p/7881686.html 1.根据NABCD评论作品的选题:   N(Need):相比α发布来 ...