Context

一个现有的 Kubernetes 集群,英通过更新其中一部分组件的 TLS 配置来进行加固。

Task

修改 API 服务器和 etcd 之间通信的 TLS 配置。 对于 API 服务器,删除对除 TLS 1.3 及更高版本之外的所有 TLS 版本的支持。 此外,删除对象 TLS_AES_128_GCM_SHA256 之外的所有密码套件的支持。 确保应用配置的更改 对于 etcd,删除对象 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 之外的所有密码套件的支持。 确保应用配置的更改

解: 这里跟14一样找到配置位置 这道题需要修改kube-apiserver和etcd的配置,etcd配置不属于kubernetes.io官网,考试不能查 kube-apiserver的配置,搜索tls image.png

# 转到master节点上,kubernetes配置文件在master节点
ssh master01
# 备份apiserver文件,不能直接备份到配置文件夹,会引起配置冲突,这里我备份到/tmp
cp /etc/kubernetes/manifests/kube-apiserver.yaml /tmp/kube-apiserver.yaml
# 修改api-server配置文件
vim /etc/kubernetes/manifests/kube-apiserver.yaml

image.png

    # 按题目添加配置密码套件和指定TLS最小版本
    - --tls-cipher-suites=TLS_AES_128_GCM_SHA256
    - --tls-min-version=VersionTLS13
# 重启服务
systemctl daemon-reload
systemctl restart kubelet
# 等待3分钟,查看服务状态,特别是kube-apiserver这个pod
kubectl get pods -A

image.png

修改etcd

# 备份etcd配置文件,跟上面配置一样,备份到/tmp文件夹
cp /etc/kubernetes/manifests/etcd.yaml /tmp/etcd.yaml
# 修改配置文件
vim /etc/kubernetes/manifests/etcd.yaml

image.png

# 这里选项如果自己添加记得就是上面同密码套件配置名(tls-cipher-suites),不过没有tls
- --cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
# 重启服务
systemctl daemon-reload
systemctl restart kubelet
# 等待3分钟,查看服务状态,特别是kube-apiserver和etcd这两个pod
kubectl get pods -A

image.png