您现在的位置是:首页 >技术杂谈 >云原生(docker+k8s+阿里云)-Docker网站首页技术杂谈
云原生(docker+k8s+阿里云)-Docker
Gitee-Kubernetes学习
kubectl备忘清单
k8s官方文档-task
[云原生-kubectl命令详解]
ingress详解
ingress官方文档
云原生-语雀-架构师第一课
从Docker到Kubernetes进阶-社区
云计算学习路线-阿里云大学
如上图,服务器有公网ip和私网ip,公网ip是外部访问服务器用的,重启一次实例就变化了,如果多台服务器搭成一个集群,集群中各个服务器就是用私有ip来访问的
如下图,在服务器中ip a便是私有ip
专有网络VPC
网段
每一个ecs要用的ip地址是这个网段规定的网段理解先用网段计算器计算:在线网络计算器
下图,创建vpc中的创建交换机,其实就是创建子网
不同vpc下的服务器是不能互通的,哪怕网段一样。这样就可以造成服务器之间的隔离,如下图。
只有同一个vpc下不同交换机是可以互通的
比如生产环境机器和测试环境机器完全隔离
新建3个实例,只有下图前三个实例机器内能够ping通彼此的私有ip,因为它们都在一个私有网络,最后一个实例ping不通,不在一个vpc
Docker
端口映射
下图,docker
(直接通过云服务器的公网ip是不能直接访问到docker,服务器上运行的docker—app的,比如下图,)
容器:docker起了一个轻量级的虚拟机,里面有完整的操作系统
想用公网ip直接访问到nginx(容器),需要如下图的端口映射,让云服务器开一个端口号(88),然后这个88再转到docker的端口号80,这样就可以直接访问dockerl如下图
docker run --name=mynginx -d --restart=always -p 88:80 nginx
-p 88:80,就是将公网ip的88端口映射到nginx的80端口
下图就是小型Linux软件系统+nginx软件的环境
进入容器操作
怎么操作具体不是靠记,而是靠dockerhub的文档(https://hub.docker.com/_/nginx)
比如how to use nginx如下图
具体的docker命令参数可以–help或者看菜鸟教程
docker run --name=mynginx
-d --restart=always
-p 88:80 -v /data/html:/usr/share/nginx/html:ro
nginx
# 修改页面只需要去 主机的 /data/html
根据菜鸟教程文档
–name=“nginx-lb”: 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
–volume , -v: 绑定一个卷
-v(# docker 经常修改nginx配置文件)
-v /data/html:/usr/share/nginx/html:ro就是将容器内的/usr/share/nginx/html:绑定到ecs中的/data/html,这样修改配置文件不用进容器,直接修改主机的/data/html就可以了
Dockerfile将应用打包成镜像
Dockerfile-菜鸟教程
docker build 命令用于使用 Dockerfile 创建镜像。
docker build -t 设置打包的镜像的名字以及标签docker build -t java-demo:v1.0 .
部署中间件
部署一个Redis+应用,尝试应用操作Redis产生数据
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
#redis使用自定义配置文件启动
docker run -v /data/redis/redis.conf:/etc/redis/redis.conf
-v /data/redis/data:/data
-d --name myredis
-p 6379:6379
redis:latest redis-server /etc/redis/redis.conf
上图对照下面,docker.hub上文档
K8S,搭建集群
kubeadm init命令让当前机器变成master节点
每台机器必须先安装docker,然后安装kubelet,接着安装kubectl和kubeadm来操作集群