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

准备工作

下载安装docker、kubectl、kind、kubectx、kubens
mac环境下直接brew就好
检查安装
1)docker contianer list有交互
部署自己的第一个image到dockerhub,然后部署到k8s
2)kubectl version --client
部署自己的第一个image到dockerhub,然后部署到k8s
3)kind自动化这些过程,kubeadm
部署自己的第一个image到dockerhub,然后部署到k8s

如何使用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的集群

结果
部署自己的第一个image到dockerhub,然后部署到k8s
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没有找到
运行结果图部署自己的第一个image到dockerhub,然后部署到k8s

上传到自己的dockerhub

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

先是生成镜像文件,然后上传到hub上,上传成功之后可以看到
部署自己的第一个image到dockerhub,然后部署到k8s

新建一个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

查看到如下结果,即为成功
部署自己的第一个image到dockerhub,然后部署到k8s
这里使用了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 #删除
上一篇:CI/CD集成开发集成发布(vs2019,gitee,jenkins,harbor,kubernetes) 的过程


下一篇:dockerhub镜像仓库的使用(十)