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. 将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入

    //将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入 #include<stdio.h> int main() { int a[4][4],b[4][4],i,j;// ...

  2. oracle 存储过程实现数据CURD操作

    1.创建数据库表: -- Create table create table TEST_TABLE ( userid NUMBER not null, username NVARCHAR2(50), ...

  3. angular学习笔记(十四)-$watch(1)

    本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...

  4. 【转帖】漫话C++0x(四) —- function, bind和lambda

    实在是觉得此文总是去翻感觉不太好.于是果断转过来了,想看原文的请戳:http://www.wuzesheng.com/?p=2032 本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lam ...

  5. c++11特性与cocos2d-x 3.0之std::bind与std::function

    昨天同事让帮忙写一小功能,才发现cocos2d-x 3.0 和 cocos2d-x 3.0rc0 差别还是相当大的. 发现Label这一个控件,3.0就比rc0版本多了一个创建函数,更为关键的是3.0 ...

  6. IE11不支持Selenium 2.0的解决方法

    题前话(Pre-words) 希望使用Selenium 2.0的人看到这篇文章能够收藏此文,以后遇到该问题,再也不用花费多余的时间进行research了!本文就是对网上所有千奇百怪各种各样的searc ...

  7. DOS下运行C++程序配置

    闲来无事,想想C++是否一样能用dos来,编译运行程序呢,于是上网搜搜结果喜人,详见 http://blog.csdn.net/xiaoqinpeng/article/details/6556843 ...

  8. datagridview添加行

    添加明细按钮 DataRow dRow = DtDetail.NewRow(); dRow["PriceId"] = ConvertUtil.GetIntFromObject(dr ...

  9. 解决 Plugin with id 'com.github.dcendents.android-maven' not found.

    在Android studio中引用第三方库的时候,报这个错. Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not ...

  10. kubernetes deployment

    deployment是k8s中部署应用最常见的一种方式.如果不需要被访问,那么只需要定义deployment即可.如果需要被其他服务访问,那么可以创建一个service与其绑定,通过访问service ...