kubectl命令
获取node的详细信息
wpc@LAPTOP-EESJ0GIE:~/minikube$ kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane,master 4h57m v1.22.3 192.168.49.2 <none> Ubuntu 20.04.2 LTS 5.10.16.3-microsoft-standard-WSL2 docker://20.10.8
获取pod的i详细信息
wpc@LAPTOP-EESJ0GIE:~/minikube$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deployment-585449566-5k8jd 1/1 Running 0 68m 172.17.0.6 minikube <none> <none>
nginx-deployment-585449566-gcjhc 1/1 Running 0 68m 172.17.0.5 minikube <none> <none>
获取service的详细信息
wpc@LAPTOP-EESJ0GIE:~/minikube$ kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4h55m <none>
nginx-service LoadBalancer 10.97.66.22 <pending> 80:30228/TCP 98m app=nginx
获取pod的描述
wpc@LAPTOP-EESJ0GIE:~/minikube$ kubectl describe pod nginx-deployment-585449566-5k8jd
Name: nginx-deployment-585449566-5k8jd
Namespace: default
Priority: 0
Service Account: default
获取docker的network
wpc@LAPTOP-EESJ0GIE:~/minikube$ docker network ls
NETWORK ID NAME DRIVER SCOPE
598cd1247a0a bridge bridge local
374be1fce2bf host host local
a1ab111d8e4f minikube bridge local
获取network描述
wpc@LAPTOP-EESJ0GIE:~/minikube$ docker network inspect 0b9d5c6c95f6
获取服务的访问url
wpc@LAPTOP-EESJ0GIE:~/minikube$ minikube service nginx-service --url
http://192.168.49.2:30228
获取node的详细信息
wpc@LAPTOP-EESJ0GIE:~/minikube$ kubectl describe node minikube
Name: minikube
Roles: control-plane,master
Labels: beta.kubernetes.io/arch=amd64
端口映射使得外部主机可以访问服务
kubectl port-forward service/nginx-service 8080:80
创建deployment和service
kubectl apply -f redis-deployment.yaml
kubectl apply -f redis-service.yaml
删除service和deployment
kubectl delete service <service-name>
kubectl delete deployment <deployment-name>
查看集群健康状态
wpc@LAPTOP-EESJ0GIE:~/minikube$ kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Unhealthy Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
删除部署
wpc@LAPTOP-EESJ0GIE:~/minikube$ kubectl delete -f my-go-application-deployment.yaml
deployment.apps "my-go-application-deployment" deleted
minikube加载本地镜像
minikube image load gin-test:v1
go本地镜像制作
FROM golang:1.20 AS builder
WORKDIR /tmp/app
COPY . .
ENV GOPROXY=https://goproxy.cn,direct
RUN go build -o main main.go
# 引入alphine最小linux镜像
FROM alpine
WORKDIR /data/app
# 复制生成的可执行命令和一些配置文件
COPY --from=builder /tmp/app/main .
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
CMD ["nohup", "/data/app/main", ">", "/dev/null", "&"]
deployment.yaml编写
apiVersion: apps/v1
kind: Deployment
metadata:
name: gin-test
spec:
replicas: 1
selector:
matchLabels:
app: gin-test
template:
metadata:
labels:
app: gin-test
spec:
containers:
- name: gin-test
image: gin-test:v1 # 替换为你的Docker镜像名称
imagePullPolicy: Never
ports:
- containerPort: 8099
kubectl delete -f curl-deployment.yaml
kubectl delete -f curl-service.yaml
kubectl apply -f curl-deployment.yaml
kubectl apply -f curl-service.yaml