Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。本文旨在梳理Kubernetes的架构、概念及基本工作流,并且通过运行一个简单的示例应用来介绍如何使用Kubernetes。

搭建环境

第一步,我们需要Kuberntes各组件的二进制可执行文件。有以下两种方式获取:

下载源代码自己编译:

git clone https://github.com/GoogleCloudPlatform/kubernetes.git
cd kubernetes/build
./release.sh

直接下载人家已经编译打包好的tar文件:

wget https://storage.googleapis.com/kubernetes/binaries.tar.gz

自己编译源码需要先安装好golang,编译完之后在kubernetes/_output/release-tars文件夹下可以得到打包文件。直接下载的方式不需要安装其他软件,但可能得不到最新的版本。

#192.168.124.131 kubernetes server
cp /usr/local/kubernetes/_output/release-stage/server/linux-amd64/kubernetes/server/bin/apiserver /usr/local/bin
cp /usr/local/kubernetes/_output/release-stage/server/linux-amd64/kubernetes/server/bin/controller-manager /usr/local/bin
cp /usr/local/kubernetes/_output/release-stage/server/linux-amd64/kubernetes/server/bin/scheduler /usr/local/bin
#192.168.124.132/192.168.124.133 kubernetes minion
cp /usr/local/kubernetes/_output/release-stage/server/linux-amd64/kubernetes/server/bin/kubelet /usr/local/bin
cp /usr/local/kubernetes/_output/release-stage/server/linux-amd64/kubernetes/server/bin/proxy /usr/local/bin

API Server Unit File

cd /lib/systemd/system
vim apiserver.service
[Unit]
After=etcd.service
ConditionFileIsExecutable=/usr/local/bin/apiserver
Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service [Service]
ExecStart=/usr/local/bin/apiserver \
-address=192.168.124.131 \
-port= \
-portal_net=172.17.0.0/ \
-etcd_servers=http://192.168.124.131: \
-logtostderr=true \
-v= \
-log_dir=/home/kubernetes/logs
Restart=always
RestartSec= [Install]
WantedBy=multi-user.target

controller-manager.service

 vim controller-manager.service
[Unit]
After=etcd.service
ConditionFileIsExecutable=/usr/local/bin/controller-manager
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service [Service]
ExecStart=/usr/local/bin/controller-manager \
-master=192.168.124.131:8080 \
-machines=192.168.124.132,192.168.124.133
-logtostderr=true \
-v=3 \
-log_dir=/home/kubernetes/logs
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

scheduler.service

 vim scheduler.service
[Unit]
After=etcd.service
ConditionFileIsExecutable=/usr/local/bin/scheduler
Description=Kubernetes Scheduler
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service [Service]
ExecStart=/usr/local/bin/scheduler \
-master=192.168.124.131: \
-logtostderr=false \
-v= \
-log_dir=/home/kubernetes/logs
Restart=always
RestartSec= [Install]
WantedBy=multi-user.target

Minion unit file

cd /lib/systemd/system
vim kubelet.service 
[Unit]
After=etcd.service
ConditionFileIsExecutable=/usr/local/bin/kubelet
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service [Service]
ExecStart=/usr/local/bin/kubelet \
-address=192.168.124.132 \
-port= \
-hostname_override=192.168.124.132 \
-etcd_servers=http://192.168.124.132:4001 \
-logtostderr=true \
-v= \
-log_dir=/home/kubernetes/logs
Restart=always
RestartSec= [Install]
WantedBy=multi-user.target

proxy.service

vim proxy.service
[Unit]
After=etcd.service
ConditionFileIsExecutable=/usr/local/bin/proxy
Description=Kubernetes Proxy
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
Wants=etcd.service [Service]
ExecStart=/usr/local/bin/proxy \
-etcd_servers=http://192.168.124.132:4001 \
-logtostderr=true \
-v= \
-log_dir=/home/kubernetes/logs
Restart=always
RestartSec= [Install]
WantedBy=multi-user.target

部署完毕访问

Ubuntu 安装 Kubernetes的更多相关文章

  1. 在Ubuntu安装kubernetes

    一.安装Docker 1. 配置Docker docker安装完成后需要配置cgroup驱动为systemd来增强稳定性 sudo vim /etc/docker/daemon.json { &quo ...

  2. ubuntu多节点安装kubernetes

    在ubuntu上面多节点安装kubernetes,假设有两台机器 master:192.168.1.84 minion:192.168.1.83 You wil now need to configu ...

  3. Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装

    首先说一下我的环境, 我是在windows 10 上面建了一个ubuntu18的虚拟机,同时由于某些原因 不受网络限制, 所以安装比较顺利. Install 1.安装并启用 Docker  sudo ...

  4. Ubuntu 国内安装 kubernetes

    由于墙的原因,国内要安装 kubernetes 非常的麻烦,因此只要解决这个问题,就可以顺利安装 kubernetes 的 三个官法工具 kubelet.kubeadm.kubectl. 安装环境: ...

  5. Linux安装kubernetes

    使用KUBEADM安装KUBERNETES V1.14.0 一.环境准备      操作系统:Centos 7.5      一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ...

  6. 使用kubeadm安装kubernetes v1.14.1

    使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ​ ⼀ 一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ​ Debi ...

  7. Centos 使用kubeadm安装Kubernetes 1.15.3

    本来没打算搞这个文章的,第一里面有瑕疵(没搞定的地方),第二在我的Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装 也有安装,第三 和社区的问文章比较雷同 https:// ...

  8. 使用Kubeadm安装Kubernetes【单Master节点】

    参考:Kubernetes官方文档 Kubernetes安装方案选择    Centos 7 配置科学上网 安装Calico网络插件 kubernetes-dashboard部署 Kubernetes ...

  9. CentOS 7.5 使用 yum 安装 Kubernetes 集群(二)

    一.安装方式介绍 1.yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面,使用 yum 安装,好处是简单,坏处也很明显,需要官方更新 yum 源才能 ...

随机推荐

  1. python 在Unicode和普通字符串 str 之间转换

    unicodestring = u"Hello world" # 将Unicode转化为普通Python字符串:"encode" utf8string = un ...

  2. 随机梯度下降 Stochastic gradient descent

    梯度下降法先随机给出参数的一组值,然后更新参数,使每次更新后的结构都能够让损失函数变小,最终达到最小即可. 在梯度下降法中,目标函数其实可以看做是参数的函数,因为给出了样本输入和输出值后,目标函数就只 ...

  3. mysql 匹配 findinset

     SELECT FS_ITEM_DESC FROM dictionary  WHERE FS_TYPE = 'prizeType' AND FIND_IN_SET(FS_ITEM_CODE,(SELE ...

  4. sqlalchemy多表联合查询(inner outer join 左右连接)详解

    #按用户名摸糊查询trans_details.query.join(Uses).filter(Users.username.like('%xx%'))#select xxx from trans_de ...

  5. mysql主从复制的介绍

    引用:https://my.oschina.net/u/255939/blog/505598 MySQL复制就是一台MySQL服务器(slave)从另一台MySQL服务器(master)进行日志的复制 ...

  6. Spring监管下的Hibernate配置文件

    今天看了看别人的程序,用的是SSH搭建的,自己回忆了下感觉假设採用注解的话那么Hibernate的配置文件hibernate.cfg.xml是还须要的,而*.hbm.xml则能够被注解所替代的,结果确 ...

  7. java的static块执行时机<转>

    一.误区:简单认为JAVA静态代码块在类被加载时就会自动执行.证错如下: class MyClass1 { static {//静态块 System.out.println("static  ...

  8. Remote Desktop Connection没法全屏解决方案

    Remote Desktop Connection无法全屏解决方案Sometimes, Remote Desktop Connection总是一个窗口,不自动全屏,任务栏不能自动隐藏起来,要拖动滚动条 ...

  9. eclipse中maven打包

    第一种方式:将依赖包打包进一个jar包中. <build> <plugins> <plugin> <artifactId>maven-compiler- ...

  10. hadoop 参数

    看<Hadoop:权威指南>的时候收集了书上写的一些需要优化的参数,记录了一下子,给大家分享一下吧. 1.mapred.task.timeout 任务超时时间,默认是10分钟 2.mapr ...