Skip to content

Commit

Permalink
更新图片及文档
Browse files Browse the repository at this point in the history
  • Loading branch information
ist0ne committed Jan 16, 2019
1 parent 7236840 commit 589a43d
Show file tree
Hide file tree
Showing 18 changed files with 139 additions and 159 deletions.
26 changes: 9 additions & 17 deletions 1.容器基础/容器基础.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,34 +43,26 @@ v2版本,通过监听端口通信

v1版本,通过socket通信

```bash
docker build -t ist0ne/hello:v1 .
docker login
docker push ist0ne/hello:v1
```
docker build -t ist0ne/hello:v1 .
docker login
docker push ist0ne/hello:v1

v2版本,通过监听端口通信

```bash
docker build -t ist0ne/hello:v2 .
docker login
docker push ist0ne/hello:v2
```
docker build -t ist0ne/hello:v2 .
docker login
docker push ist0ne/hello:v2

### 运行容器

```bash
docker run -ti -d --name flask ist0ne/hello:v1
```
docker run -ti -d --name flask ist0ne/hello:v1

### 进入容器

```bash
docker exec -ti flask bash
```
docker exec -ti flask bash

## 1.3 小结

本章中我向你讲述了容器的兴起过程以及容器能做什么以及解决了什么问题。其实容器实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。容器的rootfs部分称为“容器镜像”(Container Image),是容器的静态视图;Namespace+Cgroups 构成的隔离环境,这一部分我们称为“容器运行时”(Container Runtime),是容器的动态视图。然后我向你阐述了容器兴起后出现的管理问题,于是出现了容器编排系统。从一个开发者和单一的容器镜像,到无数开发者和庞大的容器集群,容器技术实现了从“容器”到“容器云”的飞跃,标志着它真正得到了市场和生态的认可。

接下来我以实例的方式向你讲述了如何打包一个Flask架构的Python Web应用及如何将它运行起来。下一章我将向你讲述 Kubernetes 这个编排工具存在的意义及其架构,它是如何解决容器编排问题,并带领你搭建一个 Kubernetes 集群。
接下来我以实例的方式向你讲述了如何打包一个Flask架构的Python Web应用及如何将它运行起来。下一章我将向你讲述 Kubernetes 这个编排工具存在的意义及其架构,它是如何解决容器编排问题,并带领你搭建一个 Kubernetes 集群。
98 changes: 37 additions & 61 deletions 2.kubernetes基础/Kubernetes基础.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,23 @@ Kubernetes(k8s)是Google开源由CNCF基金会管理的容器集群管理系统

## 2.2 Kubernetes 架构

Kubernetes 架构总的来讲分为两个平面,即控制平面(Kubernetes Master 节点)和计算平面((Kubernetes Node 节点))。客户端(kubectl)通过和 Kubernetes Master 节点直接进行通信来控制 Kubernetes 集群。

![Kubernetes 架构](https://github.com/findsec-cn/k100/raw/master/docs/k8s.jpg)

### 控制节点

![Kubernetes Master](https://github.com/findsec-cn/k100/raw/master/docs/k8s-master.jpg)

- kube-apiserver 对外暴露了Kubernetes API,所有对集群的操作都是通过这组API完成,包括集群资源信息的收集、应用的编排
- kube-controller-manager 负责整个Kubernetes的管理工作,保证集群中各种资源的状态处于期望状态,当监控到集群中某个资源状态不正常时,管理控制器会触发对应的调度操作
- kube-scheduler 调度器负责Kubernetes集群的具体调度工作,接收来自于管理控制器(kube-controller-manager)触发的调度操作请求,然后根据请求规格、调度约束、整体资源情况等因素进行调度计算,最后将任务发送到目标节点的kubelet组件执行。
- etcd etcd是一款用于共享配置和服务发现的高效KV存储系统,具有分布式、强一致性等特点。在Kubernetes环境中主要用于存储所有需要持久化的数据。

### 计算节点

![Kubernetes Node](https://github.com/findsec-cn/k100/raw/master/docs/k8s-node.jpg)

- kubelet kubelet是Node节点上最重要的核心组件,负责Kubernetes集群具体的计算任务,具体功能包括:通过与docker daemon的交互运行docker容器;配置Volume和网络;监控上报节点资源等
- kube-proxy kube-proxy主要负责Service Endpoint到POD实例的请求转发及负载均衡的规则管理。

Expand Down Expand Up @@ -53,47 +61,35 @@ Pod 是 Kubernetes 项目中最基础的一个对象,下一张中我会重中

- 安装minikube

```bash
brew cask install minikube
```
brew cask install minikube

- 安装vm驱动

```bash
curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit \\n&& sudo install -o root -g wheel -m 4755 docker-machine-driver-hyperkit /usr/local/bin/
```
curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit \\n&& sudo install -o root -g wheel -m 4755 docker-machine-driver-hyperkit /usr/local/bin/

- 启动 minikube(minikube会安装kubernetes需要的组件,这些组件的镜像存储在google的常客中,所有需要能够翻墙才能够安装成功)

、、、bash
minikube start --vm-driver=hyperkit --memory=4096 --insecure-registry="hub.xin.com" --registry-mirror="https://m9sl8pb5.mirror.aliyuncs.com" --docker-opt="bip=172.87.0.1/16"
minikube start --vm-driver=hyperkit --memory=4096 --insecure-registry="hub.xin.com" --registry-mirror="https://m9sl8pb5.mirror.aliyuncs.com" --docker-opt="bip=172.87.0.1/16"

参数介绍:
--vm-driver 使用的虚拟机驱动
--memory 给虚拟机的内存大小
--cpu 给虚拟机的cpu核数,默认是2核
--insecure-registry 指定私有仓库地址
--registry-mirror 指定镜像缓存地址,加快镜像下载速度
--docker-opt 指定docker的启动参数,bip 指定 docker 网桥使用的网段
、、、
参数介绍:
--vm-driver 使用的虚拟机驱动
--memory 给虚拟机的内存大小
--cpu 给虚拟机的cpu核数,默认是2核
--insecure-registry 指定私有仓库地址
--registry-mirror 指定镜像缓存地址,加快镜像下载速度
--docker-opt 指定docker的启动参数,bip 指定 docker 网桥使用的网段

- 停止minikube

、、、bash
minikube stop
、、、
minikube stop

- 删除集群

、、、bash
minikube delete
、、、
minikube delete

- 登录虚拟机

、、、bash
minikube ssh
、、、
minikube ssh

#### Windows 安装 minikube

Expand All @@ -110,19 +106,15 @@ Windows 安装minikube,需要Windows系统支持Hyper-V,目前 Windows 10 En

启动 minikube

、、、bash
minikube start --vm-driver=hyperv --memory=4096 --insecure-registry="hub.xin.com" --registry-mirror="https://m9sl8pb5.mirror.aliyuncs.com" --docker-opt="bip=172.87.0.1/16"
、、、
minikube start --vm-driver=hyperv --memory=4096 --insecure-registry="hub.xin.com" --registry-mirror="https://m9sl8pb5.mirror.aliyuncs.com" --docker-opt="bip=172.87.0.1/16"

## 2.5 访问 Kubernetes

### Dashboard

#### 访问Dashboard

、、、bash
kubectl proxy
、、、
kubectl proxy

访问地址: http://localhost:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/#!/overview?namespace=default

Expand Down Expand Up @@ -152,19 +144,15 @@ kubectl proxy

MacOS 安装:

、、、bash
brew install kubernetes-cli
、、、
brew install kubernetes-cli

Windows 安装:

、、、bash
choco install kubernetes-cli
cd C:\users\yourusername
mkdir .kube
cd .kube
New-Item config -type file
、、、
choco install kubernetes-cli
cd C:\users\yourusername
mkdir .kube
cd .kube
New-Item config -type file

#### 配置 kubectl 客户端连接到 kubernetes 集群

Expand All @@ -176,41 +164,29 @@ kubectl配置文件 ~/.kube/config

#### 获取集群信息

、、、bash
kubectl get nodes
kubectl get pods
kubectl get pods -n xxx
、、、
kubectl get nodes
kubectl get pods
kubectl get pods -n xxx

#### 使用命令行部署nginx服务

、、、bash
kubectl run nginx --image=nginx:1.15
、、、
kubectl run nginx --image=nginx:1.15

#### 为nginx创建服务

、、、bash
kubectl expose deployment nginx --port 80
、、、
kubectl expose deployment nginx --port 80

#### 获取部署列表

、、、bash
kubectl get svc
、、、
kubectl get svc

#### 启动工具容器进行访问测试

、、、bash
kubectl run -ti busybox --image=busybox --restart=Never -- sh
、、、
kubectl run -ti busybox --image=busybox --restart=Never -- sh

#### 测试能否访问服务

、、、bash
wget http://nginx
、、、
wget http://nginx

## 2.6 小结

Expand Down
Loading

0 comments on commit 589a43d

Please sign in to comment.