docker本地构建镜像上传至阿里云仓库脚本
imageName="icwebsocket:v1"
docker build -t ${imageName} .
#获取镜像id
imageID=`docker images -q -f reference=${imageName}`
if [ "${imageID}" ]
then
echo "镜像号${imageID}"
if [ "$1" = "login" ]
then
docker login -u 江苏铭博信息技术有限公司 -p *密码* registry.cn-shanghai.aliyuncs.com
fi
echo "Tag..."
docker tag ${imageID} registry.cn-shanghai.aliyuncs.com/nmb/${imageName}
echo "Push..."
docker push registry.cn-shanghai.aliyuncs.com/nmb/${imageName}
echo "成功..."
else
echo "未获取到镜像号"
fi
kube-proxy与service的关系
https://www.cnblogs.com/fuyuteng/p/11598768.html
- kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络。
- 在k8s中,提供相同服务的一组pod可以抽象成一个service,通过service提供的统一入口对外提供服务,每个service都有一个虚拟IP地址(VIP)和端口号供客户端访问
- kube-proxy存在于各个node节点上,主要用于Service功能的实现,具体来说,就是实现集群内的客户端pod访问service,或者是集群外的主机通过NodePort等方式访问service
- kube-proxy默认使用的是iptables模式,通过各个node节点上的iptables规则来实现service的负载均衡,但是随着service数量的增大,iptables模式由于线性查找匹配、全量更新等特点,其性能会显著下降
- 从k8s的1.8版本开始,kube-proxy引入了IPVS模式,IPVS模式与iptables同样基于Netfilter,但是采用的hash表,因此当service数量达到一定规模时,hash查表的速度优势就会显现出来,从而提高service的服务性能。
- kubernetes还提供了一种在node节点上暴露一个端口,从而提供从外部访问service的方式。比如这里使用这样的一个manifest来创建service
- 实现原理
批量删除镜像
docker rmi `docker images -q`
pod
Pod 是一组紧密关联的容器集合,它们共享 PID、IPC、Network 和 UTS namespace,
是 Kubernetes 调度的基本单位。Pod 内的多个容器共享网络和文件系统
Node
Node 是 Pod 真正运行的主机,可以是物理机,也可以是虚拟机。为了管理 Pod,每个
Node 节点上至少要运行 container runtime(比如 docker 或者 rkt)、 kubelet 和
kube-proxy 服务service
每个 Service 都会自动分配一个 cluster IP(仅在集群内部可访问的虚拟地址)和 DNS
名,其他容器可以通过该地址或 DNS 来访问服务
云原生
记录一次docker部署swagger ui的坑爹历程
-
这个是dockerfile内容,先是在官方的swagger镜像基础上编辑,然后把json文件拷贝到目录下面,很简单,就两行
-
服务器一直出错,先在本地试一下
先根据那个docker file构建一个镜像,swa是镜像名称
3.
然后跑镜像 加上端口映射,8000是根据swagger的nginx config [ nginx -t ]查出来的映射端口 -
然后根据容器id 进入到容器里面 发现json文件已经复制到正确目录 /usr/share/nginx/html/ 下面了
-
docker镜像容器的区别
容器是环境,镜像是软件,软件必须运行在特定环境中,所以镜像要跑在容器中,也可以说是多个镜像装在一个容器里,就好像我们的好多软件运行在虚拟机环境下,
docker ps 可以查看运行中的容器,
执行docker run命令最后一个参数是镜像名称,一般来说镜像命名遵循Registry/Repository/Image:tag规则,各部分含义如下
Registry:公司统一的Docker Registry地址。
Repository:镜像仓库,用来管理一类镜像。
Image:具体某镜像的名称。
tag:具体某镜像的标签。
- 镜像名 registry-vpc.cn-shanghai.aliyuncs.com/nmb/occasecore:v4 带vpv是阿里云kubectl管理的 集群内网的
- 23260服务器里面的镜像名
不带vps
通过打tag将本地镜像推到了 阿里云kubectl管理的内网 集群