在k8s中运行docker镜像

2,283 阅读2分钟

目标

上一篇文章我们将自己的服务hecheng_be制作成了docker镜像。本文将在k8s中运行制作好的docker镜像。

发布镜像到k8s

1.制作rc文件

hecheng_be_rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: hecheng
spec:
  replicas: 2
  selector:
    app: hecheng
  template:
    metadata:
      labels:
        app: hecheng
    spec:
      containers:
      - name: hecheng
        image: docker_repo_usename/hecheng_be_docker_image
        ports:
        - containerPort: 80

将它发布到k8s中

kubectl create -f hecheng_be_rc.yaml

结果

replicationcontroller "hecheng" created

查看

image.png 说明发布成功。Kubernetes 通过template来生成pod,创建完后模板和pod就没有任何关系了,rc通过 labels来找对应的pod,控制副本。

查看pod

image.png

可以看到已经生成了两个pod,并且已经跑起来了。

2.创建与之关联的Kubernetes Service

hecheng_be_svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: hecheng
spec:
  type: NodePort
  ports:
  - port: 80
    nodePort: 30001
  selector:
    app: hecheng

创建service

kubectl create -f hecheng_be_svc.yaml

结果

service "hecheng" created

查看

image.png

注意到hecheng服务被分配了一个值为10.254.111.236的Cluster IP地址,这是一个虚地址,随后,Kubernetes集群中其他新创建的Pod就可以通过Service的Cluster IP+ 端口号来连接和访问它了。

查看pod日志,发现两个Pod都正常

image.png

至此,docker相关以及k8s相关从零开始学习的相关文档已经写完了,我个人也学习完了,对k8s的基本命令也有了一些了解。将来准备去学一下极客时间上很早之前买的一个关于k8s的视频,深入学习一下k8s。如果你也想从零了解k8s,下面几篇文章可能有点帮助。

1.kubernetes(一)搭建简单实例
2.kubernetes(二)常用命令
3.在两台腾讯云上安装k8s
4.将自己的服务制作成docker镜像
5.在k8s中运行docker镜像

参考

[1]kubernetes集群Pod详细信息为Failed create pod sandbox,缺失镜像google_containers/pause-amd64.3.0解决方法
[2]Docker & k8s 系列三:在k8s中部署单个服务实例