一、kubernetes(简称k8s)

集群示意图

Kubernetes工作模式server-client,Kubenetes Master提供集中化管理Minions。部署1台Kubernetes Master节点和4台Minion节点。

Kubernetes集群组件:
  - etcd 一个高可用的K/V键值对存储和服务发现系统
  - flannel 实现夸主机的容器网络的通信
  - kube-apiserver 提供kubernetes集群的API调用
  - kube-controller-manager 确保集群服务
  - kube-scheduler 调度容器,分配到Node
  - kubelet 在Node节点上按照配置文件中定义的容器规格启动容器
  - kube-proxy 提供网络代理服务

二、实践

1、创建四台集群需要的环境

1.1docker安装

yum install -y docker    #yum 安装
docker version   #查看版本

1.1或者

1.安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装 Docker-CE
重建 Yum 缓存。安装 Docker-CE ,请执行一下命令进行安装:
sudo yum install docker-ce
4.启动 Docker-CE
sudo systemctl enable docker
sudo systemctl start docker

  

1.2 centos镜像-Centos7安装

// 下载镜像
#docker run --privileged -itd --name centos --restart=always centos:7 /usr/sbin/init # docker pull centos 我用centos:7 -privileged 指定容器是否是特权容器。这里开启特权模式。
-it 启动互动模式。
--restart=always是随着docker启动
/usr/sbin/init 初始容器里的CENTOS。

  

1.3创建镜像

// 创建容器 (系统会给这个容器分配一个默认的名字)
docker run -itd --name=master -p 8001:8001 centos:7
docker run -itd --name=node1 -p 8002:8002 centos:7
docker run -itd --name=node2 -p 8003:8003 centos:7
docker run -itd --name=node3 -p 8004:8004 centos:7
docker run -itd --name=node4 -p 8005:8005 centos:7

  

1.4查看

  

1.数据卷
Pod中的容器之间共享数据或者持久化数据,可以使用数据卷。 2.应用程序健康检查
容器内服务可能进程堵塞无法处理请求,可以设置监控健康检查策略保证应用的健壮性。(默认情况下只保证容器本身正常,不会对应该程序状态检测) 3.复制应用程序实例
控制器维护Pod副本的数量,保证一个Pod或一组同类的Pod数量始终可用。 4.弹性伸缩
根据设定的指标(CPU利用率)自动缩放Pod副本数。 5.服务发现
使用环境变量或DNS服务插件保证容器中程序发现Pod入口的访问地址。 6.复制均衡
一组Pod副本分配一个使用的机器IP地址,负载均衡转发请求到后端容器。在集群内部其他Pod可以通过这个ClusterIP访问应用。 7.滚动更新
更新服务不中断,一次更新一个Pod,而不是同时删除整个服务 8.服务编排
通过文件描述部署服务,使得应用程序部署变得更有效。 9.资源监控
Node节点组件集成cAdvisor资源收集工具,可以通过Heapster汇总整个集群节点资源数据,然后存储到IfluxDB时序数据库中,再由Grafana展示。 10.提供认证和授权
支持属性访问控制(ABAC)、角色访问控制(RBAC)认证授权策略 

  

												

二、kubernetes的更多相关文章

  1. (二)Kubernetes kubeadm部署k8s集群

    kubeadm介绍 kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理 ...

  2. (十二)Kubernetes 认证、授权与准入控制

    访问控制概述 API Server作为Kubernetes集群系统的网关,是访问和管理资源对象的唯一入口:包括kube-controller-manager.kube-scheduler.kubele ...

  3. 001.Kubernetes简介

    一 Kubernetes概述 Kubernetes是一个全新的基于容器技术的分布式架构领先方案.Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker ...

  4. kubernetes核心组件kube-proxy 学习总结

    一.  kube-proxy 和 service  kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重 ...

  5. kubernetes基本概念和术语

    一. kubernetes是什么 kubernetes是一个全新得基于容器技术得分布式架构领先方案.是google Borg得一个开源版本.Borg是google得一个久负盛名得内部使用得大规模集群管 ...

  6. Kubernetes --- 详细介绍和架构详解

    Kubernetes是一个跨主机集群的开源的容器调度平台,它可以自动化应用容器的部署,扩展和操作,提供以容器为中心的基础架构 目录 一. Kubernetes用途 二. Kubernetes特点 三. ...

  7. kubernetes核心组件kube-proxy - 运维笔记

    一.  kube-proxy 和 service  kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重 ...

  8. kubernetes核心组件kube-proxy

    一.  kube-proxy 和 service  kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重 ...

  9. 028.核心组件-API Server

    一 Kubernetes API Server原理 1.1 API Server功能 Kubernetes API Server的核心功能是提供Kubernetes各类资源对象(如Pod.RC.Ser ...

  10. 038.集群网络-K8S网络实现

    一 Kubernetes网络实现 1.1 Kubernetes网络优势 在实际的业务场景中,业务组件之间的关系十分复杂,微服务的理念更是让应用部署的粒度更加细小和灵活.为了支持业务应用组件的通信,Ku ...

随机推荐

  1. face recognition[Euclidean-distance-based loss][Center Face]

    本文来自<A Discriminative Feature Learning Approach for Deep Face Recognition>,时间线为2016年.采用的loss是C ...

  2. Clustering[Spectral Clustering]

    0. 背景 谱聚类在2007年前后十分流行,因为它可以快速的通过标准的线性代数库来实现,且十分优于传统的聚类算法,如k-mean等. 至于在任何介绍谱聚类的算法原理上,随便翻开一个博客,都会有较为详细 ...

  3. IntentService解析

    IntentService中内置了一个HandlerThread,能够对数据进行处理.相比于普通的Service,IntentService有以下优点: 1. 不用在Service创建线程. 2. 不 ...

  4. 封装HttpUrlConnection开箱即用

    因为经常用到 便写出来方边使用 直接复制本类即可 import java.io.*; import java.net.HttpURLConnection; import java.net.URL; i ...

  5. Python—time模块介绍

    time 模块 在平常的代码中,我们常常需要与时间打交道.在Python中,常用的与时间处理有关的模块就包括:time,datetime,下面来介绍time模块. 在开始之前,首先要说明几点: 一.在 ...

  6. Python—包介绍

    包(Package) 当你的模块文件越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把与页面交互相关的放一个文件夹, . └── my_proj ├── crm #代码目录 ...

  7. eclipes个人配置

    设置字体:https://jingyan.baidu.com/article/f96699bb9442f3894e3c1b15.html general->appearance->colo ...

  8. dfs实现数的全排列

    代码 #include<bits/stdc++.h> using namespace std; #define ll long long bool vis[15]; int a[15]; ...

  9. applicationContext.xml 模板

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. 现代程序设计 homework-06

    写代码爽还是读代码爽? 当然是写代码爽好吧... 读代码明显是读+写两倍的工作量好么... 本次作业要求: 1) 把程序编译通过, 跑起来. 读懂程序,在你觉得比较难懂的地方加上一些注释,这样大家就能 ...