K8S 精简入门

1. Docker

1.1 首先需要安装 Docker

1.2 运行 Docker 命令

1
docker run busybox echo "Hello world"

运行镜像

1
docker run <image>:<tag>
  • Docker 支持同一镜像的多个版本
  • 每个版本必须有唯一的 tag 名
  • 当引用镜像没有显示指定 tag 的时候,Docker 会默认指定 tag 为 latest

1.3 为镜像创建 Dockerfile

1.4 构建容器镜像

列出本地存储的镜像

1
docker images

1.5 运行容器镜像

1
docker run --name kubia-container -p 8080:8080 -d kubia
  • –name Assign a name to the container 命令可以为容器设置一个名字
  • -p Publish all exposed ports to random ports 本机的 8080 端口会被映射到容器内的 8080 端口
  • -d Run container in background and print container ID 在后台运行

列出所有运行中的容器

1
docker ps

docker ps 只会展示容器的大部分基础信息。可以使用 docker inspect 查看更多的信息

1
docker inspect [OPTIONS] NAME|ID [NAME|ID...]

1.6 在已有的容器内部运行 shell

镜像里需要有可用的 shell 二进制可执行文件

1
docker exec -it kubia-container /bin/bash

-it 选项是下面两个选项的简写

  • -i,确保标准输入流保持开放。需要在 shell 中输入命令
  • -t,分配一个伪终端(TTY)

列出所有进程

1
ps aux

1.7 停止和删除容器

停止

1
docker stop kubia-container

删除

1
docker rm kubia-container

1.8 向镜像仓库推送镜像

这个命令不会重命名标签,而是给同一个镜像创建一个额外的标签

1
2
3
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

docker tag kubia wyyl1/kubia

向 Docker Hub 推送镜像

1
docker push wyyl1/kubia

推送成功后,任何人都可以使用

1
2
3
docker run wyyl1/kubia

docker run -p 8080:8080 -d luksa/kubia

2. 用 Minikube 运行一个本地单节点 Kubernetes 集群

minikube start

1
minikube start

下载不到镜像时推荐方案:

  1. 设置 Docker 代理
  2. 设置 Minikube 代理 官方文档 Proxies and VPNs

可尝试方案 国内环境启动可以尝试(摘自: minikube国内镜像拉取问题处理(2021年最简单的方法)

1
minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'

查看具体说明

1
minikube start --help

安装 Kubernets 客户端(kubectl)

展示集群信息

1
kubectl cluster-info

遇到奇怪的问题时,尝试删除 minikube 后重试

1
2
minikube delete
rm -rf ~/.minikube

进入 Minikube VM 内部命令

1
minikube ssh

3. 在 Kubernetes 上运行第一个应用

kubectl run 命令部署程序

1
kubectl run kubia --image=luksa/kubia --port=8080
  • –image=luksa/kubia:指定要运行的容器镜像
  • –port=8080:告诉 Kubernetes 应用正在监听 8080 端口
1
kubectl expose deployment kubia --type=LoadBalancer --port=8080 --name=kubia-http
comments powered by Disqus