Docker&K8S&虚拟化
文章平均质量分 67
xxb249
电脑爱好者,半个电脑程序员
展开
-
K8S yaml文件中常用字段说明
参数名 字段类型 说明 version String k8s api的版本号,目前是v1,可以通故宫kubectl api-version查看 ...原创 2021-05-08 14:35:28 · 2624 阅读 · 0 评论 -
overlay文件系统-C语言操作
一、overlay文件系统关于overlay文件操作,网上有很多但是很多说的不太清楚,在维基百科里说的还是很详细,大家可以参考《overlay 命令行操作实现》二、c语言实现网上大多数都是通过命令行方式操作,然而耿直的苦逼IT男,还是希望知道如何用代码实现。1、Docker实现docker底层使用系统调用,完成overlay,这里可以操作这个文件https://github.com/docker/docker-ce/blob/master/components/engine/daem..原创 2021-04-22 18:05:31 · 803 阅读 · 0 评论 -
docker 网络之host模式底层实现
众所周知,docker有4种网络模式:桥接、host、容器、none,默认使用桥接。今天主要介绍一下host模式。host模式,本质是容器与物理主机在网络空间是同一个namesapce。docker在创建容器后会在默认路径/var/run/docker/netns/ 生成一个文件,创建一个容器并且指定网络是为--net=host,具体如下可知:我们通过上图可知,蓝色中实际为文件inode id,三者是完全相同的。其中进程1的net namespace代表就是物理主机net namespace,由原创 2020-06-10 20:59:47 · 1747 阅读 · 0 评论 -
Linux namespace定位
1、lsns命令查看系统中namespace[root@localhost hotspot]# lsns NS TYPE NPROCS PID USER COMMAND4026531836 pid 324 1 root /usr/lib/systemd/systemd --switched-root --system --deserialize 224026531837 user 326 1 root /usr/lib/syste原创 2020-05-22 17:23:10 · 856 阅读 · 0 评论 -
kubernetes一步一步搭建(二)https访问
上一篇介绍http方式连接到集群,http方式是不安全,如果内部使用还可以,若是部署到外部则需要使用https增加安全性。下面介绍如何在node2上采用https方式。 上面说到/var/lib/kubelet/kubeconfig文件,并非手动创建,而是通过命令行kubectl config进行配置,配置完成之后就会自动生成。 简单介绍一下ApiServer认证,认证一共有三...原创 2018-03-05 18:37:39 · 16290 阅读 · 4 评论 -
Qemu虚拟化PowerPc
由于工作需要,需要需要虚拟出一个PowerPc64的系统,在介绍之前,先Qemu、Kvm、vmWare。之前对这三者虚拟化特点并没有特别关注。 是否基于硬件平台是否全虚拟化与宿主主机CPU一致性能Kvm是是是高VmWare是否(半虚拟化)是高Qemu否,纯软件模拟是否(在x86上可以模拟powerpc)差各个虚拟化对比表Kvm与QEMU关系:Kvm是基于linux kernel的,它已经成...原创 2018-03-19 13:03:30 · 7411 阅读 · 2 评论 -
Flannel配置以及部署
上一篇,提及到要保证kubedns、tomcat、mysql调度到同一个node节点上,这是为什么呢?这个就涉及到了docker网络,如下图: Docker网络对于host主机来说是一个局域网(内部网络)外界无法直接访问到Docker网络,例如想访问PodA1,是不行。如上图所示,假如PodA1和PodB1进行通信,是没有办法直接通信的。那么如何让PodA1和PodB1通信呢?有很多种...原创 2018-04-17 09:07:52 · 6165 阅读 · 0 评论 -
kubedns应用
以下实验环境k8s版本号是1.9.1版本,操作系统为centos7一、环境介绍IP角色备注192.63.63.1Master不启动kubelet,只做master192.63.63.10Node1 Master上不启动kubelet目的是保证k8s在部署服务的时候能够部署到Node上[root@localhost demo]# kubectl get nodeNAME STATUS...原创 2018-04-13 16:58:25 · 1033 阅读 · 0 评论 -
docker-compose.yaml示例
docker提供了一个工具docker-compose命令行,用于批量部署容器,docker-compose需要一个yaml文件(实质为文本文件),默认名字为docker-compose.yaml(docker-compose.yml)。如果熟悉k8s的同学可能对yaml并不是陌生,这里只是做一个笔记方便日后查询。version: '2' services: #服务定义 开始标签 con...原创 2019-01-03 09:12:05 · 4922 阅读 · 0 评论 -
深入剖析Flannel-启动流程
最近一直在研究flannel的源代码,发现flannel自身代码不是很多,依赖的第三方代码却很多,例如创建隧道是通过第三方库vishvananda.后续分析源码过程中,不会深入介绍第三方库,只把我们关心的逻辑(流程)介绍清楚。一、流程图flannel的源码逻辑并不是很复杂,main函数处理逻辑也比较简单,所以就从main函数开始介绍。main函数流程图如下:二、源码在上一篇提到...原创 2019-02-13 10:23:10 · 2788 阅读 · 0 评论 -
c语言实现容器
为了实现了解docker容器底层实现原理,特地用C语言实现了一个简单的Demo--ContainerC,放到了github中地址,仅供参考学习。在实现ContainerC的时候参考iproute2源代码。...原创 2019-02-13 10:35:43 · 3005 阅读 · 0 评论 -
KVM虚拟机典型配置文件xml
<domain type='kvm'> <name>vm64-1</name> //虚拟机名称 <memory unit='MiB'>2300</memory> //最大内存,单位M <currentMemory unit='MiB'>2300</currentMemory> //可用内存,单位M &am原创 2019-01-29 13:14:29 · 5586 阅读 · 1 评论 -
C语言创建tap设备并且设置ip
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>#include &a原创 2019-01-29 15:03:33 · 2412 阅读 · 0 评论 -
kvm网络那些事儿
在Linux下面我比较习惯用kvm虚拟出虚拟机,今天主要记录一下kvm网络相关的一些内容。一、网络模式kvm虚拟机支持两种网络模式:NAT和Brigde,这种模式有什么区别呢?NAT(网络地址转换):这种方式是虚拟系统通过网络地址转换,将地址映射到host主机地址上,通过主机进行网络访问。这样虚拟系统就可以访问外网和局域网内的其他主机。但是局域网内的其他主机不能访问虚拟系统,相当于单向...原创 2019-09-18 14:50:57 · 1037 阅读 · 0 评论 -
kubernetes一步一步搭建(一)安装与http访问
众所周知,kubernetes(简称k8s)是用于管理docker集群的,最近一段时间一直在折腾环境问题,在此写一篇博客,来帮助像我一样的小白,避免走弯路。一、环境集群环境角色IP地址版本号Docker版本系统版本master192.63.63.1/24v1.9.117.12.0-ceCentos7.1node1192.63.63.10/24v1.9.117.12.0-ceCentos7.1n...原创 2018-03-04 17:09:41 · 25388 阅读 · 3 评论 -
kvm虚拟系统无法启动拷贝数据
kvm虚拟系统崩溃拷贝数据原创 2016-01-03 18:17:36 · 808 阅读 · 0 评论 -
命令行方式配置kvm桥接
以前写通过窗口设置虚拟机桥接,今天介绍一下通过命令行配置。 众所周知,虚拟机连接外网有两种方法:NAT和Bridge。简单介绍一下这两种方式:NAT(网络地址转化):host主机与虚拟机vm,属于两个不同的网络。虚拟机vm通过NAT方式并且借助host主机物理网卡,访问外网。图1这种场景,网络情况:1)Vm和Host1可以通信。2)Vm和外网可以通信。3)Vm和...原创 2017-12-13 13:15:15 · 2279 阅读 · 0 评论 -
docker 私有仓库从无到有
今天介绍一下docker仓库。Docker的管理方式是照仿github管理方式,使用方式也和github类似。获取镜像是docker pull、发布镜像是docker push,保存镜像是docker commit。因此只要是熟悉git命令行,对于docker也就不默生了。 由于dockerhub在国内访问比较慢且考虑到流量和带宽问题,构建自己的docker私有仓库非常有必要。下面所有做实验基于...原创 2018-01-23 21:05:22 · 1027 阅读 · 0 评论 -
Nginx反向代理Docker Registry
上一篇介绍如何搭建Registry私服。虽然上一篇的私服已经能够正常使用,但是存在一些问题,例如1)不安全。直接将端口暴露出来,容易被攻击 -- 采用nginx做https反向代理。2)单点故障,导致服务不能使用 -- 启动多个Registry服务,用nginx做负载均衡。今天介绍利用nginx做反向代理。比较惭愧,原先对openssl一直不太了解,大概花了三周的时间才把Regis原创 2018-01-23 21:08:09 · 3606 阅读 · 2 评论 -
docker配置文件以及各种问题汇总---随笔
因为对docker了解不是深入(不是开发docker)。但把docker的配置文件研究透彻,会起到“事半功倍”的效果。下面只是随笔记一下,不能成为博客,若以后有深入研究,再详细整理。一、问题集锦【问题1 一个已经停止的容器,再次启动报Unknown runtime specified docker-runc】[root@localhost ~]# docker start 389fc...原创 2018-01-24 14:11:54 · 3557 阅读 · 0 评论 -
docker基础命令行
本篇适合于对docker有一定了解的同学,如果不知道docker是什么,有哪些特点请自行百度。一、image镜像相关“镜像”这个词语应该很多人都知道,假设我们安装windows系统,一个windows iso文件,这个iso文件就是镜像文件。但是对于docker的镜像来说并非是iso文件,它也没有文件实体。获取image方式有如下四种方式: 1、docker pull 镜像名字。例...原创 2018-01-06 12:24:45 · 389 阅读 · 0 评论 -
docker构建国内镜像服务
在国内想要下载镜像比较困难,因此很多公司都构建自己的私有仓库。如何搭建私有仓库,请参考《docker私有仓库从无到有》。然而即使私有仓库服务构建完成,但是里面没有镜像,一样很苦恼。今天介绍一下如何利用国内云服务商提供的镜像加速器,来快速下载镜像。 目前国内docker镜像加速器服务商,质量比较好的有阿里云、DaoCloud以及Docker中国。它们配置都是相同,获取专属加速地址,然...原创 2018-03-07 13:14:50 · 14506 阅读 · 1 评论 -
《kubernetes权威指南》读书笔记
本文只是随便记录k8s一些常用命令行、一些配置、一些基本概念。后期再进行整理【概念】1、为啥会出现pasue容器?1)用pasue容器的存活状态标志整个容器组的状态2)一个pod里的多个业务容器可共享Pause容器的IP、共享Pause容器挂接的Volume。 k8s为每个pod都分配了一个唯一的IP地址,称之为PodIp。一个Pod里的多个容器共享PodIp地址。因此在k8s中,一个Po...原创 2018-03-08 07:49:16 · 2712 阅读 · 0 评论 -
基于kvm配置桥接口
在linux下创建虚拟机比较方便的软件就是kvm。本人的linux是Centos6.7版本,如果已经安装了kvm可以继续往下看,如果没有安装请先安装啊!!kvm支持两种网络链接方式,一种是NAT,一种是Bridge桥接。这两种模式有什么区别呢?NAT(网络地址转换):这种方式是虚拟系统通过网络地址转换,将地址映射到host主机地址上,通过主机进行网络访问。这样虚拟系统就可以访问外网和局域网...原创 2015-12-09 21:10:24 · 997 阅读 · 0 评论