前面一篇已经安装好了ETCD、docker与flannel(k8s1.4.3安装实践记录(1)),现在可以开始安装k8s了

1、K8S

目前centos yum上的kubernetes还是1.2.0,因此我们只能是使用下载的安装包,进行kubernetes的安装

[root@bogon system]# yum list |grep kubernetes
cockpit-kubernetes.x86_64 0.114-.el7.centos extras
kubernetes.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-client.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-cni.x86_64 0.3.0.1-.07a8a2 kubelet
kubernetes-master.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-node.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-unit-test.x86_64 1.2.-0.13.gitec7364b.el7 extras

1.1 K8S下载

  使用wget 或者下载软件下载k8s安装包:https://github.com/kubernetes/kubernetes/releases/download/v1.4.3/kubernetes.tar.gz,下载完成,我们会拿到当前1.4.3版本的安装文件。

  

1.2 解压并安装

  解压安装包,并将执行文件存放到合适的地方

tar -zxvf kubernetes.tar.gz
cd kubernetes/server/bin
mkidr /usr/local/kube
cp -R * /usr/local/kube

  设置环境变量文件/etc/profile,将kube执行文件加入的环境变量中

export KUBE_PATH=/usr/local/kube
export PATH=$PATH:$KUBE_PATH

  执行环境变量,使其生效:

source /etc/profile

1.3 启动主节点

  当前主节点为192.168.37.130,需要在主节点上执行kube-apiserver ,kube-controller-manager,kube-scheduler三个进程。

1.3.1 开放端口

  如果没有关闭防火墙且使用的是firewalld,则需要开放相关的端口

firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

1.3.2 启动kube-apiserver

kube-apiserver   --insecure-bind-address=192.168.37.130    --insecure-port=   --service-cluster-ip-range='192.168.37.130/24'   --log_dir=/usr/local/kubernete_test/logs/kube   --v=   --logtostderr=false   --etcd_servers=http://192.168.37.130:2379,http://192.168.37.131:2379   --allow_privileged=false 

1.3.3 启动 kube-controller-manager

kube-controller-manager   --v=  --logtostderr=true  --log_dir=/data/kubernets/logs/kube-controller-manager/  --master=http://192.168.37.130:8080 

1.3.4 启动kube-scheduler

kube-scheduler   --master='192.168.37.130:8080'  --v=   --log_dir=/data/kubernets/logs/kube-scheduler  

1.3.5 查看是否启动完成

[root@bogon ~]# kubectl get componentstatuses
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd- Healthy {"health": "true"}
etcd- Healthy {"health": "true"}

可以看到两个etcd启动完成

1.3.6 设置service

  在/usr/lib/systemd/system文件夹中创建各个进程的service文件

  1、kube-apiserver.service

[Unit]
Description=kube-apiserver
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-apiserver
ExecStart=/usr/local/kube/kube-apiserver ${INSECURE_BIND_ADDRESS} ${INSECURE_PORT} ${SERVICE_CLUSTER_IP_RANGE} ${LOG_DIR} ${VERSION} ${LOGTOSTDERR} ${ETCD_SERVERS} ${ALLOW_PRIVILEGED}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

其对应的配置文件/etc/sysconfig/kubernets/kube-apiserver如下:

#INSECURE_BIND_ADDRESS="--insecure-bind-address=0.0.0.0"
INSECURE_BIND_ADDRESS="--address=0.0.0.0"
INSECURE_PORT="--insecure-port=8080"
SERVICE_CLUSTER_IP_RANGE="--service-cluster-ip-range=172.16.0.0/16"
LOG_DIR="--log_dir=/usr/local/kubernete_test/logs/kube"
VERSION="--v=0"
LOGTOSTDERR="--logtostderr=false"
ETCD_SERVERS="--etcd_servers=http://192.168.37.130:2379,http://192.168.37.131:2379"
ALLOW_PRIVILEGED="--allow-privileged=false"
ADMISSION_CONTROL="--admission-control=NamespaceAutoProvision,ServiceAccount,LimitRanger,ResourceQuota"

注意:配置文件中的参数名不能使用“-”

2016年11月3日补充:在刚开始配置的时候将INSECURE_BIND_ADDRESS="--insecure-bind-address=192.168.37.130",但这样会存在一个使用本地链路127.0.0.1:8080去访问的是被拒绝掉,而修改为INSECURE_BIND_ADDRESS="--address=0.0.0.0"就不会存在这种问题,具体见:http://www.cnblogs.com/lyzw/p/6023935.html

  2、kube-controller-manager

  配置kube-controller-manager.service

[Unit]
Description=kube-controller-manager
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-controller-manager
ExecStart=/usr/local/kube/kube-controller-manager ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

  设置/etc/sysconfig/kubernets/kube-controller-manager

VERSION="--v=0"
LOGTOSTDERR="--logtostderr=true"
LOG_DIR="--log_dir=/data/kubernets/logs/kube-controller-manager/"
MASTER="--master=http://192.168.37.130:8080"

  3、设置kube-scheduler服务

  kube-scheduler.service

[Unit]
Description=kube-scheduler
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-scheduler
ExecStart=/usr/local/kube/kube-scheduler ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

  配置文件如下

VERSION="--v=0"
LOGTOSTDERR="--logtostderr=true"
LOG_DIR="--log_dir=/data/kubernets/logs/kube-scheduler"
MASTER="--master=http://192.168.37.130:8080

  4、重启各个服务  

systemctl daemon-reload
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler

1.4 启动minion

  Minion需要启动kube-proxy,kubelet两个进程

1.4.1 kube-proxy启动  

#在两台机器都执行
kube-proxy --logtostderr=true --v= --master=http://192.168.37.130:8080

1.4.1 kubelet启动

kubelet  --logtostderr=true --v= --allow-privileged=false  --log_dir=/data/kubernets/logs/kubelet  --address=0.0.0.0  --port=  --hostname_override=192.168.37.130  --api_servers=http://192.168.37.130:8080  

1.4.5配置service

1、kube-proxy.service

[Unit]
Description=kube-proxy
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-proxy
ExecStart=/usr/local/kube/kube-proxy ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target
/etc/sysconfig/kubernets/kube-proxy
VERSION="--v=0"
LOGTOSTDERR="--logtostderr=true"
LOG_DIR="--log_dir=/data/kubernets/logs/kube-controller-manager/"
MASTER="--master=http://192.168.37.130:8080"

2、kubelet.service

[Unit]
Description=kubelet
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kubelet
ExecStart=/usr/local/kube/kubelet ${LOGTOSTDERR} ${VERSION} ${ALLOW_PRIVILEGED} ${LOG_DIR} ${ADDRESS} ${PORT} ${HOSTNAME_OVERRIDE} ${API_SERVERS}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target
/etc/sysconfig/kubernets/kubelet配置文件
LOGTOSTDERR="--logtostderr=true"
VERSION="--v=0"
ALLOW_PRIVILEGED="--allow-privileged=false"
LOG_DIR="--log_dir=/data/kubernets/logs/kubelet"
ADDRESS="--address=0.0.0.0"
PORT="--port=10250"
HOSTNAME_OVERRIDE="--hostname_override=192.168.37.131"
API_SERVERS="--api_servers=http://192.168.37.130:8080"

经过如上的步骤,k8s基本上已经安装好了,后续在把dashboard给安装上。

问题:

1、采用网上的配置,执行会产生一些警告信息:

[root@bogon server]# kube-apiserver   --address=192.168.37.130    --insecure-port=   --service-cluster-ip-range='192.168.37.130/24'   --log_dir=/usr/local/kubernete_test/logs/kube   --kubelet_port=   --v=   --logtostderr=false   --etcd_servers=http://192.168.37.130:2379,http://192.168.37.131:2379   --allow_privileged=false
Flag --address has been deprecated, see --insecure-bind-address instead.
Flag --kubelet-port has been deprecated, kubelet-port is deprecated and will be removed.
[restful] // :: log.go:: [restful/swagger] listing is available at https://192.168.37.130:6443/swaggerapi/
[restful] // :: log.go:: [restful/swagger] https://192.168.37.130:6443/swaggerui/ is mapped to folder /swagger-ui/

2、执行kubectl get componentstatuses报错

[root@bogon ~]# kubectl get componentstatuses
The connection to the server localhost: was refused - did you specify the right host or port?

  如上问题,如果在master机器上执行,则是因为/etc/hosts文件没有配置导致,在文件中加入ip localhost条目即可。

  如果是在从节点上,在执行kubectl get componentstatuses语句时候,加上kubectl -s $masterIP:$port get componentstatuses,其中$masterIP为主节点IP,$port为主节点的服务IP,即安装文档中的8080端口,如:kubectl -s http://192.168.37.130:8080 get componentstatuses

k8s1.4.3安装实践记录(2)-k8s安装的更多相关文章

  1. k8s1.4.3安装实践记录(1)-etcd、docker、flannel安装配置

    虚拟机:VMware® Workstation 12 Pro 系统:CentOS Linux release 7.2.1511 (Core) 3.10.0-327.el7.x86_64 由于刚开始学习 ...

  2. k8s1.4.3安装实践记录(3)下载基础镜像

    下载基础镜像,因为Google被墙,所以我们用时速云中的镜像来tag docker pull index.tenxcloud.com/google_containers/pause-amd64:3.0 ...

  3. FastDFS安装全过程记录(V5.05)

    FastDFS安装全过程记录 1.安装准备 HA虚拟IP:192.168.1.208 HA软件:Keepalived 操作系统:CentOS 7 用户:root 数据目录:/data/fastdfs ...

  4. hexo静态博客的安装及应用实践记录

    1. 必须要安装 nodejs,git 2. 安装hexo node install -g hexo 3. npm源的问题使在安装时有卡住的问题而导致无法安装,则需要更改npm的源 npm confi ...

  5. 我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

    评论»   文章目录 为什么要Https 如何选择Https 安装部署SSL证书 平滑过渡Https 搜索引擎的响应 启用Https小结 正如大家所看到的,部落全站已经启用了Https访问了,连续几天 ...

  6. Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装(转载)(1)

    Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装 一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇 ...

  7. ElasticSearch5.0+版本分词热更新实践记录

    前言 刚开始接触ElasticSearch的时候,版本才是2.3.4,短短的时间,现在都更新到5.0+版本了.分词和head插件好像用法也不一样了,本博客记录如何配置Elasticsearch的Hea ...

  8. 1、大型项目的接口自动化实践记录--robotframework环境搭建

    因为人力.团队技术问题,选用robotframework来做自动化,首先说下环境搭建 齐涛道长的入门教程非常棒:http://blog.csdn.net/tulituqi/article/detail ...

  9. Istio最佳实践:在K8s上通过Istio服务网格进行灰度发布

    Istio是什么? Istio是Google继Kubernetes之后的又一开源力作,主要参与的公司包括Google,IBM,Lyft等公司.它提供了完整的非侵入式的微服务治理解决方案,包含微服务的管 ...

随机推荐

  1. Django之model操作(续)

    Django中的源码续 ################################################## # PUBLIC METHODS THAT RETURN A QUERYS ...

  2. L161

    The robot arm made for gentle undersea explorationA soft robotic arm which will allow underwater sea ...

  3. iOS 阶段学习第四天笔记(循环)

    iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...

  4. Leetcode 894. All Possible Full Binary Trees

    递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # ...

  5. iOS9的新特性以及适配方案-----转载

    2015年9月8日,苹果宣布iOS 9操作系统的正式版在太平洋时间9月16日正式推出,北京时间9月17日凌晨1点推送. 新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放.iOS 9加入了 ...

  6. OK335xS 系统启动配置解析

    OK335xS 系统启动配置解析 一.参考文档: AM335x ARM® Cortex™-A8 Microprocessors (MPUs) Technical Reference Manual 二. ...

  7. css 问题

    问题1:使得在div中的图片自适应于Div的大小 图片放在DIV中是为了更好地管理,那么如果图片不能自适应与div的大小,则此事的初衷就会变质. 怎样自适应呢,有一个很简单的办法: img{ widt ...

  8. Why I am not afraid of AI (TBC)

    Freud! Yes, according to Freud's theory, most human activities are driven by libido (or aim-inhibite ...

  9. erl_0015 《硝烟中的erlang》 读书笔记002 “为过载做计划”

    为过载做计划 到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽.而且通常都和过长的消息队列有关37.解决这类问题的方法有很多,不过只有在深入.全面的理解系统后,才能做出正确的选择. ...

  10. BZOJ5280: [Usaco2018 Open]Milking Order(二分+拓扑)

    5280: [Usaco2018 Open]Milking Order Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 123  Solved: 62[ ...