准备工作
下载安装docker、kubectl、kind、kubectx、kubens
mac环境下直接brew就好
检查安装
1)docker contianer list有交互
2)kubectl version --client
3)kind自动化这些过程,kubeadm
如何使用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
本地使用
- 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)
}
}
- go.mod
module app
go 1.17
//自动生成的go
- 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 #删除