提交 a8d7c3e4 编写于 作者: F feilong

准备好云原生入门+fix2

上级 6dd21730
...@@ -12,7 +12,7 @@ docker image ...@@ -12,7 +12,7 @@ docker image
可以看到所有的docker image 操作命令 可以看到所有的docker image 操作命令
![](./docker-image.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image.png)
下面说法错误的是? 下面说法错误的是?
......
...@@ -12,7 +12,7 @@ docker image inspect hello-world ...@@ -12,7 +12,7 @@ docker image inspect hello-world
操作截图如下,可以看到镜像启动后会立刻执行的命令CMD: 操作截图如下,可以看到镜像启动后会立刻执行的命令CMD:
![](./docker-image-inspect.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-inspect.png)
请自己实际操作后回答问题:以下对`docker image inspect`输出结果描述错误的是? 请自己实际操作后回答问题:以下对`docker image inspect`输出结果描述错误的是?
......
...@@ -12,7 +12,7 @@ docker image ls ...@@ -12,7 +12,7 @@ docker image ls
操作截图如下,可以看到前一题拉取到的`hello-world`镜像: 操作截图如下,可以看到前一题拉取到的`hello-world`镜像:
![](./docker-image-ls.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-ls.png)
以下对`docker image ls`输出结果描述错误的是? 以下对`docker image ls`输出结果描述错误的是?
......
...@@ -12,7 +12,7 @@ docker image pull library/hello-world ...@@ -12,7 +12,7 @@ docker image pull library/hello-world
操作截图如下: 操作截图如下:
![](./docker-image-pull.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-pull.png)
以下从Docker Hub 拉取 ubuntu 镜像操作正确的是? 以下从Docker Hub 拉取 ubuntu 镜像操作正确的是?
......
...@@ -12,7 +12,7 @@ docker image ls ...@@ -12,7 +12,7 @@ docker image ls
截图如下,可以看到两个名字为`<none>`的镜像: 截图如下,可以看到两个名字为`<none>`的镜像:
![](./docker-image-rm-ls.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-rm-ls.png)
如果镜像没有被启动过,直接之下下面的命令能删除成功: 如果镜像没有被启动过,直接之下下面的命令能删除成功:
...@@ -22,15 +22,15 @@ docker image rm 09d01ed9156b ...@@ -22,15 +22,15 @@ docker image rm 09d01ed9156b
如图所示: 如图所示:
![](./docker-image-rm-success.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-rm-success.png)
但是如果镜像被启动过,有可能出现错误信息: 但是如果镜像被启动过,有可能出现错误信息:
![](./docker-image-rm-failed.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-rm-failed.png)
红框的提示表示该镜像被启动过并且目前处于停止状态,我们可以通过`docker ps`命令查看被启动过的镜像状态 红框的提示表示该镜像被启动过并且目前处于停止状态,我们可以通过`docker ps`命令查看被启动过的镜像状态
![](./docker-image-rm-ps.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-rm-ps.png)
可以看到,其中 可以看到,其中
...@@ -45,7 +45,7 @@ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm ...@@ -45,7 +45,7 @@ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
如图所示 如图所示
![](./docker-image-rm-clear.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/2.docker image 操作/docker-image-rm-clear.png)
以下说法错误的是? 以下说法错误的是?
......
...@@ -10,7 +10,7 @@ docker container ls ...@@ -10,7 +10,7 @@ docker container ls
可以看到上一题运行的`ubuntu`容器的id 可以看到上一题运行的`ubuntu`容器的id
![](./container-kill-ls.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-kill-ls.jpg)
现在,使用容器的id就可以杀死容器实例 现在,使用容器的id就可以杀死容器实例
...@@ -20,11 +20,11 @@ docker container kill 2bba2dec1e97 ...@@ -20,11 +20,11 @@ docker container kill 2bba2dec1e97
命令执行的返回如图所示: 命令执行的返回如图所示:
![](./container-kill-action.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-kill-action.jpg)
而运行中的ubuntu docker 实例则被成功kill后退出: 而运行中的ubuntu docker 实例则被成功kill后退出:
![](./container-kill-resp.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-kill-resp.jpg)
以下描述错误的是? 以下描述错误的是?
......
...@@ -10,7 +10,7 @@ docker image pull library/ubuntu ...@@ -10,7 +10,7 @@ docker image pull library/ubuntu
下载 ubuntu 镜像成功 下载 ubuntu 镜像成功
![](./container-run-bash-ubuntu.jpg.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-run-bash-ubuntu.jpg.jpg)
接着,启动container 并执行第一个程序`bin/bash`: 接着,启动container 并执行第一个程序`bin/bash`:
...@@ -20,7 +20,7 @@ docker container run -it ubuntu bin/bash ...@@ -20,7 +20,7 @@ docker container run -it ubuntu bin/bash
可以看到成功进入了ubuntu容器实例的shell环境,并在shell环境里执行了`ls``ll`命令。 可以看到成功进入了ubuntu容器实例的shell环境,并在shell环境里执行了`ls``ll`命令。
![](./container-run-bash-ubuntu-shell.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-run-bash-ubuntu-shell.jpg)
以下描述错误的是? 以下描述错误的是?
......
...@@ -10,7 +10,7 @@ docker container ...@@ -10,7 +10,7 @@ docker container
如图所示: 如图所示:
![](./container.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container.jpg)
以下描述错误的是? 以下描述错误的是?
......
...@@ -22,7 +22,7 @@ docker image pull library/ubuntu ...@@ -22,7 +22,7 @@ docker image pull library/ubuntu
下载 ubuntu 镜像成功 下载 ubuntu 镜像成功
![](./container-run-bash-ubuntu.jpg.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-run-bash-ubuntu.jpg.jpg)
接着,启动container 并执行第一个程序`bin/bash`: 接着,启动container 并执行第一个程序`bin/bash`:
...@@ -32,7 +32,7 @@ docker container run -it ubuntu bin/bash ...@@ -32,7 +32,7 @@ docker container run -it ubuntu bin/bash
可以看到成功进入了ubuntu容器实例的shell环境,并在shell环境里执行了`ls``ll`命令。 可以看到成功进入了ubuntu容器实例的shell环境,并在shell环境里执行了`ls``ll`命令。
![](./container-run-bash-ubuntu-shell.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-run-bash-ubuntu-shell.jpg)
以下描述错误的是? 以下描述错误的是?
...@@ -54,7 +54,7 @@ docker container run -it ubuntu bin/bash ...@@ -54,7 +54,7 @@ docker container run -it ubuntu bin/bash
因为指定了参数`-it`,因此可以直接在启动容器的终端上输入命令,回车交给容器里的shell环境执行命令。 因为指定了参数`-it`,因此可以直接在启动容器的终端上输入命令,回车交给容器里的shell环境执行命令。
![](./container-run-simple.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/3.docker container 操作/container-run-simple.jpg)
参数`-it`表示将容器的shell链接到当前终端。 参数`-it`表示将容器的shell链接到当前终端。
......
...@@ -7,7 +7,7 @@ docker image build -t cloud_native_hello_py:0.0.1 ./ ...@@ -7,7 +7,7 @@ docker image build -t cloud_native_hello_py:0.0.1 ./
``` ```
构建如图所示: 构建如图所示:
![](./build_image.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/4.使用Dockerfile制作镜像/build_image.jpg)
构建镜像之后,可以将镜像发布到 DockerHub ,不过需要首先注册下账号 构建镜像之后,可以将镜像发布到 DockerHub ,不过需要首先注册下账号
...@@ -22,7 +22,7 @@ docker tag cloud_native_hello_py:0.0.1 fanfeilong/cloud_native_hello_py ...@@ -22,7 +22,7 @@ docker tag cloud_native_hello_py:0.0.1 fanfeilong/cloud_native_hello_py
可以用`docker image ls`验证结果 可以用`docker image ls`验证结果
![](./build_image_tag.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/4.使用Dockerfile制作镜像/build_image_tag.jpg)
现在,可以使用镜像的 push 命令来发布 现在,可以使用镜像的 push 命令来发布
...@@ -30,7 +30,7 @@ docker tag cloud_native_hello_py:0.0.1 fanfeilong/cloud_native_hello_py ...@@ -30,7 +30,7 @@ docker tag cloud_native_hello_py:0.0.1 fanfeilong/cloud_native_hello_py
docker push fanfeilong/cloud_native_hello_py:latest docker push fanfeilong/cloud_native_hello_py:latest
``` ```
![](./build_image_push.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/4.使用Dockerfile制作镜像/build_image_push.jpg)
以下描述错误的是? 以下描述错误的是?
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
docker pull fanfeilong/cloud_native_hello_py docker pull fanfeilong/cloud_native_hello_py
``` ```
![](./docker_pull.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/5.使用docker运行Python程序/docker_pull.jpg)
其次,运行容器: 其次,运行容器:
...@@ -20,11 +20,11 @@ docker run -p 1024:1024 -it fanfeilong/cloud_native_hello_py ...@@ -20,11 +20,11 @@ docker run -p 1024:1024 -it fanfeilong/cloud_native_hello_py
这个命令没有指定容器启动后运行的命令,因此容器启动后会执行镜像制作时Dockerfile里指定的CMD命令,可以看到容器启动后执行了Python程序,容器服务在1024端口监听HTTP请求,因为 docker run 配置了参数`-p 1024:1024`,这里把主机的1024端口映射到了容器里的1024端口。 这个命令没有指定容器启动后运行的命令,因此容器启动后会执行镜像制作时Dockerfile里指定的CMD命令,可以看到容器启动后执行了Python程序,容器服务在1024端口监听HTTP请求,因为 docker run 配置了参数`-p 1024:1024`,这里把主机的1024端口映射到了容器里的1024端口。
![](./run-with-port-map.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/5.使用docker运行Python程序/run-with-port-map.jpg)
现在,在浏览器里测试下请求: 现在,在浏览器里测试下请求:
![](./test-request.jpg) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/1.容器(docker)/5.使用docker运行Python程序/test-request.jpg)
请求成功,输出了"Hello World!",到这里你就成功学会了容器镜像制作、发布、拉取和运行一条龙服务。 请求成功,输出了"Hello World!",到这里你就成功学会了容器镜像制作、发布、拉取和运行一条龙服务。
......
...@@ -25,7 +25,7 @@ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stabl ...@@ -25,7 +25,7 @@ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stabl
截图如下: 截图如下:
![](./imgs/install_kubectl.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/1.安装kubectl/imgs/install_kubectl.png)
依次执行如下命令配置权限: 依次执行如下命令配置权限:
...@@ -35,7 +35,7 @@ sudo mv ./kubectl /usr/local/bin/kubectl ...@@ -35,7 +35,7 @@ sudo mv ./kubectl /usr/local/bin/kubectl
sudo chown root: /usr/local/bin/kubectl sudo chown root: /usr/local/bin/kubectl
``` ```
![](./imgs/install_kubectl_02.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/1.安装kubectl/imgs/install_kubectl_02.png)
使用如下两个命令分别查看版本信息: 使用如下两个命令分别查看版本信息:
...@@ -45,7 +45,7 @@ kubectl version --client ...@@ -45,7 +45,7 @@ kubectl version --client
kubectl version --client --output yaml kubectl version --client --output yaml
``` ```
![](./imgs/install_kubectl_03.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/1.安装kubectl/imgs/install_kubectl_03.png)
以下关于 kubectl 安装说法错误的是? 以下关于 kubectl 安装说法错误的是?
...@@ -73,4 +73,4 @@ kubectl 可以查看 Kubernetes 集群上的资源情况 ...@@ -73,4 +73,4 @@ kubectl 可以查看 Kubernetes 集群上的资源情况
```bash ```bash
kubectl 针对Linux/Windows/MacOS不同操作系统平台,一级不同的芯片都提供了对应的安装版本 kubectl 针对Linux/Windows/MacOS不同操作系统平台,一级不同的芯片都提供了对应的安装版本
``` ```
\ No newline at end of file
...@@ -28,7 +28,7 @@ sudo install minikube-darwin-amd64 /usr/local/bin/minikube ...@@ -28,7 +28,7 @@ sudo install minikube-darwin-amd64 /usr/local/bin/minikube
minikube version minikube version
``` ```
![](./img/minikube_version.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/2.安装minikube/img/minikube_version.png)
安装成功。以下对 minikube 说法错误的是? 安装成功。以下对 minikube 说法错误的是?
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
学习一个新工具,先大致熟悉它的命令体系,在后续使用中按图索骥是一种常见的方式。先看一下 minikube 有哪些命令选项,输入 `minikube` 直接回车,可以看到 学习一个新工具,先大致熟悉它的命令体系,在后续使用中按图索骥是一种常见的方式。先看一下 minikube 有哪些命令选项,输入 `minikube` 直接回车,可以看到
![](./img/minikube_options.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/2.安装minikube/img/minikube_options.png)
首先是一组基础命令,用来开始、暂停、恢复、停止、删除 kubernetes 集群: 首先是一组基础命令,用来开始、暂停、恢复、停止、删除 kubernetes 集群:
...@@ -56,4 +56,4 @@ minikube 命令包含一组镜像管理子命令 ...@@ -56,4 +56,4 @@ minikube 命令包含一组镜像管理子命令
### C ### C
minikube 命令包含一组插件和配置管理命令 minikube 命令包含一组插件和配置管理命令
\ No newline at end of file
...@@ -12,11 +12,11 @@ minikube start --vm-driver=docker --image-mirror-country='cn' ...@@ -12,11 +12,11 @@ minikube start --vm-driver=docker --image-mirror-country='cn'
启动过程截图: 启动过程截图:
![](./img/minikube_start.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/2.安装minikube/img/minikube_start.png)
安装过程中可能会遇到各种问题,例如下图遇到了镜像下载失败使用回退版本的策略 安装过程中可能会遇到各种问题,例如下图遇到了镜像下载失败使用回退版本的策略
![](./img/minikube_start_success.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/2.安装minikube/img/minikube_start_success.png)
幸运的是,启动成功了,提示 `kubectl` 已经配置到和`minikube` k8s 集群连接: 幸运的是,启动成功了,提示 `kubectl` 已经配置到和`minikube` k8s 集群连接:
...@@ -26,7 +26,7 @@ Done! kubectl is now configured to use "minikube" cluster and "default" namespac ...@@ -26,7 +26,7 @@ Done! kubectl is now configured to use "minikube" cluster and "default" namespac
使用命令`kubectl cluster-info --context minikube` 查看下集群的信息 使用命令`kubectl cluster-info --context minikube` 查看下集群的信息
![](./img/minikube_cluster_info.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/2.安装minikube/img/minikube_cluster_info.png)
以下对 minikube 启动说法错误的是? 以下对 minikube 启动说法错误的是?
...@@ -55,4 +55,4 @@ kubeconfig: Configured ...@@ -55,4 +55,4 @@ kubeconfig: Configured
### C ### C
通过选项 --vm-driver 可以指定虚拟机的驱动,例如virualbox 通过选项 --vm-driver 可以指定虚拟机的驱动,例如virualbox
\ No newline at end of file
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
通过命令`kind get clusters` 查看 kind 创建的集群列表 通过命令`kind get clusters` 查看 kind 创建的集群列表
![](./img/kind_get_clusters.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_get_clusters.png)
通过命令`kind get nodes --name test` 查看 kind 创建的节点列表 通过命令`kind get nodes --name test` 查看 kind 创建的节点列表
![](./img/kind_get_nodes.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_get_nodes.png)
可以看到test集群下的单节点 `test-control-plane` 可以看到test集群下的单节点 `test-control-plane`
......
...@@ -25,13 +25,13 @@ mv ./kind /some-dir-in-your-PATH/kind ...@@ -25,13 +25,13 @@ mv ./kind /some-dir-in-your-PATH/kind
最新的版本号,可以从这里查看:https://github.com/kubernetes-sigs/kind/releases 最新的版本号,可以从这里查看:https://github.com/kubernetes-sigs/kind/releases
安装成功: 安装成功:
![](./img/kind_install.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_install.png)
版本信息: 版本信息:
![](./img/kind_version.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_version.png)
子命令列表 子命令列表
![](./img/kind_commands.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_commands.png)
以下对安装 kind 说法错误的是? 以下对安装 kind 说法错误的是?
......
...@@ -8,7 +8,7 @@ kind create cluster --name test ...@@ -8,7 +8,7 @@ kind create cluster --name test
创建一个 k8s 集群 创建一个 k8s 集群
![](./img/kind_start.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_start.png)
同样的,kind 提示了可以使用 kubectl 获取集群信息 同样的,kind 提示了可以使用 kubectl 获取集群信息
...@@ -21,7 +21,7 @@ kubectl cluster-info --context kind-test ...@@ -21,7 +21,7 @@ kubectl cluster-info --context kind-test
使用命令`kubectl cluster-info --context kind-test` 测试一下: 使用命令`kubectl cluster-info --context kind-test` 测试一下:
![](./img/kind_cluster_info.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_cluster_info.png)
以下说法错误的是? 以下说法错误的是?
......
...@@ -27,12 +27,12 @@ nodes: ...@@ -27,12 +27,12 @@ nodes:
kind create cluster --config hello-k8s-config.yaml --name hello-k8s kind create cluster --config hello-k8s-config.yaml --name hello-k8s
``` ```
![](./img/kind_three_nodes.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_three_nodes.png)
查看集群的节点列表 查看集群的节点列表
![](./img/kind_three_nodes_info.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/3.安装kind/img/kind_three_nodes_info.png)
......
...@@ -75,13 +75,13 @@ users: ...@@ -75,13 +75,13 @@ users:
首先,通过`kubectl config get-contexts` 查看下有哪些集群上下文,通过`kubectl config current-context` 确认当前 k8s 集群上下文 首先,通过`kubectl config get-contexts` 查看下有哪些集群上下文,通过`kubectl config current-context` 确认当前 k8s 集群上下文
![](./img/config_get.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/4.kubectl查看和切换context/img/config_get.png)
其次,通过`kubectl get nodes`查看当前 kubectl 连接的集群`kind-hello-k8s`的节点列表: 其次,通过`kubectl get nodes`查看当前 kubectl 连接的集群`kind-hello-k8s`的节点列表:
![](./img/kubectl_get_nodes.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/4.kubectl查看和切换context/img/kubectl_get_nodes.png)
现在,通过`kubectl config use-context kind-test` 切换连接的 k8s 集群,然后再次查看信息 现在,通过`kubectl config use-context kind-test` 切换连接的 k8s 集群,然后再次查看信息
![](./img/kubectl_switch_context.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/4.kubectl查看和切换context/img/kubectl_switch_context.png)
以下说法错误的是? 以下说法错误的是?
......
...@@ -45,7 +45,7 @@ spec: ...@@ -45,7 +45,7 @@ spec:
* 使用命令 `kubectl get deployments` 查看部署情况 * 使用命令 `kubectl get deployments` 查看部署情况
* 使用命令`kubectl rollout status deployment/cloud-native-hello-py`查看状态。 * 使用命令`kubectl rollout status deployment/cloud-native-hello-py`查看状态。
![](./img/deployment.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/deployment.png)
以下说法错误的是? 以下说法错误的是?
...@@ -70,4 +70,4 @@ deployment 的配置文件yaml里,`name` 字段不能带下划线风格 ...@@ -70,4 +70,4 @@ deployment 的配置文件yaml里,`name` 字段不能带下划线风格
### D ### D
containerPort: 1024 用来暴露容器导出端口 containerPort: 1024 用来暴露容器导出端口
\ No newline at end of file
...@@ -37,15 +37,15 @@ spec: ...@@ -37,15 +37,15 @@ spec:
kubectl create -f k8s.service.yaml kubectl create -f k8s.service.yaml
``` ```
![](./img/service.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/service.png)
对服务做下端口转发 对服务做下端口转发
![](./img/port_forward.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/port_forward.png)
使用浏览器直接访问 使用浏览器直接访问
![](./img/it_works_html.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/it_works_html.png)
HelloWorld! 恭喜你成功地在 K8S 上部署启动了一个 Python Flask 后端服务。 HelloWorld! 恭喜你成功地在 K8S 上部署启动了一个 Python Flask 后端服务。
......
...@@ -6,11 +6,11 @@ Pod是一个或多个容器的组合,这些容器共享存储、网络和命 ...@@ -6,11 +6,11 @@ Pod是一个或多个容器的组合,这些容器共享存储、网络和命
我们先通过命令`kubectl get rs`直观地看下 ReplicaSet 我们先通过命令`kubectl get rs`直观地看下 ReplicaSet
![](./img/rs.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/rs.png)
我们再通过命令`kubectl get pods`直观地看下 pods 我们再通过命令`kubectl get pods`直观地看下 pods
![](./img/pods.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/img/pods.png)
可以看到有一个 ReplicaSet,管理三个 Pods。ReplicaSet 管理多个 Pod,确保以指定个数的副本运行部署的服务。 可以看到有一个 ReplicaSet,管理三个 Pods。ReplicaSet 管理多个 Pod,确保以指定个数的副本运行部署的服务。
......
...@@ -45,4 +45,4 @@ kubeadm 用来初始化 k8s 集群 ...@@ -45,4 +45,4 @@ kubeadm 用来初始化 k8s 集群
### C ### C
生产环境不应该用 minikube 和 kind 创建 k8s 集群 生产环境不应该用 minikube 和 kind 创建 k8s 集群
\ No newline at end of file
...@@ -26,4 +26,4 @@ a,b,c,d,e,f,g ...@@ -26,4 +26,4 @@ a,b,c,d,e,f,g
### C ### C
a,b,c,d,e,f,g,h a,b,c,d,e,f,g,h
\ No newline at end of file
...@@ -27,7 +27,7 @@ choco install kubernetes-helm ...@@ -27,7 +27,7 @@ choco install kubernetes-helm
brew install helm brew install helm
``` ```
![](./img/install.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/1.安装helm/img/install.png)
以下说法错误的是? 以下说法错误的是?
......
...@@ -12,7 +12,7 @@ helm repo add bitnami https://charts.bitnami.com/bitnami ...@@ -12,7 +12,7 @@ helm repo add bitnami https://charts.bitnami.com/bitnami
helm search repo bitnami helm search repo bitnami
``` ```
![](./img/repo.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/3.使用helm安装mysql到k8s/img/repo.png)
接着,通过 grep 命令过滤下 mysql 包相关的信息 接着,通过 grep 命令过滤下 mysql 包相关的信息
...@@ -20,7 +20,7 @@ helm search repo bitnami ...@@ -20,7 +20,7 @@ helm search repo bitnami
helm serach repo|grep mysql helm serach repo|grep mysql
``` ```
![](./img/repo_mysql.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/3.使用helm安装mysql到k8s/img/repo_mysql.png)
然后,安装 mysql 包到 k8s,可以看到安装的 然后,安装 mysql 包到 k8s,可以看到安装的
...@@ -29,7 +29,7 @@ helm repo update # 确定我们可以拿到最新的charts列表 ...@@ -29,7 +29,7 @@ helm repo update # 确定我们可以拿到最新的charts列表
helm install bitnami/mysql --generate-name helm install bitnami/mysql --generate-name
``` ```
![](./img/install_mysql_chart.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/3.使用helm安装mysql到k8s/img/install_mysql_chart.png)
查看已经安装的 chart 列表,可以看到mysql已经装上了: 查看已经安装的 chart 列表,可以看到mysql已经装上了:
...@@ -37,11 +37,11 @@ helm install bitnami/mysql --generate-name ...@@ -37,11 +37,11 @@ helm install bitnami/mysql --generate-name
helm list helm list
``` ```
![](./img/list.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/3.使用helm安装mysql到k8s/img/list.png)
现在,使用`helm status xxx`命令查看已安装mysql的状态 现在,使用`helm status xxx`命令查看已安装mysql的状态
![](./img/status.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/3.使用helm安装mysql到k8s/img/status.png)
以下说法错误的是? 以下说法错误的是?
...@@ -62,4 +62,4 @@ kubectl 命令可以获取安装的 mysql 密钥 ...@@ -62,4 +62,4 @@ kubectl 命令可以获取安装的 mysql 密钥
### C ### C
可以通过 helm 在 k8s 上安装 mysql 可以通过 helm 在 k8s 上安装 mysql
\ No newline at end of file
...@@ -75,13 +75,13 @@ helm install ./chart/hello-py/ --generate-name ...@@ -75,13 +75,13 @@ helm install ./chart/hello-py/ --generate-name
检测下 k8s 的 deployment 和 sevice: 检测下 k8s 的 deployment 和 sevice:
![](./img/status.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/4.使用helm部署Python应用/img/status.png)
端口转发: 端口转发:
![](./img/port.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/4.使用helm部署Python应用/img/port.png)
访问服务: 访问服务:
![](./img/visit.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/4.k8s包管理(helm)/4.使用helm部署Python应用/img/visit.png)
以下说法错误的是? 以下说法错误的是?
......
...@@ -24,7 +24,7 @@ Client <-> Interface <-> [ProxyB->ServerB] <-> [ProxyA->ServerA] ...@@ -24,7 +24,7 @@ Client <-> Interface <-> [ProxyB->ServerB] <-> [ProxyA->ServerA]
1. 原来k8s的node里的pod通过node的kube-proxy和 API Server 通信;在ServiceMesh下,每个pod直接通过装在pod上的proxy和API Server通信。 1. 原来k8s的node里的pod通过node的kube-proxy和 API Server 通信;在ServiceMesh下,每个pod直接通过装在pod上的proxy和API Server通信。
2. 原来k8s的node里的pod通过node的kube-proxy桥接通信;在ServiceMesh下,每个 pod 之间直接通过装在 pod上的proxy直接通信。 2. 原来k8s的node里的pod通过node的kube-proxy桥接通信;在ServiceMesh下,每个 pod 之间直接通过装在 pod上的proxy直接通信。
![](./img/k8s_native_vs_service_mesh.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/5.服务网格(istio)/1.ServiceMesh介绍/img/k8s_native_vs_service_mesh.png)
以下说法错误的是? 以下说法错误的是?
......
...@@ -86,7 +86,7 @@ istioctl ...@@ -86,7 +86,7 @@ istioctl
可以看到 istioctl 支持的子命令列表: 可以看到 istioctl 支持的子命令列表:
![](./img/commands.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/5.服务网格(istio)/2.安装istio/img/commands.png)
istio 通过`profile`对不同的配置分组,内置的`profile`列表可以通过命令`istioctl profile list`查看: istio 通过`profile`对不同的配置分组,内置的`profile`列表可以通过命令`istioctl profile list`查看:
...@@ -104,7 +104,7 @@ Istio configuration profiles: ...@@ -104,7 +104,7 @@ Istio configuration profiles:
例如,使用命令`istioctl profile dump demo`查看名为`demo``profile`: 例如,使用命令`istioctl profile dump demo`查看名为`demo``profile`:
![](./img/dump_profile.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/5.服务网格(istio)/2.安装istio/img/dump_profile.png)
配置`profile=demo`,安装istio到k8s 配置`profile=demo`,安装istio到k8s
......
...@@ -32,4 +32,4 @@ ...@@ -32,4 +32,4 @@
### C ### C
通过 istio 可以在 k8s 的服务网格内将请求路由到服务的不同版本 通过 istio 可以在 k8s 的服务网格内将请求路由到服务的不同版本
\ No newline at end of file
...@@ -26,4 +26,4 @@ istio 可以使用 kiali 对网格进行可视化 ...@@ -26,4 +26,4 @@ istio 可以使用 kiali 对网格进行可视化
### C ### C
istio 可以对服务网格做统一日志配置、收集和处理 istio 可以对服务网格做统一日志配置、收集和处理
\ No newline at end of file
...@@ -29,4 +29,4 @@ Terraform 为跨云基础设施构建提供了便利 ...@@ -29,4 +29,4 @@ Terraform 为跨云基础设施构建提供了便利
### C ### C
Terraform 采用声明式配置方式编程,符合云原生的风格 Terraform 采用声明式配置方式编程,符合云原生的风格
\ No newline at end of file
...@@ -11,11 +11,11 @@ brew install hashicorp/tap/terraform ...@@ -11,11 +11,11 @@ brew install hashicorp/tap/terraform
安装成功如图: 安装成功如图:
![](./img/install.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/7.基础架构自动编排(Terraform)/2.Terraform命令行工具/img/install.png)
查看下有哪些命令: 查看下有哪些命令:
![](./img/commands.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/7.基础架构自动编排(Terraform)/2.Terraform命令行工具/img/commands.png)
可以看到一组核心命令: 可以看到一组核心命令:
...@@ -57,23 +57,23 @@ resource "docker_container" "nginx" { ...@@ -57,23 +57,23 @@ resource "docker_container" "nginx" {
现在,执行`terraform init`命令初始化 现在,执行`terraform init`命令初始化
![](./img/init.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/7.基础架构自动编排(Terraform)/2.Terraform命令行工具/img/init.png)
现在,执行`terraform plan`命令检测配置 现在,执行`terraform plan`命令检测配置
![](./img/plan.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/7.基础架构自动编排(Terraform)/2.Terraform命令行工具/img/plan.png)
可以看到,由于连不上 Mac系统的 docker daemon ,环境监测失败。Mac系统上不需要配置`host = "tcp://localhost:2375"`,删除后,重新执行如下 可以看到,由于连不上 Mac系统的 docker daemon ,环境监测失败。Mac系统上不需要配置`host = "tcp://localhost:2375"`,删除后,重新执行如下
![](./img/plan_success.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/7.基础架构自动编排(Terraform)/2.Terraform命令行工具/img/plan_success.png)
现在,我们执行`terraform apply`,将会开始构建一个 ngix 的docker: 现在,我们执行`terraform apply`,将会开始构建一个 ngix 的docker:
![](./img/apply_q.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/7.基础架构自动编排(Terraform)/2.Terraform命令行工具/img/apply_q.png)
在实际构建之前,会要求再次确认,输入'yes'回车,开始实施: 在实际构建之前,会要求再次确认,输入'yes'回车,开始实施:
![](./img/apply_a.png) ![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/7.基础架构自动编排(Terraform)/2.Terraform命令行工具/img/apply_a.png)
可见,使用 terraform 可以让基础设施的构建使用上声明式配置,具有标准化、统一配置、减少错误、跨平台的好处。 可见,使用 terraform 可以让基础设施的构建使用上声明式配置,具有标准化、统一配置、减少错误、跨平台的好处。
...@@ -96,4 +96,4 @@ terraform 命令行使用`init`, `plan`, `apply` 三个子命令来管理基础 ...@@ -96,4 +96,4 @@ terraform 命令行使用`init`, `plan`, `apply` 三个子命令来管理基础
### C ### C
terraform 提供了后缀名为 tf 的声明式基础设施构建配置 terraform 提供了后缀名为 tf 的声明式基础设施构建配置
\ No newline at end of file
...@@ -27,4 +27,4 @@ ...@@ -27,4 +27,4 @@
### C ### C
3,4,5,6,7 3,4,5,6,7
\ No newline at end of file
...@@ -27,4 +27,4 @@ ...@@ -27,4 +27,4 @@
### C ### C
1,3,4,5,6,7,8 1,3,4,5,6,7,8
\ No newline at end of file
...@@ -25,4 +25,4 @@ ...@@ -25,4 +25,4 @@
### C ### C
1,2,3,4,5 1,2,3,4,5
\ No newline at end of file
from skill_tree.tree import TreeWalker from skill_tree.tree import TreeWalker
from skill_tree.img import ImgWalker
if __name__ == '__main__': if __name__ == '__main__':
walker = TreeWalker("data", "cloud_native", "云原生入门", ignore_keywords=True) # walker = TreeWalker("data", "cloud_native", "云原生入门", ignore_keywords=True)
walker.walk() # walker.walk()
img = ImgWalker('data')
img.walk()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册