链接为书内容中对应代码的地址:https://github.com/luksa/kubernetes-in-action
docker build -t kubia . # 使用当前目录的Dockerfile构建镜像,镜像名为 kubia, 版本默认lates
docker run --name kubia-container -p 8081:8080 -d kubia # 启动一个容器名为kubia-container, 并且宿主机的8081对应容器的8080端口,-d 后台启动
docker inspect kubia-container # 查看容器的信息
docker exec -it kubia-container bash # 进去容器的控制台,-i 确保标准输入流开发,-t 分配伪终端
docker stop kubia-container # 停止容器运行
docker rm kubia-container # 删除容器,必须在停止后删除
docker tag kubia yzh001/kubia # 为kubia添加tag,等同一个新的image,tag不同。 yzh001可以换成自己docker hub id
docker push yzh001/kubia # 上传新的image到自己仓库,要登入docker,使用 `docker login` 命令
ps aux # 查看系统进程
容器的有自己的进程树,所以pid与宿主机隔离,但是仍可以发现容器内运行的进程,也在宿主机的进程表中
kubectl create -f xxx.yaml # 根据yaml安装pod、service..
kubectl get pods # 获取pod信息,加 -o wide 获取更多信息
kubectl delete pod pod-name # 删除pod, 加上 -all 既删除当前空间下所有pod
kubectl port-forward pod-name local-port:pod-port # 端口转发,如此可以通过访问本地端口来访问pod
kubectl label po kubia-manual-v2 creation_method=manual [--overwrite] # 添加标签,如果覆盖要加overwrite
kubectl get po -l app=nginx # 找label KV 一样的pod
kubectl get po -l '!env' # 找 label没有env的pod
kubectl get po -L app # 显示标签 app 在每个pod后面
kubectl delete po -l k=v # 删除所有符合的label的pod
kubectl annotate pod kubia-manual-v2 my.com/someannotation="foo bar" # 添加注解,使用特别前缀,以防被系统自带的注解覆盖
kubectl describe pod kubia-manual-v2 | grep Annotation # 查看注解
kubectl get ns #获取命名空间信息
kubectl get po -n kube-system # 获取命名空间的所有pod
kubectl create namespace custom-namespace #创建一个命名空间,也可以用yaml文件创建
kubectl create -f kubia-manual-with-labels.yaml -n custom-namespace # 在某个命名空间种创建资源
kubectl delete ns custom-namespace # 删除命名空间,同时会删除空间下的所有pod
kubectl delete all -all # 删除空间下所有资源
金丝雀发布: 先让一部分用户先体验新功能,在让其他用户也使用。
到此为前三章结束。