准备工作
下载安装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
结果 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
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
- 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
k logs greeter -f
k get pod greeter -oyaml
k get pod greeter -owide
k delete -f greater.yaml
|