前提: 已经部署好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即可访问。