toleration / ping-service

This commit is contained in:
huanqing.shao
2019-11-30 22:36:49 +08:00
parent 08ade24ed3
commit e53bf782f9
13 changed files with 160 additions and 12 deletions

View File

@ -282,6 +282,7 @@ module.exports = {
'k8s-intermediate/config/taints-toleration/use-case',
'k8s-intermediate/config/taints-toleration/taint-based-evictions',
'k8s-intermediate/config/taints-toleration/taint-nodes-by-condition',
'k8s-intermediate/config/taints-toleration/kuboard-toleration',
]
},
{

View File

@ -148,7 +148,7 @@ module.exports = {
}
},
themeConfig: {
incompleteRatio: 20,
incompleteRatio: 15,
showMoreAds: false,
showAds: true,
kuboardToken: 'eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXZpZXdlci10b2tlbi1mdGw0diIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJvYXJkLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YWFiMmQxLTQxMjYtNDU5Yi1hZmNhLTkyYzMwZDk0NTQzNSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJvYXJkLXZpZXdlciJ9.eYqN3FLIT6xs0-lm8AidZtaiuHeX70QTn9FhJglhEyh5dlyMU5lo8UtR-h1OY8sTSeYdYKJAS83-9SUObKQhp6XNmRgOYAfZblKUy4mvbGVQ3dn_qnzxYxt6zdGCwIY7E34eNNd9IjMF7G_Y4eJLWE7NvkSB1O8zbdn8En9rQXv_xJ9-ugCyr4CYB1lDGuZl3CIXgQ1FWcQdUBrxTT95tzcNTB0l6OUOGhRxOfw-RyIOST83GV5U0iVzxnD4sjgSaJefvCU-BmwXgpxAwRVhFyHEziXXa0CuZfBfJbmnQW308B4wocr4QDm6Nvmli1P3B6Yo9-HNF__d2hCwZEr7eg',
@ -157,7 +157,7 @@ module.exports = {
{ text: '安装', link: '/install/install-dashboard' },
{ text: '教程', link: '/learning/' },
{ text: '使用', link: '/guide/' },
{ text: '培训', link: 'https://kubetrain.cn/?from=kuboard', target: '_blank' },
// { text: '培训', link: 'https://kubetrain.cn/?from=kuboard', target: '_blank' },
{ text: '支持', link: '/support/' },
// { text: '博客', link: 'https://blog.kuboard.cn/compaign' }
// { text: 'DevOps', link: '/devops/' }

View File

@ -68,7 +68,7 @@ export default ({
window.$sendGaEvent = Vue.prototype.$sendGaEvent
window.openOutboundLink = function (a) {
let url = new URL(a.href)
window.$sendGaEvent('OutboundLink: ' + url.hostname, 'OutboundLink: ' + a.innerText, 'OL:' + a.href)
window.$sendGaEvent('OL: ' + url.hostname, 'OL: ' + a.innerText, 'OL: ' + a.href)
}
if (location.search && (location.search.indexOf('sharing') >=0 || location.search.indexOf('from=timeline') >= 0)) {
sharing = true

View File

@ -26,6 +26,12 @@ li>code {
font-size: 90%;
}
td>code {
color: #c7254e !important;
background-color: #f9f2f4;
font-size: 90%;
}
h1~ul {
margin-top: 0.8rem;
}

View File

@ -9,9 +9,9 @@ meta:
content: K8S教程,K8S 教程,K8S培训,Kubernetes培训
---
# Kubernetes 教程
# Kubernetes教程
<div class="row">
<!-- <div class="row">
<div class="col-md-4 col-sm-6">
<a href="#kubernetes免费教程">
<FancyImage src="/images/courses/free.png" title="免费教程" description="kubernetes.io权威资料kuboard翻译" alt="K8S培训_免费教程" type="SlideLeft2Right"/>
@ -27,7 +27,7 @@ meta:
<FancyImage src="/images/courses/advanced.png" title="K8S高级班" description="360讲师授课" alt="K8S培训_高薪培训" type="Rectangle"/>
</a>
</div>
</div>
</div> -->
@ -37,7 +37,9 @@ meta:
* Kubernetes 初学者
* 学习过 Kubernetes但在投产过程中仍有诸多疑虑和困惑的技术爱好者
推荐自学能力强的同学选择免费教程,这里有来自 kubernetes.io 的权威资料,同时结合 Kuboard 作者的实战经验已有证据证明Kuboard 有许多用户能够在一个月左右时间 **从Kubernetes入门到投产**
根据实际反馈,有很大比例的用户参考 kuboard.cn 网站后,能够在 1 个月内完成 Kubernetes 上的微服务落地工作
<!-- 推荐自学能力强的同学选择免费教程,这里有来自 kubernetes.io 的权威资料,同时结合 Kuboard 作者的实战经验已有证据证明Kuboard 有许多用户能够在一个月左右时间 **从Kubernetes入门到投产**
同时Kuboard 与资深 Kubernetes 运维工程师/布道者合作,为大家带来直播课程,可以更深入系统地学习 K8S。[Kubernetes中级班](https://kubetrain.cn/?from=learning-free) 由 360 资深运维工程师阿良为您直播讲解。直播课程的优势如下:
* 360 大厂一线实战经验
@ -49,7 +51,7 @@ meta:
* K8S弹性伸缩
* K8S网络深入解析
* Ceph存储
* 微服务自动化发布Spring Cloud & Jenkins CI/CD
* 微服务自动化发布Spring Cloud & Jenkins CI/CD -->
<!-- <div style="background-color: #0063dc;">
@ -96,6 +98,7 @@ meta:
* [数据卷 Volume](/learning/k8s-intermediate/persistent/volume.html)
* [使用port-forward访问集群中的应用程序](/learning/k8s-practice/access/port-forward.html)
* [Kubernetes网络模型](/learning/k8s-intermediate/service/network.html)
* [CI/CD集成](/guide/cicd/)
* 下一步,可按教程章节顺序对 Kubernetes 各种概念进行深入理解
:::

View File

@ -0,0 +1,70 @@
---
vssueId: 173
layout: LearningLayout
description: Kubernetes教程_本文解释了Kubernetes中为什么ping Service 不能成功的原因
meta:
- name: keywords
content: Kubernetes教程,K8S教程,Kubernetes Service
---
# 为什么Kubernetes Service不能ping
<AdSenseTitle>
</AdSenseTitle>
## 现象
**Kubernetes Service 不能 ping**
例如对于 [example](/guide/example/import.html) 中的 Service `gateway-example`,可以执行 `nslookup` 命令,如下所示:
```
[root@gateway-example-6f6f45cd6-px8bn eip]# nslookup gateway-example
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: gateway-example.example.svc.cluster.local
Address: 10.105.141.232
```
但是执行 `ping` 命令则会失败:
```
[root@gateway-example-6f6f45cd6-px8bn eip]# ping gateway-example
PING gateway-example.example.svc.cluster.local (10.105.141.232) 56(84) bytes of data.
From 172.17.76.171 (172.17.76.171) icmp_seq=1 Time to live exceeded
From 172.17.76.171 (172.17.76.171) icmp_seq=2 Time to live exceeded
From 172.17.76.171 (172.17.76.171) icmp_seq=3 Time to live exceeded
From 172.17.76.171 (172.17.76.171) icmp_seq=4 Time to live exceeded
^C
--- gateway-example.example.svc.cluster.local ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3003ms
```
执行 `curl` 命令会成功:(如果后端 Pod 正常)
```
[root@gateway-example-6f6f45cd6-px8bn eip]# curl gateway-example:9201
{"timestamp":"2019-11-29T15:29:39.515+0000","path":"/","status":404,"error":"Not Found","message":null}
```
执行 `telnet` 命令也可以成功:(如果后端 Pod 正常)
```
[root@gateway-example-6f6f45cd6-px8bn eip]# telnet gateway-example 9201
Trying 10.105.141.232...
Connected to gateway-example.
Escape character is '^]'.
```
## 解释
在 Kubernetes 的网络中Service 就是 ping 不通的。因为 Kubernetes 只是为 Service 生成了一个虚拟 IP 地址,实现的方式有:
* [User space 代理模式](/learning/k8s-intermediate/service/service-details.html#user-space-代理模式)
* [Iptables 代理模式](/learning/k8s-intermediate/service/service-details.html#iptables-代理模式)
* [IPVS 代理模式](/learning/k8s-intermediate/service/service-details.html#ipvs-代理模式)
不管是哪种代理模式Kubernetes Service 的 IP 背后都没有任何实体可以响应「ICMP」全称为 Internet 控制报文协议Internet Control Message Protocol。参考 [每天都在用的Ping命令它到底是什么](https://www.jianshu.com/p/dc9de5038874)
通过 Service 访问 Pod 时的数据传递方式,可参考 [数据包的传递Service-to-Pod](/learning/k8s-intermediate/service/network.html#数据包的传递service-to-pod)

View File

@ -11,6 +11,8 @@ meta:
<AdSenseTitle>
> 参考文档:[Extending the Kubernetes API with the aggregation layer](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/)
通过Kubernetes的aggregation层可以在已提供的K8S核心API之外增加额外的API
</AdSenseTitle>

View File

@ -0,0 +1,24 @@
---
# vssueId: 159
layout: LearningLayout
description: Kubernetes教程_通过Kubernetes的aggregation层可以在已提供的K8S核心API之外增加额外的API
meta:
- name: keywords
content: Kubernetes教程,K8S教程,CustomResourfce
---
# 自定义资源CustomResource
<AdSenseTitle>
> 参考文档: [Custom Resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)
自定义资源Custom Resource是对 Kubernetes API 的扩展。本文描述了如何添加自定义资源到 Kubernetes 集群,以及何时使用 standalone service。提供了两种添加自定义资源的方法以及如何选择应该使用哪种方法。
[[TOC]]
</AdSenseTitle>
## Custom Resources
资源Resource是指 [Kubernetes API](https://kubernetes.io/docs/reference/using-api/api-overview/) 的一个端点,存储了一组特定类型的 [API 对象](/learning/k8s-intermediate/obj/k8s-object.html)。例如,内建的 pods 资源包含了一组 Pod 对象。

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -0,0 +1,35 @@
---
vssueId: 90
titlePrefix: 污点和容忍
layout: LearningLayout
description: Kubernetes教程_使用Kuboard配置工作负载的Tolerations容忍
meta:
- name: keywords
content: Kubernetes教程,污点,容忍,kubernetes taints,kubernetes toleration
---
# 使用Kuboard配置容忍
<AdSenseTitle/>
> Kuboard v-1.0.5-beta.3 中增加了容忍的功能
在 Kubobard 工作负载编辑界面中点击 ***容器组的更多设定*** 按钮(下图左下角),
![Kubernetes教程_使用Kuboard配置容忍](./kuboard-toleration.assets/image-20191130215407308.png)
可为工作负载设置容忍,如下图所示:
![Kubernetes教程_在Kuboard中设置容忍](./kuboard-toleration.assets/image-20191130215717584.png)
各字段含义如下表所示:
| 字段名 | 字段类型 | 描述 |
| ----------------- | -------- | ------------------------------------------------------------ |
| key | string | 此容忍针对的污点的 key。如果为空则匹配所有的污点此时 operator 必须为 `Exists`。当 key 为空operator 为 `Exists` 时,表示容忍匹配所有 key / value 的污点 |
| operator | string | operator (操作符)表示 key 与 value 的关系。可选值为 `Exists``Equal`,默认为 `Equal``Exists` 相当于 value 的通配符,此时 Pod 可以容忍包含该 key 的所有污点 |
| value | string | 此容忍针对的污点的 value。如果 operator 为 `Exists`value 应该为空否则value 为一个常规字符串 |
| effect | string | 此容忍针对的污点的 effect。如果为空则表示该容忍匹配污点的所有 effect。可选值为 `NoSchedule``PreferNoSchedule``NoExecute` |
| tolerationSeconds | integer | TolerationSeconds 代表了容忍的持续时间当该字段被填写时effect 必须为 `NoExecute`。默认情况下,该字段为空,代表 Pod 可以一直容忍该污点不会被驱逐。0 以及负数将被认为是 0 (立刻驱逐)。参考 [基于污点的驱逐TaintBasedEviction](/learning/k8s-intermediate/config/taints-toleration/taint-based-evictions.html) |

View File

@ -1,14 +1,22 @@
Kuboard v1.0.x 的更新说明
**新特性**
* 工作负载编辑器 --> 容忍
**优化**
* 显示资源对象全名时的交互体验问题
* 将预览YAML文件复制到剪贴板
* 提示ping Service失败
*
**BUG 修复**
* 为什么 ping service-name 会失败?
* EndPoint
* 导入工作负载时,如果存储类没有 annotations不应该报错
* 表单校验:数据卷名不能带小数点
@ -20,9 +28,6 @@ Kuboard v1.0.x 的更新说明
* https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/
* 可以在这里加一个自动部署的按钮点击按钮显示部署秘钥。shell 脚本可以加一句curl http://kubord.com?秘钥+版本。镜像推送到仓库之后shell脚本加一句这个curl就可以完成k8s自动集成了
*
* 容器组列表,筛选结果为空时,提示筛选 “其他”
* https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

View File

@ -7,6 +7,8 @@ description: 本文描述了Kuboard_v1.0.x的版本变更说明
<AdSenseTitle/>
了解如何 [升级Kuboard](/install/install-dashboard-upgrade.html)
Kuboard v1.0.x 的更新说明
## v1.0.5-beta.2