尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Kubernetes 1.27集群初始化与配置指南

Kubernetes 1.27集群初始化与配置指南 1. Kubernetes 1.27集群初始化指南概述Kubernetes作为当前容器编排领域的事实标准其集群初始化是每个运维人员和开发者的必修课。1.27版本带来了多项改进包括更高效的kubelet资源管理、增强的调度器性能以及更稳定的API服务。对于刚接触Kubernetes的新手来说集群初始化往往是第一个需要跨越的门槛而对于有经验的用户每次版本更新都可能意味着初始化流程的细微变化需要重新适应。在实际工作中我发现很多人在初始化集群时容易陷入几个典型误区要么过于依赖自动化工具而忽略底层原理要么死记硬背命令而不理解参数含义还有人在遇到网络问题时束手无策。本文将基于1.27版本特性带你从零开始构建生产可用的Kubernetes集群同时解释每个步骤背后的设计考量。2. 环境准备与系统配置2.1 硬件资源规划对于生产环境建议至少准备控制平面节点4核CPU/8GB内存/100GB存储SSD优先工作节点根据工作负载调整建议8核CPU/16GB内存起网络节点间延迟1ms带宽≥1Gbps测试环境可使用更低配置但要注意单节点集群至少需要2核CPU/4GB内存使用SSD可显著提升etcd性能交换分区必须禁用sudo swapoff -a并永久注释/etc/fstab中的swap行重要提示所有节点的时间必须同步NTP服务时区设置一致否则会导致证书验证失败等诡异问题。2.2 操作系统要求推荐使用以下经过验证的Linux发行版Ubuntu 20.04/22.04 LTSCentOS 7/8 StreamRHEL 8/9内核版本要求≥5.4需开启以下内核模块lsmod | grep -e overlay -e br_netfilter若未加载需执行sudo modprobe overlay sudo modprobe br_netfilter2.3 网络预配置确保满足以下条件各节点hostname解析正确/etc/hosts或DNS防火墙放行必要端口控制平面6443, 2379-2380, 10250, 10259, 10257工作节点10250, 30000-32767启用IP转发和桥接流量cat EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 EOF sudo sysctl --system3. 容器运行时安装与配置3.1 containerd安装安装依赖sudo apt-get update sudo apt-get install -y \ containerd runc生成默认配置并启用systemd cgroupsudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo sed -i s/SystemdCgroup false/SystemdCgroup true/ /etc/containerd/config.toml重启服务sudo systemctl restart containerd sudo systemctl enable containerd3.2 CRI-O方案替代选项如需使用CRI-O# Ubuntu示例 OSxUbuntu_22.04 VERSION1.27 echo deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ / | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list echo deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ / | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | sudo apt-key add - sudo apt-get update sudo apt-get install -y cri-o cri-o-runc4. Kubernetes组件安装4.1 软件源配置sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.27/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo deb [signed-by/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ / | sudo tee /etc/apt/sources.list.d/kubernetes.list4.2 组件安装指定版本安装避免自动升级导致意外sudo apt-get update sudo apt-get install -y \ kubelet1.27.4-1.1 \ kubeadm1.27.4-1.1 \ kubectl1.27.4-1.1 sudo apt-mark hold kubelet kubeadm kubectl5. 控制平面初始化5.1 初始化命令解析典型初始化命令sudo kubeadm init \ --pod-network-cidr10.244.0.0/16 \ --apiserver-advertise-address192.168.1.100 \ --control-plane-endpointcluster.example.com:6443 \ --upload-certs关键参数说明--pod-network-cidr必须与后续安装的CNI插件匹配--apiserver-advertise-address指定API服务器监听地址--control-plane-endpoint高可用集群的负载均衡器地址--upload-certs自动分发证书到其他控制平面节点5.2 初始化后操作配置kubectlmkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config保存join命令kubeadm token create --print-join-command join-command.sh检查组件状态kubectl get pods -n kube-system6. 网络插件安装6.1 Flannel部署kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml验证安装kubectl get pods -n kube-system -l appflannel6.2 Calico方案替代选项kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml7. 工作节点加入集群7.1 标准加入流程在工作节点执行之前保存的join命令sudo $(cat join-command.sh)7.2 节点状态检查在控制平面执行kubectl get nodes正常状态应为ReadyNAME STATUS ROLES AGE VERSION master01 Ready control-plane 10m v1.27.4 worker01 Ready none 2m v1.27.48. 常见问题排查8.1 初始化卡住问题现象kubeadm init长时间无响应 排查步骤检查容器运行时日志journalctl -u containerd -f查看kubelet状态systemctl status kubelet常见原因镜像拉取失败配置国内镜像源端口冲突检查6443等端口占用证书问题删除/etc/kubernetes/重新初始化8.2 网络连通性问题现象Pod间无法通信或无法访问服务 排查工具# 检查网络策略 kubectl get networkpolicy -A # 测试DNS解析 kubectl run -it --rm --imagebusybox:1.28 test-dns -- nslookup kubernetes.default8.3 证书过期处理查看证书有效期kubeadm certs check-expiration更新证书kubeadm certs renew all systemctl restart kubelet9. 生产环境增强配置9.1 审计日志启用修改/etc/kubernetes/manifests/kube-apiserver.yamlspec: containers: - command: - kube-apiserver - --audit-policy-file/etc/kubernetes/audit-policy.yaml - --audit-log-path/var/log/kubernetes/audit/audit.log - --audit-log-maxage30 - --audit-log-maxbackup10 - --audit-log-maxsize1009.2 资源限制配置kubelet配置示例/var/lib/kubelet/config.yamlapiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration evictionHard: memory.available: 500Mi nodefs.available: 10% nodefs.inodesFree: 5% imagefs.available: 15%10. 集群验证与测试10.1 基本功能测试部署测试应用kubectl create deployment nginx --imagenginx kubectl expose deployment nginx --port80 --typeNodePort验证服务访问curl http://$(kubectl get nodes -o jsonpath{.items[0].status.addresses[0].address}):$(kubectl get svc nginx -o jsonpath{.spec.ports[0].nodePort})10.2 性能基准测试使用kube-bench进行CIS基准测试docker run --rm --pidhost -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest run11. 版本升级策略11.1 控制平面升级先升级kubeadmsudo apt-get update sudo apt-get install -y kubeadm1.27.5-1.1执行升级计划sudo kubeadm upgrade plan sudo kubeadm upgrade apply v1.27.5升级节点组件sudo apt-get update sudo apt-get install -y kubelet1.27.5-1.1 kubectl1.27.5-1.1 sudo systemctl daemon-reload sudo systemctl restart kubelet11.2 工作节点升级排空节点kubectl drain node-name --ignore-daemonsets升级组件后取消排空kubectl uncordon node-name12. 备份与恢复方案12.1 etcd数据备份ETCDCTL_API3 etcdctl \ --endpointshttps://127.0.0.1:2379 \ --cacert/etc/kubernetes/pki/etcd/ca.crt \ --cert/etc/kubernetes/pki/etcd/server.crt \ --key/etc/kubernetes/pki/etcd/server.key \ snapshot save snapshot.db12.2 关键配置备份# 备份证书和配置文件 sudo tar czvf k8s-backup-$(date %Y%m%d).tar.gz \ /etc/kubernetes/pki \ /etc/kubernetes/*.conf \ /var/lib/kubelet/config.yaml13. 安全加固建议13.1 RBAC最小权限创建服务账户示例apiVersion: v1 kind: ServiceAccount metadata: name: limited-user --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: pod-reader rules: - apiGroups: [] resources: [pods] verbs: [get, watch, list] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: read-pods subjects: - kind: ServiceAccount name: limited-user roleRef: kind: Role name: pod-reader apiGroup: rbac.authorization.k8s.io13.2 Pod安全策略使用PodSecurity AdmissionapiVersion: v1 kind: Namespace metadata: name: restricted labels: pod-security.kubernetes.io/enforce: restricted pod-security.kubernetes.io/warn: restricted14. 监控与日志方案14.1 基础监控部署使用kube-prometheus-stackhelm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace14.2 日志收集方案EFK栈部署示例helm install elasticsearch elastic/elasticsearch --namespace logging helm install fluent-bit fluent/fluent-bit --namespace logging helm install kibana elastic/kibana --namespace logging15. 存储方案集成15.1 Local PV配置创建存储类apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer15.2 NFS动态供应使用nfs-subdir-external-provisionerhelm install nfs-subdir-external-provisioner \ nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \ --set nfs.server192.168.1.200 \ --set nfs.path/data/nfs16. 高可用架构设计16.1 控制平面高可用使用kube-vip实现负载均衡kube-vip manifest pod \ --interface eth0 \ --vip 192.168.1.150 \ --controlplane \ --bgp \ --localAS 65000 \ --peerAS 65000 \ --peerAddress 192.168.1.1 \ --peerPass myBGPpass | kubectl apply -f -16.2 工作节点自动扩展集群自动扩缩容配置apiVersion: autoscaling.k8s.io/v1 kind: ClusterAutoscaler metadata: name: cluster-autoscaler spec: scaleDownDelayAfterAdd: 10m scaleDownUnneededTime: 5m resourceLimits: maxNodesTotal: 20 cloudProvider: aws17. 性能调优技巧17.1 kubelet参数优化调整/var/lib/kubelet/config.yamlapiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration maxPods: 150 kubeAPIQPS: 50 kubeAPIBurst: 100 serializeImagePulls: false17.2 调度器配置自定义调度器profileapiVersion: kubescheduler.config.k8s.io/v1beta3 kind: KubeSchedulerConfiguration profiles: - schedulerName: default-scheduler plugins: preScore: enabled: - name: NodeResourcesFit - name: InterPodAffinity18. 多集群管理方案18.1 kubefed部署安装Kubefed控制平面helm install kubefed kubefed-charts/kubefed \ --namespace kube-federation-system \ --create-namespace \ --set global.scopeCluster18.2 集群注册加入成员集群kubefedctl join cluster1 \ --cluster-context cluster1 \ --host-cluster-context federation-host \ --v219. 服务网格集成19.1 Istio安装使用istioctl安装istioctl install --set profiledemo -y kubectl label namespace default istio-injectionenabled19.2 Linkerd方案替代安装方案curl -sL https://run.linkerd.io/install | sh linkerd install | kubectl apply -f - linkerd check20. 持续交付流水线20.1 Argo CD部署kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml20.2 Tekton方案替代CI/CD方案kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml21. 故障演练方案21.1 Chaos Mesh安装helm install chaos-mesh chaos-mesh/chaos-mesh --namespacechaos-testing --create-namespace --set chaosDaemon.runtimecontainerd --set chaosDaemon.socketPath/run/containerd/containerd.sock21.2 网络故障注入模拟网络延迟apiVersion: chaos-mesh.org/v1alpha1 kind: NetworkChaos metadata: name: network-delay spec: action: delay mode: one selector: namespaces: - default labelSelectors: app: nginx delay: latency: 100ms correlation: 100 jitter: 10ms22. 自定义扩展开发22.1 准入控制器开发示例Webhook配置apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration metadata: name: example-webhook webhooks: - name: example-webhook.example.com rules: - operations: [CREATE] apiGroups: [] apiVersions: [v1] resources: [pods] clientConfig: service: name: webhook-service namespace: default path: /mutate admissionReviewVersions: [v1] sideEffects: None22.2 自定义资源定义CRD示例apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: myresources.example.com spec: group: example.com versions: - name: v1 served: true storage: true schema: openAPIV3Schema: type: object properties: spec: type: object properties: size: type: integer image: type: string scope: Namespaced names: plural: myresources singular: myresource kind: MyResource23. 混合云部署策略23.1 跨云集群连接使用Submariner实现subctl deploy-broker --kubeconfig cluster1-config subctl join --kubeconfig cluster2-config broker-info.subm --clusterid cluster223.2 应用分发策略使用Karmadakarmadactl init --karmada-context karmada-host --cluster-context cluster1 karmadactl join cluster2 --cluster-context cluster224. 边缘计算场景24.1 KubeEdge部署云端组件keadm init --kubeedge-version1.12.0 --advertise-address192.168.1.100边缘节点keadm join --cloudcore-ipport192.168.1.100:10000 --tokenxxxx24.2 OpenYurt方案替代边缘方案yurtctl convert --provider kubeadm --cloud-nodes node125. 成本优化实践25.1 资源请求优化使用Vertical Pod Autoscalerhelm install vpa recommender \ --repo https://charts.fairwinds.com/stable \ --namespace vpa-system \ --create-namespace25.2 闲置资源回收使用Deschedulerhelm install descheduler descheduler \ --repo https://kubernetes-sigs.github.io/descheduler/ \ --namespace kube-system \ --set cmdOptions.v326. 安全扫描方案26.1 Trivy部署扫描集群漏洞trivy k8s --report summary cluster26.2 Kube-bench使用CIS基准测试docker run --rm --pidhost -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest run --targetsmaster,node27. 备份与迁移工具27.1 Velero配置安装与备份velero install \ --provider aws \ --plugins velero/velero-plugin-for-aws:v1.5.0 \ --bucket my-backup-bucket \ --backup-location-config regionus-west-2 \ --snapshot-location-config regionus-west-2 velero backup create daily-backup --include-namespacesproduction27.2 Kasten K10企业级方案helm install k10 kasten/k10 --namespacekasten-io --create-namespace28. 网络策略实战28.1 默认拒绝策略apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-all spec: podSelector: {} policyTypes: - Ingress - Egress28.2 应用间隔离apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: frontend-allow-backend spec: podSelector: matchLabels: app: frontend ingress: - from: - podSelector: matchLabels: app: backend ports: - protocol: TCP port: 808029. 自定义调度策略29.1 节点亲和性示例apiVersion: apps/v1 kind: Deployment metadata: name: gpu-app spec: template: spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: accelerator operator: In values: - nvidia-tesla-v10029.2 自定义调度器开发示例func prioritizeNodes(pod *v1.Pod, nodes []*v1.Node) (schedulerapi.HostPriorityList, error) { var priorityList schedulerapi.HostPriorityList for _, node : range nodes { priorityList append(priorityList, schedulerapi.HostPriority{ Host: node.Name, Score: calculateScore(pod, node), }) } return priorityList, nil }30. 集群运维自动化30.1 使用Cluster API创建管理集群clusterctl init --infrastructureaws clusterctl generate cluster my-cluster --flavordev --kubernetes-versionv1.27.4 | kubectl apply -f -30.2 GitOps实践Argo CD应用示例apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: production-apps spec: destination: server: https://kubernetes.default.svc namespace: production source: repoURL: https://github.com/myorg/cluster-manifests.git path: production targetRevision: HEAD syncPolicy: automated: prune: true selfHeal: true31. 内核参数调优31.1 关键参数配置/etc/sysctl.d/99-k8s.conf示例# 提升连接跟踪表大小 net.netfilter.nf_conntrack_max1048576 net.netfilter.nf_conntrack_tcp_timeout_established86400 # 优化网络性能 net.core.rmem_max16777216 net.core.wmem_max16777216 net.ipv4.tcp_rmem4096 87380 16777216 net.ipv4.tcp_wmem4096 65536 1677721631.2 内存管理优化# 减少交换倾向 vm.swappiness10 # 透明大页禁用某些工作负载需要 vm.nr_hugepages032. 证书管理进阶32.1 自定义CA部署使用cfssl生成CAcfssl gencert -initca ca-csr.json | cfssljson -bare ca配置kubeadm使用自定义CAkubeadm init --control-plane-endpointcluster.example.com \ --upload-certs \ --cert-dir/etc/kubernetes/pki/custom \ --apiserver-cert-extra-sansDNS:cluster.example.com,IP:192.168.1.10032.2 证书轮换自动化使用cert-managerhelm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.11.0 \ --set installCRDstrue33. 节点维护操作33.1 安全排空流程# 标记节点不可调度 kubectl cordon node-name # 驱逐所有Pod忽略DaemonSet kubectl drain node-name --ignore-daemonsets --delete-emptydir-data --force # 维护完成后恢复 kubectl uncordon node-name33.2 节点问题诊断检查节点状况kubectl describe node node-name kubectl get events --field-selector involvedObject.namenode-name查看节点资源kubectl top node node-name34. 自定义指标扩展34.1 Prometheus适配器部署自定义指标APIhelm install prometheus-adapter prometheus-community/prometheus-adapter \ --namespace monitoring \ --set prometheus.urlhttp://prometheus-server.monitoring.svc34.2 自定义HPA基于自定义指标的扩缩容apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: custom-metric-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: my-app minReplicas: 2 maxReplicas: 10 metrics: - type: Pods pods: metric: name: requests_per_second target: type: AverageValue averageValue: 50035. 服务暴露策略35.1 Ingress控制器安装Nginx Ingresshelm install ingress-nginx ingress-nginx/ingress-nginx \ --namespace ingress-nginx \ --create-namespace \ --set controller.service.typeLoadBalancer35.2 Gateway API使用Gateway API替代IngressapiVersion: gateway.networking.k8s.io/v1beta1 kind: Gateway metadata: name: web-gateway spec: gatewayClassName: nginx listeners: - protocol: HTTP port: 80 name: web allowedRoutes: namespaces: from: Same36. 数据持久化方案36.1 CSI驱动集成安装AWS EBS CSI驱动helm install aws-ebs-csi-driver \ https://github.com/kubernetes-sigs/aws-ebs-csi-driver/releases/download/helm-chart-aws-ebs-csi-driver-2.18.0/aws-ebs-csi-driver-2.18.0.tgz \ --namespace kube-system \ --set controller.serviceAccount.createfalse \ --set controller.serviceAccount.nameebs-csi-controller-sa36.2 卷快照管理创建VolumeSnapshotClassapiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: ebs-snapclass driver: ebs.csi.aws.com deletionPolicy: Delete37. 密钥管理方案37.1 使用Secrets Store CSI集成Azure Key Vaulthelm install csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver \ --namespace kube-system \ --set syncSecret.enabledtrue37.2 Vault集成部署Vault注入器helm install vault hashicorp/vault \ --namespace vault \ --create-namespace \ --set server.dev.enabledtrue \ --set injector.enabledtrue38. 策略即代码实践38.1 OPA Gatekeeper安装策略引擎helm install gatekeeper gatekeeper/gatekeeper \ --namespace gatekeeper-system \ --create-namespace38.2 自定义约束模板示例模板apiVersion: templates.gatekeeper.sh/v1beta1 kind: ConstraintTemplate metadata: name: k8srequiredlabels spec: crd: spec: names: kind: K8sRequiredLabels validation: openAPIV3Schema: properties: labels: type: array items: string targets: - target: admission.k8s.gatekeeper.sh rego: | package k8srequiredlabels violation[{msg: msg, details: {missing_labels: missing}}] { provided : {label | input.review.object.metadata.labels[label]} required : {label | label : input.parameters.labels[_]} missing : required - provided count(missing) 0 msg : sprintf(必须包含以下标签: %v, [missing]) }39. 机器学习支持39.1 Kubeflow部署完整套件安装kubectl apply -k github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref1.8.0 kubectl apply -k github.com/kubeflow/pipelines/manifests/kustomize/env/platform-agnostic-pns?ref1.8.039.2 自定义资源调度GPU节点调度apiVersion: v1 kind: Pod metadata: name: gpu-pod spec: containers: - name: cuda-container image: nvidia/cuda:11.0-base resources: limits: nvidia.com/gpu: 2 nodeSelector: accelerator: nvidia-tesla-v10040. Windows节点支持40.1 Windows节点加入准备步骤安装Windows容器功能配置Containerd运行时执行kubeadm join40.2 混合调度策略节点选择器示例apiVersion: apps/v1 kind: Deployment metadata: name: windows-app spec: template: spec: nodeSelector: kubernetes.io/os: windows tolerations: - key: os operator: Equal value: windows effect: NoSchedule41. 大规模集群优化41.1 分片etcd配置启动参数示例ETCDCTL_API3 etcd \ --name etcd1 \ --data-dir /var/lib/etcd \ --initial-cluster-token my-etcd-cluster \ --initial-cluster etcd1http://10.0.1.10:2380,etcd2http://10.0.1.11:2380,etcd3http://10.0.1.12:2380 \ --initial-advertise-peer-urls http://10.0.1.10:2380 \ --listen-peer-urls http://10.0.1.10:2380 \ --listen-client-urls http://10.0.1.10:2379,http://127.0.0.1:2379 \ --advertise-client-urls http://10.0.1.10:2379 \ --initial-cluster-state new \ --heartbeat-interval 250 \ --election-timeout 125041.2 API服务器调优kube-apiserver参数--max-requests-inflight1500 --max-mutating-requests-inflight500 --watch-cache-sizessecrets1000,configmaps100042. 零信任安全模型42.1 SPIFFE身份认证部署SPIRE服务器helm install spire spire/spire \ --namespace spire-system \ --create-namespace \ --set spire-server.dataStore.sql.passwordMyStrongPassword42.2 服务间mTLS使用Linkerd自动mTLSlinkerd inject deployment/my-app | kubectl apply -f -43. 无服务器架构支持43.1
返回列表