为Ingress配置TLS证书
This commit is contained in:
@ -14,7 +14,7 @@ meta:
|
||||
* Kubernetes 初学者
|
||||
* 学习过 Kubernetes,但在投产过程中仍有诸多疑虑和困惑的技术爱好者
|
||||
|
||||
<p style="max-width: 450px; text-align: middle;">
|
||||
<p style="max-width: 450px; margin: auto;">
|
||||
<img src="/images/logo-main.png" style="background-color: #0063dc; max-width: 100%;" alt="Kubernetes管理界面:Kuboard Logo"/>
|
||||
</p>
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ meta:
|
||||
content: Kubernetes教程,K8S教程,Kubernetes Secret,Kubernetes Generator
|
||||
---
|
||||
|
||||
# 创建Secrets(使用Generator)
|
||||
# 创建Secret(使用Generator)
|
||||
|
||||
从 kubernetes v1.14 开始,kubectl 集成了 [Kustomize](https://kustomize.io/)。通过 Kustomize,您可以使用 generator(Kustomize 的概念)创建 Secret,并保存到 API Server。Generator 必须在 `kustomization.yaml` 文件中指定。
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ meta:
|
||||
content: Kubernetes教程,K8S教程,Kubernetes入门,K8S入门
|
||||
---
|
||||
|
||||
# 创建Secrets(使用kubectl)
|
||||
# 创建Secret(使用kubectl)
|
||||
|
||||
假设某个 Pod 需要访问数据库。在您执行 kubectl 命令所在机器的当前目录,创建文件 `./username.txt` 文件和 `./password.txt` 暂存数据库的用户名和密码,后续我们根据这两个文件配置 kubernetes secrets。
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ meta:
|
||||
content: Kubernetes教程,K8S教程,Kubernetes入门,K8S入门,创建Secret
|
||||
---
|
||||
|
||||
# 创建Secrets(使用Kuboard)
|
||||
# 创建Secret(使用Kuboard)
|
||||
|
||||
本文简要描述如何在 Kuboard 中创建 Kubernetes Secret。
|
||||
|
||||
@ -18,12 +18,12 @@ Kubernetes Secret 必须从属于某一个名称空间,进入 Kuboard 名称
|
||||
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
* 点击 **创建** 按钮,可显示 Secret 的创建界面,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
* 可以创建的 Secret 类型有:
|
||||
* docker 仓库密码
|
||||
|
||||
@ -7,7 +7,7 @@ meta:
|
||||
content: Kubernetes教程,K8S教程,Kubernetes入门,K8S入门,创建Secret
|
||||
---
|
||||
|
||||
# 创建Secrets(手动)
|
||||
# 创建Secret(手动)
|
||||
|
||||
和创建其他类型的 API 对象(Pod、Deployment、StatefulSet、ConfigMap 等)一样,您也可以先在 yaml 文件中定义好 Secret,然后通过 `kubectl apply -f` 命令创建。此时,您可以通过如下两种方式在 yaml 文件中定义 Secret:
|
||||
* **data**:使用 data 字段时,取值的内容必须是 base64 编码的
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 235 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 87 KiB |
@ -0,0 +1,53 @@
|
||||
---
|
||||
vssueId: 106
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中_使用Secret存储TLS证书_并激活Kubernetes_Ingress_HTTPS
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes教程,Ingress HTTPS,Ingress TLS证书,Ingress HTTPS证书
|
||||
---
|
||||
|
||||
# 使用Secret存储Ingress TLS证书
|
||||
|
||||
|
||||
|
||||
可以直接在 Ingress 中配置 HTTPS 证书,使得你的网站支持 HTTPS 协议。
|
||||
|
||||
|
||||
|
||||
## 创建证书
|
||||
|
||||
如果您为自己的测试域名购买证书,可到阿里云 [SSL证书](https://www.aliyun.com/product/cas?spm=5176.12825654.eofdhaal5.136.e9392c4ax2Hoq2&aly_as=tcRolWYa) 产品页申请免费证书。在下载证书时,请选择 nginx 证书下载,解压缩下载到的 zip 文件后,您将获得一个 .key 私钥文件和一个 .pem 公钥文件
|
||||
|
||||
## 创建Secret
|
||||
|
||||
* 在 Kuboard 界面中进入名称空间页,点击 **Secrets 创建** 按钮
|
||||
|
||||
填写表单,如下图所示:
|
||||
|
||||
* 选择类型为 TLS
|
||||
* 将 .key 文件中的内容填入 tls.key 字段
|
||||
* 将 .pem 文件中的内容填入 tls.crt 字段
|
||||
|
||||

|
||||
|
||||
* 点击 **保存** 按钮
|
||||
|
||||
## 在Ingress中引用Secret
|
||||
|
||||
* 在 Kuboard 界面中,点击要激活 HTTPS 的工作负载,进入编辑页面,如下图所示:
|
||||
|
||||
在 **互联网入口 Ingress** 区域,勾选 HTTPS,并选择刚才创建好的 Secret
|
||||
|
||||

|
||||
|
||||
* 点击 **保存** 按钮
|
||||
* 在浏览器打开对应的域名,验证 HTTPS 是否生效
|
||||
|
||||
::: tip
|
||||
|
||||
申请证书时,所填写的域名必须与Ingress配置的域名一致。
|
||||
|
||||
:::
|
||||
|
||||
:tada: :tada: :tada: 您已成功为 Ingress 配置了 HTTPS 证书。
|
||||
@ -15,6 +15,12 @@ meta:
|
||||
* 容忍该污点的 Pod 在未指定 `tolerationSeconds` 的情况下,将继续在该节点上运行
|
||||
* 容忍该污点的 Pod 在指定了 `tolerationSeconds` 的情况下,将在指定时间超过时从节点上驱逐
|
||||
|
||||
::: tip
|
||||
`tolerationSeconds` 字段可以理解为 Pod 容忍该污点的 `耐心`:
|
||||
* 超过指定的时间,则达到 Pod 忍耐的极限,Pod 离开所在节点
|
||||
* 不指定 `tolerationSeconds`,则认为 Pod 对该污点的容忍是无期限的
|
||||
:::
|
||||
|
||||
此外,自 kubernetes 1.6 以来,kubernetes 的节点控制器在碰到某些特定的条件时,将自动为节点添加污点。这类污点有:
|
||||
* `node.kubernetes.io/not-ready`: 节点未就绪。对应着 NodeCondition `Ready` 为 `False` 的情况
|
||||
* `node.kubernetes.io/unreachable`: 节点不可触达。对应着 NodeCondition `Ready` 为 `Unknown` 的情况
|
||||
|
||||
Reference in New Issue
Block a user