Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_cloud_native
提交
21d89c85
S
skill_tree_cloud_native
项目概览
CSDN 技术社区
/
skill_tree_cloud_native
通知
14
Star
3
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_cloud_native
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
21d89c85
编写于
3月 24, 2022
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bug
上级
d3c3696c
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
39 addition
and
20 deletion
+39
-20
data/1.云原生初阶/2.容器编排(学习环境 k8s)/1.安装kubectl/install.md
data/1.云原生初阶/2.容器编排(学习环境 k8s)/1.安装kubectl/install.md
+3
-0
data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/create_deployment.md
...容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/create_deployment.md
+2
-1
data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/rs_pod.md
.../1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/rs_pod.md
+2
-0
data/1.云原生初阶/3.容器编排(生产环境 k8s)/1.kubelet,kubectl,kubeadm三件套/introduce.md
....容器编排(生产环境 k8s)/1.kubelet,kubectl,kubeadm三件套/introduce.md
+2
-1
data/1.云原生初阶/3.容器编排(生产环境 k8s)/2.k8s基础组件/introduce.md
data/1.云原生初阶/3.容器编排(生产环境 k8s)/2.k8s基础组件/introduce.md
+3
-0
data/1.云原生初阶/3.容器编排(生产环境 k8s)/3.k8s设计理念/introduce.md
data/1.云原生初阶/3.容器编排(生产环境 k8s)/3.k8s设计理念/introduce.md
+12
-11
data/1.云原生初阶/4.k8s包管理(helm)/1.安装helm/install.md
data/1.云原生初阶/4.k8s包管理(helm)/1.安装helm/install.md
+6
-3
data/1.云原生初阶/4.k8s包管理(helm)/2.helm三大概念/concept.md
data/1.云原生初阶/4.k8s包管理(helm)/2.helm三大概念/concept.md
+2
-1
data/1.云原生初阶/5.服务网格(istio)/2.安装istio/install2.md
data/1.云原生初阶/5.服务网格(istio)/2.安装istio/install2.md
+3
-1
data/1.云原生初阶/7.基础架构自动编排(Terraform)/1.介绍Terraform/introduce.md
.../1.云原生初阶/7.基础架构自动编排(Terraform)/1.介绍Terraform/introduce.md
+4
-2
未找到文件。
data/1.云原生初阶/2.容器编排(学习环境 k8s)/1.安装kubectl/install.md
浏览文件 @
21d89c85
# 安装 kubectl
# 安装 kubectl
kubectl 是用来与 Kubernetes 集群通讯的命令行工具。通过 Kubectl 可以在 Kubernetes 集群上完成如下操作:
kubectl 是用来与 Kubernetes 集群通讯的命令行工具。通过 Kubectl 可以在 Kubernetes 集群上完成如下操作:
*
部署和管理应用
*
部署和管理应用
*
查看资源信息
*
查看资源信息
*
删除和更新组件
*
删除和更新组件
...
@@ -14,11 +15,13 @@ kubectl 适配了不同操作系统不同指令架构的安装版本
...
@@ -14,11 +15,13 @@ kubectl 适配了不同操作系统不同指令架构的安装版本
以在 MacOS 上安装 Kebuctl 为例,执行命令:
以在 MacOS 上安装 Kebuctl 为例,执行命令:
针对 Intel 芯片:
针对 Intel 芯片:
```
bash
```
bash
curl
-LO
"https://dl.k8s.io/release/
$(
curl
-L
-s
https://dl.k8s.io/release/stable.txt
)
/bin/darwin/amd64/kubectl"
curl
-LO
"https://dl.k8s.io/release/
$(
curl
-L
-s
https://dl.k8s.io/release/stable.txt
)
/bin/darwin/amd64/kubectl"
```
```
针对 Apple 芯片:
针对 Apple 芯片:
```
bash
```
bash
curl
-LO
"https://dl.k8s.io/release/
$(
curl
-L
-s
https://dl.k8s.io/release/stable.txt
)
/bin/darwin/arm64/kubectl"
curl
-LO
"https://dl.k8s.io/release/
$(
curl
-L
-s
https://dl.k8s.io/release/stable.txt
)
/bin/darwin/arm64/kubectl"
```
```
...
...
data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/create_deployment.md
浏览文件 @
21d89c85
...
@@ -40,7 +40,8 @@ spec:
...
@@ -40,7 +40,8 @@ spec:
-
containerPort
:
1024
-
containerPort
:
1024
```
```
通过一组操作来部署和查看状态
通过一组操作来部署和查看状态:
*
使用命令
`kubectl create -f k8s.deployment.yaml`
部署到 k8s 集群,“部署” 本身被当一种资源创建过程
*
使用命令
`kubectl create -f k8s.deployment.yaml`
部署到 k8s 集群,“部署” 本身被当一种资源创建过程
*
使用命令
`kubectl get deployments`
查看部署情况
*
使用命令
`kubectl get deployments`
查看部署情况
*
使用命令
`kubectl rollout status deployment/cloud-native-hello-py`
查看状态。
*
使用命令
`kubectl rollout status deployment/cloud-native-hello-py`
查看状态。
...
...
data/1.云原生初阶/2.容器编排(学习环境 k8s)/5.kubectl部署一个Python程序/rs_pod.md
浏览文件 @
21d89c85
...
@@ -16,6 +16,7 @@ Pod是一个或多个容器的组合,这些容器共享存储、网络和命
...
@@ -16,6 +16,7 @@ Pod是一个或多个容器的组合,这些容器共享存储、网络和命
ReplicaSet 的信息解释:
ReplicaSet 的信息解释:
*
NAME:ReplicaSet 名字
*
NAME:ReplicaSet 名字
*
DESIRED:需要的 pod 副本个数
*
DESIRED:需要的 pod 副本个数
*
CURRENT:当前运行的 pod 副本个数
*
CURRENT:当前运行的 pod 副本个数
...
@@ -23,6 +24,7 @@ ReplicaSet 的信息解释:
...
@@ -23,6 +24,7 @@ ReplicaSet 的信息解释:
*
AGE:运行开始到现在的时间
*
AGE:运行开始到现在的时间
Pod的列信息大同小异:
Pod的列信息大同小异:
*
NAME: 名字
*
NAME: 名字
*
READY: 就绪状态
*
READY: 就绪状态
*
STATUS: 运行状态
*
STATUS: 运行状态
...
...
data/1.云原生初阶/3.容器编排(生产环境 k8s)/1.kubelet,kubectl,kubeadm三件套/introduce.md
浏览文件 @
21d89c85
...
@@ -2,7 +2,8 @@
...
@@ -2,7 +2,8 @@
在生产环境上,例如 centos linux系统上,使用 kubelet, kubectl, kubeadm 三件套可以部署 k8s 集群。
在生产环境上,例如 centos linux系统上,使用 kubelet, kubectl, kubeadm 三件套可以部署 k8s 集群。
cenos 上安装 k8s 步骤如下
cenos 上安装 k8s 步骤如下:
*
安装 docker
*
安装 docker
*
安装 kubelet, kubectl, kubeadm
*
安装 kubelet, kubectl, kubeadm
*
使用 kubeadm 初始化集群
*
使用 kubeadm 初始化集群
...
...
data/1.云原生初阶/3.容器编排(生产环境 k8s)/2.k8s基础组件/introduce.md
浏览文件 @
21d89c85
# k8s 基础组件介绍
# k8s 基础组件介绍
到目前为止,我们从 k8s 命令行安装和操作的角度理解到了 k8s 的很多基本概念:
到目前为止,我们从 k8s 命令行安装和操作的角度理解到了 k8s 的很多基本概念:
*
容器(docker)里可以跑代码
*
容器(docker)里可以跑代码
*
pod 可以管理容器(docker)
*
pod 可以管理容器(docker)
*
ReplicaSet 可以管理多 pod
*
ReplicaSet 可以管理多 pod
...
@@ -9,11 +10,13 @@
...
@@ -9,11 +10,13 @@
*
k8s的集群节点分 control-plane 和 worker 两种节点
*
k8s的集群节点分 control-plane 和 worker 两种节点
我们也掌握了安装 k8s 的概念
我们也掌握了安装 k8s 的概念
*
kubectl 可以用来和 k8s 集群通讯,是 k8s 的命令行客户端
*
kubectl 可以用来和 k8s 集群通讯,是 k8s 的命令行客户端
*
使用 minikube/kind 可以创建学习环境 k8s 集群
*
使用 minikube/kind 可以创建学习环境 k8s 集群
*
使用 kubeadm 可以创建生产环境 k8s
*
使用 kubeadm 可以创建生产环境 k8s
现在,我们简要介绍下 k8s 的核心组件
现在,我们简要介绍下 k8s 的核心组件
*
etcd : 实现了raft分布式一致性协议的元数据存储
*
etcd : 实现了raft分布式一致性协议的元数据存储
*
apiserver: 提供了元数据读写 etcd 的api
*
apiserver: 提供了元数据读写 etcd 的api
*
Controller Manager : 集群内部的控制管理中心
*
Controller Manager : 集群内部的控制管理中心
...
...
data/1.云原生初阶/3.容器编排(生产环境 k8s)/3.k8s设计理念/introduce.md
浏览文件 @
21d89c85
# k8s 设计理念
# k8s 设计理念
以下关于k8s设计说法正确的是?
以下关于k8s设计说法正确的是?
a. 所有API应该是声明式的
b. API对象是彼此互补而且可组合的
1.
所有API应该是声明式的
c. 高层API以操作意图为基础设计
2.
API对象是彼此互补而且可组合的
d. 低层API根据高层API的控制需要设计
3.
高层API以操作意图为基础设计
e. 尽量避免简单封装,不要有在外部API无法显式知道的内部隐藏的机制
4.
低层API根据高层API的控制需要设计
f. API操作复杂度与对象数量成正比
5.
尽量避免简单封装,不要有在外部API无法显式知道的内部隐藏的机制
g. API对象状态不能依赖于网络连接状态
6.
API操作复杂度与对象数量成正比
h. 尽量避免让操作机制依赖于全局状态,因为在分布式系统中要保证全局状态的同步是非常困难的
7.
API对象状态不能依赖于网络连接状态
8.
尽量避免让操作机制依赖于全局状态,因为在分布式系统中要保证全局状态的同步是非常困难的
## 答案
## 答案
...
@@ -18,12 +19,12 @@ h. 尽量避免让操作机制依赖于全局状态,因为在分布式系统
...
@@ -18,12 +19,12 @@ h. 尽量避免让操作机制依赖于全局状态,因为在分布式系统
### A
### A
b,c,d,e,f,g,h
2,3,4,5,6,7
### B
### B
a,b,c,d,e,f,g
1,2,3,4,5
### C
### C
a,b,c,d,e,f,g,h
1,2,3,5,8
data/1.云原生初阶/4.k8s包管理(helm)/1.安装helm/install.md
浏览文件 @
21d89c85
# 安装 helm
# 安装 helm
Linux系统上有包管理软件
Linux系统上有包管理软件:
*
例如 centos 上有 yum
*
例如 centos 上有 yum
*
例如 ubuntu 上有 apt-get
*
例如 ubuntu 上有 apt-get
Mac系统上有包管理软件
Mac系统上有包管理软件:
*
例如 brew
*
例如 brew
Windows 上也有可用的包管理软件
Windows 上也有可用的包管理软件:
*
例如 scoop
*
例如 scoop
*
例如 choco
*
例如 choco
...
...
data/1.云原生初阶/4.k8s包管理(helm)/2.helm三大概念/concept.md
浏览文件 @
21d89c85
# helm三大概念(Chart、Repository、Release)
# helm三大概念(Chart、Repository、Release)
helm 通过三大概念来管理 k8s 上的包
helm 通过三大概念来管理 k8s 上的包:
*
Chart:Chart 代表着 helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。
*
Chart:Chart 代表着 helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。
*
Repository:是 chart 的存储库。例如:https://charts.bitnami.com/bitnami
*
Repository:是 chart 的存储库。例如:https://charts.bitnami.com/bitnami
*
Release:Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name。
*
Release:Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name。
...
...
data/1.云原生初阶/5.服务网格(istio)/2.安装istio/install2.md
浏览文件 @
21d89c85
...
@@ -7,11 +7,13 @@ helm repo add istio https://istio-release.storage.googleapis.com/charts
...
@@ -7,11 +7,13 @@ helm repo add istio https://istio-release.storage.googleapis.com/charts
```
```
其次,创建一个k8s namespace:
其次,创建一个k8s namespace:
```
bash
```
bash
kubectl create namespace istio-system
kubectl create namespace istio-system
```
```
接着,安装istio到k8s集群
接着,安装istio到k8s集群:
```
bash
```
bash
helm
install
istio-base istio/base
-n
istio-system
helm
install
istio-base istio/base
-n
istio-system
```
```
...
...
data/1.云原生初阶/7.基础架构自动编排(Terraform)/1.介绍Terraform/introduce.md
浏览文件 @
21d89c85
...
@@ -2,11 +2,13 @@
...
@@ -2,11 +2,13 @@
Terraform 是一个高度可扩展的工具,通过 Provider 来支持新的基础架构。Terraform能够让您在云上轻松使用 简单模板语言 来定义、预览和部署云基础结构。您可以使用Terraform来创建、修改、删除ECS、VPC、RDS、SLB等多种资源。
Terraform 是一个高度可扩展的工具,通过 Provider 来支持新的基础架构。Terraform能够让您在云上轻松使用 简单模板语言 来定义、预览和部署云基础结构。您可以使用Terraform来创建、修改、删除ECS、VPC、RDS、SLB等多种资源。
可以从两个方面来简化理解
可以从两个方面来简化理解:
*
Terraform 采用声明式方式配置基础架构设置
*
Terraform 采用声明式方式配置基础架构设置
*
Terraform 提供了对规范的基础架构配置的命令行操作
*
Terraform 提供了对规范的基础架构配置的命令行操作
Terraform 对基础架构的管理3个步骤
Terraform 对基础架构的管理3个步骤:
*
Write: 编写基础架构的配置
*
Write: 编写基础架构的配置
*
Plan: 对配置进行校验
*
Plan: 对配置进行校验
*
Apply: 将配置在多云上实施、生效
*
Apply: 将配置在多云上实施、生效
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录