Alan Hou的个人博客

容器云运维实战 -Docker 与 Kubernetes 集群

Linux 运维基础

systemd



systemctl

hostnamectl

timedatectl

性能工具及系统命令

nfs 配置

自动化运维工具:Ansible, Puppet, Cfengine, Chef, Func, Fabric

Redis

官网下载配置文件放入/opt/redis/conf/redis.conf

按需要修改bind 127.0.0.1,添加requirepass xxxx设置密码,其它配置如 daemonize no, port 6379, logfile /logs/redis.log, dir /data

Ansible

分布式文件存储系统:GlusterFS、CephFS

ipvsadm

例:

调度器外网172.16.1.1,内网172.16.168.100,安装 ipvsadm

真实服务器1内网172.16.168.101,安装Nginx

真实服务器2内网172.16.168.102,安装 Nginx

lvs-nat.sh 脚本示例如下

nmtui 可视化设置网络网关工具

Nginx

Nginx基础知识和常见问题

Nginx 核心知识

Docker 容器引擎

Dockerfile

每一句命令都是一个镜像层,尽量把多条相关命令写在同一句中,可使用反斜杠 \ 来组合多条命令

国内镜像加速

搭建自己的镜像加速器

搭建私有仓库

以上均可通过-v 指定数据卷

容器管理的命令

命令说明
attach依附到正在运行的容器
cp从容器里复制文件或目录到宿主机文件系统,或以 STDOUT 形式输出
create新建容器
diff检查容器的文件系统变动
events实时获得 Docker 服务器端的事件信息
exec在运行的容器内运行命令
export将容器的文件系统导出到一个归档文件中
kill杀死一个运行中的容器
logs获取容器的日志
pause暂停容器内部的所有进程
port输出容器的端口信息
ps显示容器列表
rename重命名一个容器
restart重启容器
rm删除一个或多个容器
run运行一个新容器
start启动一个或多个非运行状态的容器
stats实时显示容器的资源使用情况
stop停止正在运行的容器
top显示容器内正在运行的进程
unpause恢复容器内部的所有进程
update更新一个或者多个容器的配置
wait阻塞直至容器停止,然后打印退出代码

显示没有挂载到容器上的数据卷

数据卷插件,知名的有 Flocker、Convoy、GlusterFS、Keywhiz、REX-Ray 等

Docker 插件

Docker 支持的存储驱动程序

技术存储驱动程序的名称
OverlayFSoverlay1 或 overlay2
AUFSaufs
Btrfsbtrfs
Device Mapperdevicemapper
VFSvfs
ZFSzfs

容器网络

容器编排

安装 Docker Compose

docker-compose.yml 示例

Wordpress示例

Docker 集群管理

Docker Swarm 命令说明

命令说明
docker swarm init初始化一个 Swarm 集群
docker swarm join加入一个集群,包括普通 节点和管理节点
docker swarm join-token管理加入集群的口令
docker swarm leave离开当前集群
docker swarm unlock解锁集群
docker swarm unlock-key管理解锁集群的密钥
docker swarm update更新集群

集群节点管理命令说明

命令说明
docker node demote将一个或多个管理节点降级为普通 节点
docker node inspect显示节点的详细信息
docker node ls查看集群的所有节点
docker node promote将普通节点提升为管理节点
docker node ps显示一个或多个节点的正在运行的任务列 Shell,默认为当前节点
docker node rm移除一个或者多个节点
docker node update更新节点

Docker Stack 子命令

命令说明
docker stack deploy部署一个新的 Docker 栈或更新再有的 Docker 栈
docker stack ls显示所有的 Docker 栈
docker stack ps显示指定栈的任务
docker stack rm删除指定的 Docker 栈
docker stack services显示指定栈的服务列 Shell

集群搭建示例

安装 Docker Machine

安装 Virtualbox(CentOS 7为例)

国内提速:https://mirror.tuna.tsinghua.edu.cn/help/virtualbox/

注:如版本不匹配需要安装 kernel(yum install kernel) 时,请记得重启机器

集群管理面板

Shipyard

Portainer

Docker 生态

Docker Machine

容器编排调度:Marathon+Mesos、Swarm+Compose、Kubernetes

集群管理面板 Rancher

1.x 主攻容器编排,2.x 集群管理

https://rancher.com/docs/rancher/latest/zh/

https://rancher.com/docs/rancher/v2.x/en/

拉取私有仓库报错:repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied

调度系统 Nomad、DC/OS

服务发现:etcd、consul、zookeeper、crypt、confd

私有镜像仓库

VMware Harbor:企业私有仓库

SUSE Portus:镜像仓库前端分布认证

Daemon 安全

详细配置:https://docs.docker.com/engine/security/https/

Docker 安全工具

监控与日志

基于 Docker 的 PaaS 平台

Docker 持续集成

其它工具

别人整理的 Docker 生态相关项目:https://github.com/veggiemonk/awesome-docker

Docker Api: https://docs.docker.com/engine/api/sdk/

Kubernetes 入门

Master 模块

Node 模块

Pod:自主式 Pod、控制器管理的 Pod

网络解决方案:Flannel

常用命令

Kubernetes生产级实践指南 从部署到核心应用:https://gitee.com/pa/kubernetes-ha-kubeadm-private

常见问题

1、Docker 启动 MySQL权限问题

2、Can’t find gotests in GOPATH

 

 

退出移动版