《Kubernetes 入门实战课》 学习笔记 day4

316 阅读1分钟

大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习 Kubernetes😊

Pod

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cb6e5dbb73194b40baa0f80882a33580~tplv-k3u1fbpfcp-zoom-1.image

用 YAML 描述 Pod

  • ports:列出容器对外暴露的端口,和 Docker 的 -p 参数有点像。
  • imagePullPolicy:指定镜像的拉取策略,可以是 Always/Never/IfNotPresent,一般默认是 IfNotPresent,也就是说只有本地不存在才会远程拉取镜像,可以减少网络消耗。
  • env:定义 Pod 的环境变量,和 Dockerfile 里的 ENV 指令有点类似,但它是运行时指定的,更加灵活可配置
  • command:定义容器启动时要执行的命令,相当于 Dockerfile 里的 ENTRYPOINT 指令
  • args:它是 command 运行时的参数

例如:

apiVersion: v1
kind: Pod
metadata:
  name: busy-pod
  labels:
    owner: chrono
    env: demo
    region: north
    tier: back

spec:
	containers:
	- image: busybox:latest
		name: busy
		imagePullPolicy: IfNotPresent
		env:
			- name: os
				value: debug
			- name: debug
				value: "on"
		command:
			- /bin/echo
		args:
			- "$(os), $(debug)"

创建 Pod 或者删除

kubectl apply -f busy-pod.yml
kubectl delete -f busy-pod.yml # 如果在 yaml 里定义了 name 字段,删除的时候可以指定名字删除

展示 Pod 的标准输出流

kubectl logs busy-pod

查看 Pod 列表和运行状态

kubectl get pod

调试排错的时候用,用于检查 Pod 的详细状态

kubectl describe pod busy-pod

拷贝文件进 Pod

kubectl cp a.txt nginx:/tmp

进入 Pod 内部执行命令

kubectl exec -it nginx -- sh

此文章为3月Day10学习笔记,内容来源于极客时间《Kubernetes 入门实战课》 这门课真的非常好,推荐大家看看