微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

部署自己的第一个image到dockerhub,然后部署到k8s

准备工作

下载安装docker、kubectl、kind、kubectx、kubens
mac环境下直接brew就好
检查安装
1)docker contianer list有交互

docker contianer list有交互

2)kubectl version --client

kubectl version --client

3)kind自动化这些过程,kubeadm

kind -version

如何使用kind来新建一个k8s cluster

新建一个yaml文件配置文件内容如下

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: my-cluster
nodes:
- role: control-plane
- role: worker
- role: worker
- role: worker
kind create cluster -config=kind-cluster.yaml
docker container list #使用查看running的集群

结果

在这里插入图片描述

tips:

  • 切换context 命令: kubectl config use-context kind-my-cluster 效果等同于kubectx kind-my-cluster
  • kubectl get pods [-A]查看当前/全部的pods,pods是最小单位

创建容器化的应用greeter并将其上传dockerhub

创建容器化的应用greeter并将其上传dockerhub,部署到k8s

总的文件目录
.
└── lesson1
├── app
│ ├── Dockerfile
│ ├── go.mod
│ └── greeter.go
├── k8s
│ └── greeter.yaml
└── kind-cluster.yaml

本地使用

  1. greeter.go
package main
//每隔1s打印一次hello world
import (
	"fmt"
	"time"
)

func main() {
	idx := 0

	for true {
		fmt.Printf("%d,hello world\n", idx)
		idx++
		time.Sleep(time.Second)
	}

}

  1. go.mod
module app
go 1.17
//自动生成的go
  1. Dockerfile
FROM golang:1.16-alpine

workdir /app

copY go.mod ./

RUN go mod download

copY *.go ./

RUN go build -o /greeter

CMD ["/greeter"]

goLand有直接运行的按钮,但是vscode没有找到
运行结果图

在这里插入图片描述

上传到自己的dockerhub

docker build -t xxx(hub用户名)/greeter:v1.0.0 . #注意后面有个.
docker push xxx(hub用户名)/greeter:v1.0.0

先是生成镜像文件,然后上传到hub上,上传成功之后可以看到

在这里插入图片描述

新建一个pod来部署greeter container

manifest——用来部署资源的文件,这里是yaml,直接使用pod的模版就可以
greeter.yaml

apiVersion: v1
kind: Pod
Metadata:
  name: greeter
  labels:
    plan: dev
spec:
  containers:
  - name: greeter
    image: tiana001/greeter:v1.0.0
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"

image这里需要指定版本

kubectl apply -f greeter.yaml
kubectl get pods

查看到如下结果,即为成功

在这里插入图片描述


这里使用了k: aliased to kubectl

后续的一些指令补充

k logs greeter # 程序运行时的log信
k logs greeter -f #使用follow的模式
k get pod greeter -oyaml #现在在k8s上部署资源的详细内容
k get pod greeter -owide #更多的信息
k delete -f greater.yaml #删除

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐