DOCKER系列 – 内置KUBERNETES (二)

上一章介绍了内置kubernetes的docker实验版的安装,具备了项目部署的基本环境,这一章将演示在k8s上部署的具体步骤。

Docker store官网提供了丰富的学习镜像,这里使用docker kubernetes官方著名的示例words演示。

1. 配置文件

创建名为stack.yml的docker compose文件,将如下内容复制到文件中保存。这里使用dockerdemos下的lab-web,lab-words和lab-db搭建words应用。

2. 部署应用

执行如下代码,它会自动下载并部署到kubernetes中。
docker stack deploy –compose-file stack.yml demo

3. 查看部署

执行如下命令查看示例部署情况,可以看到它按照docker compose文件成功部署words到kubernetes。

4. 浏览器查看

在浏览器输入http://localhost/,看到如下页面说明成功安装。

5. 删除部署

通过如下命令停止和移除部署,通过上面演示过的命令可以看出demo已经被移除,并且网页也无法打开。

从上面简单的示例可以看出,集成在docker中的kubernetes,通过docker命令就可以实现在k8s上的部署。

参考:
https://docs.docker.com/docker-for-mac/kubernetes/
https://media-glass.es/docker-and-kubernetes-40ab7d01909f
https://rominirani.com/tutorial-getting-started-with-kubernetes-with-docker-on-mac-7f58467203fd

DOCKER系列 – 内置KUBERNETES (二)

DOCKER系列 – 内置Kubernetes (一)

最近docker发布新的实验版(Edge),最重要的特性就是集成了kubernetes,当然稳定版(stable)是不具备这个功能的。这样就省去了手动安装kubernetes繁琐的步骤,轻松的实现在Mac上搭建基于kubernetes+docker的容器云。
最权威的教程来自一个docker团队发布的YouTube视频,网上也涌现出多篇详细的文章,不过处于对docker拥抱kubernetes的支持,我还是想做一次重复造轮子的事情。

本章首先完成docker edge的下载,安装和启动。

1. 下载

进入官网下载docker 社区实验版,如下图。根据官网描述,只有Docker CE Edge 17.12及以上才支持,所以下载需注意。

2. 安装

双击下载的Docker.img文件按步骤安装,完成后打开docker,它会出现在导航栏上。
点击导航栏上的docker图标,会看到Docker is running,说明docker已经启动,而kubernetes默认关闭。然后点击About Docker,可以看到kubernetes的版本是1.8.2。

3. 启动Kubernetes

再次点击Docker图标,然后点击Preferences…,打开docker配置窗口,点击最后一个标签打开kubernetes的配置,可以看到它默认是关闭的。
点击Enable Kubernetes,会出现如图,点击install它会开始下载和安装Kubernetes cluster和kubectl,安装过程会持续一段时间,完成后会出现安装成功的弹窗。

再次打开docker kubernetes配置,勾选Show system containers,这样在查看容器时kubernetes内置容器也会列出。

4. 查看Kubernetes

分别执行如下命令检查kubernetes安装情况。

可以看到kubernetes默认安装了一个单节点集群docker-for-desktop

可以看到很多container来自google k8s,这也是因为上面勾选了Show system containers

5.安装可视化界面

虽然kubernetes的操作都可以通过命令行kubectl完成,但如果希望使用UI界面查看,就需要安装kubernetes dashboard。执行如下命令安装dashboard

安装完成后,通过如下命令查看dashboard安装情况,如下图。

输入如下命令启动dashboard服务

通过在浏览器中输入如下url访问dashboard

它会弹出登陆窗口,因为这里是proxy访问,点击skip直接进入dashboard

默认是没有deployments,这里是因为我已经部署了测试项目。

DOCKER系列 – 内置Kubernetes (一)

搭建Jenkins的CI环境

配置docker环境

1. 检查系统内核,docker要求64位+3.10及以上内核

2. 添加yum源

3. 安装并启动docker,检查docker是否正常启动

4. 如果已经安装docker,考虑升级到最新稳定版

安装jenkins

1. jenkins提供多种安装方式,包括下载war包,apt-get等依赖下载,以及通过docker安装,这是使用docker安装并启动jenkins。

2. 检查是否正常启动容器,并从日志中拷贝初始化密码。

安全策略(可选)

如果在云平台部署jenkins,例如阿里云,AWS等,可能需要配置安全策略,否则无法访问端口8888。
这里以阿里云配置为例,增加8888端口开放,如下图

配置jenkins

当配置端口,通过http://:8888打开初始状态jenkins如下图,通过输入初始密码(如果之前未在logs中拷贝,可以通过如图上步骤获取默认密码)进入配置页面,推荐选取安装默认插件,然后设置管理员账户,最终可以成功打开jenkins管理员页面。

搭建Jenkins的CI环境

Docker 系列 – docker cheatsheet (持续更新)

#list running containers
docker container

#list all containers
docker container ls -a

#list exit container ids
docker container ls -aq -f status=exited
docker ps -aq -f status=exited

#remove stopped containers
docker ps -aq –no-trunc | xargs docker rm

#list only image ids
docker images -q

#list all images including intermediate images
docker images -a

#prune dangling images
docker rmi $(docker images -f “dangling=true” -q)
docker images -q –filter dangling=true | xargs docker rmi

#remove unused images
docker rmi $(docker images | grep none | awk ‘{ print $3}’)
docker rmi $(docker images –quiet –filter “dangling=true”)
docker images -q –filter dangling=true | xargs docker rmi
docker image prune -f

#remove unused volumes
docker volume rm $(docker volume ls -q )

#remove unused networks
docker network rm $(docker network ls | grep “_default”)

#remove stopped + exited containers
docker rm -v $(docker ps -a | grep “Exit [1-255]” | awk ‘{ print $1 }’)

Docker 系列 – docker cheatsheet (持续更新)

Docker系列 – Linux环境下Docker安装(CentOS7)

目前Docker仅提供了Enterprise Version(EE)和Community Version(CE)两个版本,分别是docker-ee和docker-ce,官网已经推荐删除历史版本包括docker或docker-engine。
这里以阿里云ECS(CentOS7)为演示环境。

1. 安装前检测

1.1 查看CentOS版本,安装docker需要CentOS 7。

1.2 查看Linux Kernel信息

2. 清除已安装docker

2.1 检测是否已安装docker,如果有参考2.2和2.3,如果没有直接跳到步骤3。

2.2 如果已经安装历史版本,首先删除

2.3 如果已经安装新版,但想从新安装,需要先卸载并删除已有image和container

3. 安装docker

3.1 方式一:使用docker-ce repository
这是官网推荐的方法,参考[3],分别执行如下命令。

3.2 方式二:
使用epel安装,参考[1],分别执行如下命令。这里它安装的是docker-io,但实际安装的就是docker-ce。docker-io命名是留给Ubuntu的,沿用到了epel,目的是为了避免和Ubuntu docker system-tray binary的命名冲突。

4. 查看docker安装情况

4.1 检测是否docker已经被安装,出现如图说明已经安装

4.2 启动并检测是否docker成功安装,如果成功会出现如图信息。

参考:
[1] https://help.aliyun.com/document_detail/51853.html
[2] https://fedoraproject.org/wiki/EPEL
[3] https://docs.docker.com/engine/installation/linux/docker-ce/centos/#os-requirements

Docker系列 – Linux环境下Docker安装(CentOS7)