Kubernetes 签发 Ingress 证书及日常故障运维
· ☕ 2 分钟
1. 自动签发 Ingress 证书 安装 cert-manager 1 2 3 4 5 6 7 8 9 10 kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.10/deploy/manifests/00-crds.yaml kubectl create namespace cert-manager kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true helm repo add jetstack https://charts.jetstack.io helm repo update helm install \ --name cert-manager \ --namespace cert-manager \ --version v0.10.0 \ jetstack/cert-manager 创建一个全局的签发机构 新建文件 issuer.yaml 1 2 3 4 5 6 7 8 9 10 11 12 apiVersion: certmanager.k8s.io/v1alpha1 kind: ClusterIssuer metadata: name: letsencrypt-prod namespace: cert-manager spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: [email protected] privateKeySecretRef: name: letsencrypt-prod http01: {} 创建签发机构 1 kubectl apply -f issuer.yaml 签发证书 新建

Kubernetes 中 Deployment 的基本操作
· ☕ 2 分钟
Deployment 通过创建 ReplicaSet 控制 Pod 的数量、状态。本篇主要介绍一些 Deployment 常用的操作。 1. Deployment yaml 格式 带上 --dry-run 参数表示并不执行命令,仅生成 yaml 输出: 1 kubectl create deployment nginx --image=nginx --dry-run -o yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: nginx name: nginx spec: replicas: 1 selector: matchLabels: app: nginx strategy: {} template: metadata: creationTimestamp: null labels: app: nginx spec: containers: - image: nginx name: nginx resources: {} status: {} 2. 创建 使用 run 参数 1 kubectl run nginx --image=nginx 使用

Kubernetes 中的证书
· ☕ 2 分钟
我使用的是 Kubernetes 1.15.3 ,不同版本的处理方法可能会有不同。 1. 关于证书 根证书是自签的 根证书是由自己签发的。在浏览器中,内置了常见的证书服务商的 CA 证书。因此,浏览器才会信任这些证书服务商签发的下一级证书。 我们也可以生成根证书,但是需要将根证书添加到系统信

如何使用 KubeBuilder 开发一个 Operator
· ☕ 5 分钟
通过 Operator 的方案,可以对 Kubernetes 的功能进行友好地扩展。Operatpr = CRD + Controller。首先通过 yaml 定义,生成 CRD ,然后 Controller 不断地监听 etcd 中的数据,执行相应动作。开发 Operator 时,有很多繁琐且重复的事情。KubeBuilder 可以帮助我们快速生成骨架代码,

Kubernetes 1.6.0 安装问题汇总
· ☕ 1 分钟
1. CNI 问题 错误日志 1 2 journalctl -u kubelet ...Unable to update cni config: No networks found in /etc/cni/net.d 由于没有安装 CNI ,需要移除 /var/lib/kubelet/kubeadm-flags.env 参数中的--network-plugin=cni 1 2 cat /var/lib/kubelet/kubeadm-flags.env KUBELET_KUBEADM_ARGS="--cgroup-driver=systemd --pod-infra-container-image=k8s.gcr.io/pause:3.1" 2. 节点 NotReady 节点 NotReady 可能的原因有很多。通常会是网络、容器配置错误导致,需要逐一排查。 这里使用的是 使用 Kubeadm 安装 Kubernetes 集群 文