您现在的位置是:首页 >技术杂谈 >云原生(docker+k8s+阿里云)-Docker网站首页技术杂谈

云原生(docker+k8s+阿里云)-Docker

老$¥ 2023-06-10 20:00:03
简介云原生(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来操作集群
请添加图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。