k3d
- 使用k3d创建集群
centos-cluster 集群名称
1 | |
1 | |
- 创建yaml文件
vim deployment.yaml
``
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: centos:centos7 # 这里写你的镜像名
ports:
- containerPort: 81
command: [“/bin/bash”]
args: [“-itd”] # 另一种让容器保持运行的方法
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
type: NodePort
ports:
- port: 81
targetPort: 81
selector:
app: my-app
``
- 执行部署
kubectl apply -f deployment.yaml
成功输出[root@i-698afbd7cee176e6ce8a84dd ~]# kubectl apply -f deployment.yaml deployment.apps/my-app created service/my-app created
清除命令
1. 删除旧的 Deployment 和 Service
kubectl delete deployment my-app
kubectl delete svc my-app
docker打包镜像
安装必要的运行时库(如果需要)
RUN apk add –no-cache libc6-compat
复制你的 Linux 程序
COPY myapp /usr/local/bin/myapp
添加执行权限
RUN chmod +x /usr/local/bin/myapp
暴露端口(如果程序是网络服务)
EXPOSE 8080
直接运行程序(必须是前台进程)
CMD [“myapp”]
``
- 打包镜像
docker build -t myapp:v1 .
docker ps 查看生成的镜像版本
2. 导入到 k3d 集群
k3d image import my-app:v1 -c centos-cluster # -c 指定你的集群名
查看导入的镜像是否在集群中
k3d image list -c centos-cluster
或直接查看 server 节点
docker exec k3d-centos-cluster-server-0 crictl images | grep my-app
3. 删除失败的 Pod 让其重新创建
kubectl delete pod my-app-7bf6575c9b-8674l
Deployment 会自动创建新的 Pod
``
查看最后100行
kubectl logs –tail=100 my-app-7bf6575c9b-8674l
实时查看日志(类似 tail -f)
kubectl logs -f my-app-7bf6575c9b-8674l
查看带时间戳的日志
kubectl logs –timestamps my-app-7bf6575c9b-8674l
``
6.🔄 滚动更新(同时更新所有副本)
当你修改镜像版本时,Kubernetes 会逐个更新 Pod:
bash
更新镜像版本,同时保持3个副本
kubectl set image deployment/nginx nginx=nginx:1.25
观察滚动更新过程
kubectl rollout status deployment/nginx
- 切换集群
`` k3d cluster list
[root@i-698afbd7cee176e6ce8a84dd ~]# k3d cluster list
NAME SERVERS AGENTS LOADBALANCER
centos-cluster 1/1 0/0 true
mycluster 1/1 0/0 true
kubectl config use-context k3d-centos-cluster
centos-cluster 集群名称
``