前提: 已经部署好k8s集群的环境,并且每台服务器都有golang。
1. 编写Dockerfile,制作docker镜像;
vim ./Dockerfile
FROM golang:latest
MAINTAINER iven
ENV MYPATH /opt/goDocker
WORKDIR $MYPATH
ADD . /opt/goDocker
RUN go build .
EXPOSE 8088
ENTRYPOINT ["./goDocker"]
expose需要和k8s里暴露出去的端口一致。
这里可以再配置一个容器卷
制作镜像
docker build -t hellodocker:001 .
2. k8s拉取镜像生成pod;
"gok8s"为这里取的pod名
kubectl create deploy gok8s --image=hellodocker:001
3. 对外暴露端口;
type=NordPort为对外暴露端口的类型,从30000开始,如果不指定 --target-port= 的参数,会默认分配一个。
kubectl expose deploy gok8s --port=8088 --type=NordPort
这里没有指定端口号,默认分配后,执行下面命令可以看到
kubectl get svc
最后记得在云服务器上安全组里将端口号放行。 输入部署的node节点ip:port即可访问。