{"@attributes":{"version":"2.0"},"channel":{"title":"Home on wd and cc","link":"https:\/\/wdicc.com\/","description":"Recent content in Home on wd and cc","generator":"Hugo","language":"en","copyright":"wd \u00a9 2025","lastBuildDate":"Fri, 09 Jan 2026 16:27:32 -0800","item":[{"title":"\u804a\u804a AWS SSO auth \u7684 token \u7ba1\u7406","link":"https:\/\/wdicc.com\/aws-sso-auth-token\/","pubDate":"Fri, 09 Jan 2026 16:27:32 -0800","guid":"https:\/\/wdicc.com\/aws-sso-auth-token\/","description":"<p>\u6700\u8fd1\u4f7f\u7528 Golang \u91cd\u6784\u4e86\u4e00\u4e2a\u4f7f\u7528 python \u5199\u7684\u548c aws \u8ba4\u8bc1\u7684\u9879\u76ee\u3002\u7814\u7a76\u4e86\u4e00\u4e0b AWS \u8fd9\u4e2a SSO \u662f\u600e\u4e48\u56de\u4e8b\uff0c\u8bb0\u5f55\u4e00\u4e0b\u3002<\/p>\n<p>\n\u6211\u4eec\u53bb\u5e74\u8fc1\u79fb\u5230\u4e86 AWS identity center\uff0c\u901a\u8fc7 okta \u6765\u505a auth\u3002okta \u767b\u5f55\u4e4b\u540e\u4f1a\u6839\u636e\u7528\u6237\u6240\u5728 okta group \u5206\u914d\u9002\u5f53\u7684\u6743\u9650\u3002web \u4f7f\u7528\u6bd4\u8f83\u7b80\u5355\uff0c\u8fd9\u91cc\u4e3b\u8981\u8bf4 cli \u7684\u4f7f\u7528\u3002<\/p>"},{"title":"Use Golang to Generate Eks Token","link":"https:\/\/wdicc.com\/use-golang-to-generate-eks-token\/","pubDate":"Sun, 02 Nov 2025 20:08:14 -0800","guid":"https:\/\/wdicc.com\/use-golang-to-generate-eks-token\/","description":"<p>\u5728\u7814\u7a76 kubeconfig \u914d\u7f6e\u6587\u4ef6\u7684\u65f6\u5019\uff0c\u770b\u5230\u5982\u679c\u4f7f\u7528 aws \u547d\u4ee4\u6765\u751f\u6210 token \u7684\u8bdd\uff0c\u5c31\u9700\u8981\u4f20\u9012 cluster name \u548c region \u7ed9\u5230 aws \u547d\u4ee4\u3002\u8fd9\u6837\u5c31\u76f8\u7b49\u4e8e\u6bcf\u4e2a\u96c6\u7fa4\u90fd\u914d\u7f6e\u4e00\u4e2a\u76f8\u5e94\u7684\u547d\u4ee4\uff0c\u611f\u89c9\u6709\u70b9\u50bb\u597d\u50cf\u3002<\/p>\n<p>\n\u7814\u7a76\u7684\u8fc7\u7a0b\u4e2d\u53d1\u73b0 kubeconfig \u7684\u914d\u7f6e\u91cc\u9762\u6709\u4e00\u4e2a <a href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/authentication\/\">KUBERNETES_EXEC_INFO<\/a> \u8fd9\u6837\u7684\u53d8\u91cf\uff0c\u53ef\u4ee5\u643a\u5e26 cluster \u4e2d\u7684\u914d\u7f6e\u7ed9\u5230\u6267\u884c\u7684\u547d\u4ee4\u3002\u8fd9\u6837\u597d\u50cf\u5c31\u6709\u53ef\u80fd\u4f7f\u7528\u8fd9\u4e2a\u7279\u6027\u6765\u7b80\u5316\u547d\u4ee4\u7684\u914d\u7f6e\u4e86\u3002<\/p>"},{"title":"Aggregated Role in Kubernetes","link":"https:\/\/wdicc.com\/aggregated-role-in-kubernetes\/","pubDate":"Mon, 15 Sep 2025 13:02:30 -0700","guid":"https:\/\/wdicc.com\/aggregated-role-in-kubernetes\/","description":"<p>k8s \u91cc\u9762\u6388\u6743\u4e00\u822c\u662f\u901a\u8fc7\u521b\u5efa\u4e00\u4e2a role\/clusterrole \u7136\u540e\u901a\u8fc7 rolebinding\/clusterrolebinding \u8fd9\u4e9b\u548c service account \u7ed1\u5b9a\u3002<\/p>\n<p>\n\u4e4b\u524d\u6709\u4e00\u6b21\u9700\u8981\u7814\u7a76\u4e3a\u5565\u7528\u6237\u62e5\u6709\u6211\u4eec\u6ca1\u6709\u663e\u5f0f\u8d4b\u4e88\u7684\u6743\u9650\u7684\u65f6\u5019\uff0c\u53d1\u73b0\u4e86<\/p>"},{"title":"Company and Team Culture","link":"https:\/\/wdicc.com\/company-culture\/","pubDate":"Mon, 18 Aug 2025 14:28:52 -0700","guid":"https:\/\/wdicc.com\/company-culture\/","description":"<p>\u6211\u8bb0\u5f97\u5f88\u591a\u5e74\u524d\uff0c\u5934\u4e00\u6b21\u542c\u8bf4\u201c\u516c\u53f8\u6587\u5316\u201d\u8fd9\u4e2a\u8bcd\u7684\u65f6\u5019\u6709\u70b9\u4e0d\u660e\u767d\u662f\u4ec0\u4e48\u610f\u601d\u3002\u8fd9\u548c\u6211\u7b2c\u4e00\u6b21\u542c\u8bf4\u4ef7\u503c\u89c2\u4e0d\u7406\u89e3\u4ec0\u4e48\u610f\u601d\u4e00\u6837\u3002\u4f46\u662f\u8fd9\u4e48\u591a\u5e74\u4e4b\u540e\uff0c\u6211\u73b0\u5728\u9010\u6e10\u8ba4\u8bc6\u5230\u516c\u53f8\u6587\u5316\u548c\u4ef7\u503c\u89c2\u7684\u91cd\u8981\u6027\u3002<\/p>\n<p>\n\u516c\u53f8\u6587\u5316\u901a\u5e38\u6307\u7684\u662f\u4e00\u4e2a\u516c\u53f8\u5bf9\u5f85\u4e00\u4e9b\u4e8b\u60c5\u7684\u901a\u5e38\u7684\u6001\u5ea6\u3002\u4f8b\u5982\u5e38\u89c1\u7684 996 \u662f\u6709\u4e9b\u516c\u53f8\u7684\u6587\u5316\uff0c\u90a3\u4e48\u8fd9\u4e9b\u516c\u53f8\u91cc\u9762\u4e00\u4e2a\u4eba\u5de5\u4f5c\u5230\u665a\u4e0a 9 \u70b9\u4e0b\u73ed\u5927\u5bb6\u5c31\u4e00\u70b9\u90fd\u4e0d\u4f1a\u5947\u602a\uff0c\u5927\u5bb6\u5b89\u6392\u5de5\u4f5c\u9ed8\u8ba4\u5c31\u4f1a\u6309\u7167\u665a\u4e0a 9 \u70b9\u4f60\u8fd8\u4f1a\u5728\u516c\u53f8\u6765\u5b89\u6392\uff0c\u5982\u679c\u4f60\u4e0d\u5728\u516c\u53f8\u53ef\u80fd\u8fd8\u4f1a\u6709\u4eba\u5947\u602a\u3002\u516c\u53f8\u6587\u5316\u5c31\u662f\u6df1\u5165\u516c\u53f8\u6bcf\u4e2a\u4eba\u5185\u5fc3\u5bf9\u4e00\u4e9b\u4e8b\u60c5\u7684\u770b\u6cd5\u3002\u8fd9\u4e9b\u4e8b\u60c5\u8fd8\u6709\u53ef\u80fd\u662f\u5bf9\u5916\u7684\uff0c\u6bd4\u5982\u5bf9\u5f85\u4f9b\u5e94\u5546\u662f\u5426\u5141\u8bb8\u6709\u540c\u60c5\u5fc3\u8fd9\u4e9b\u7b49\u7b49\u3002<\/p>"},{"title":"Istio Multi Cluster","link":"https:\/\/wdicc.com\/istio-multi-cluster\/","pubDate":"Thu, 07 Aug 2025 18:39:44 -0700","guid":"https:\/\/wdicc.com\/istio-multi-cluster\/","description":"<p>istio \u5bf9\u4e8e\u591a\u96c6\u7fa4\u7684\u652f\u6301\u65b9\u5f0f\u6709\u5f88\u591a\u4e0d\u540c\u7684\u65b9\u5f0f\u3002\u53d6\u51b3\u4e8e\u7ec4\u7f51\u6a21\u5f0f\uff0ccontrolplane \u6a21\u5f0f\u3002\u53ef\u4ee5\u53c2\u8003<a href=\"https:\/\/istio.io\/latest\/docs\/ops\/deployment\/deployment-models\/#network-models\">\u8fd9\u7bc7\u6587\u7ae0<\/a>\u7406\u89e3\u5177\u4f53\u4e0d\u540c\u3002<\/p>\n<ul>\n<li>single or multiple cluster<\/li>\n<li>single or multiple network<\/li>\n<li>single or multiple control plane<\/li>\n<li>single or multiple mesh<\/li>\n<\/ul>\n<p>\u7f51\u7edc\u6a21\u5f0f\uff0c\u4e3b\u8981\u662f\u5173\u6ce8\u96c6\u7fa4\u4e4b\u95f4\u662f\u5426\u53ef\u4ee5\u76f4\u63a5\u8fde\u63a5\u3002\u4e3b\u8981\u662f\u6307\u591a\u4e2a\u96c6\u7fa4\u4e4b\u95f4\u7684 pod \u662f\u5426\u53ef\u4ee5\u76f4\u63a5\u4e92\u76f8\u8bbf\u95ee\u3002\u8fd9\u4e3b\u8981\u662f\u8003\u8651\u662f\u5426\u7528\u4e86 VPC-cni\u3002\u4f8b\u5982 EKS \u91cc\u9762\u4f7f\u7528 vpc-cni \u4e4b\u540e pod \u83b7\u53d6\u7684 ip \u548c\u8282\u70b9\u83b7\u53d6\u7684 ip \u662f\u540c\u4e00\u4e2a\u5b50\u7f51\u7684\u3002\u53ea\u8981\u662f\u5728\u4e00\u4e2a\u4e92\u76f8\u505a\u4e86\u8fde\u63a5\u7684 vpc \u4e2d\u5c31\u53ef\u4ee5\u4e92\u76f8\u8bbf\u95ee\u3002\n\u5982\u679c\u96c6\u7fa4\u95f4 pod \u53ef\u4ee5\u4e92\u8054\uff0c\u90a3\u5c31\u662f single network\u3002\u5982\u679c\u4e0d\u80fd\u4e92\u8054\uff0c\u90a3\u5c31\u662f multiple network\u3002<\/p>"},{"title":"In the US","link":"https:\/\/wdicc.com\/in-the-us\/","pubDate":"Tue, 17 Jun 2025 08:30:20 -0700","guid":"https:\/\/wdicc.com\/in-the-us\/","description":"<p>2025.1 \u4e3e\u5bb6 relocate \u5230\u4e86\u7f8e\u56fd\u3002\u5230\u73b0\u5728\u5feb\u534a\u5e74\u4e86\u3002\u8bb0\u5f55\u4e00\u4e0b\u8fd9\u8fb9\u7684\u89c1\u95fb\u3002<\/p>\n<div id=\"outline-container-headline-1\" class=\"outline-3\">\n<h3 id=\"headline-1\">\n\u5f88\u591a\u4e1c\u897f\u90fd\u6bd4\u8f83\u5927\n<\/h3>\n<div id=\"outline-text-headline-1\" class=\"outline-text-3\">\n<p>\u521a\u6765\u7684\u65f6\u5019\u79df\u8f66\u7279\u610f\u6ca1\u9009\u7279\u522b\u5927\u7684\u90a3\u79cd\u8f66\uff0c\u56e0\u4e3a\u6015\u505c\u8f66\u4ec0\u4e48\u7684\u4e0d\u65b9\u4fbf\u3002\u7ed3\u679c\u51fa\u53bb\u51e0\u6b21\u5c31\u53d1\u73b0\uff0c\u4ed6\u4eec\u8fd9\u8fb9\u7684\u8f66\u4f4d\u90fd\u5947\u5927\u4e00\u4e2a\uff0c\u751a\u81f3\u90fd\u4e0d\u7528\u5012\u8f66\u5165\u5e93\uff0c\u76f4\u63a5\u5934\u5c31\u53ef\u4ee5\u8fdb\u53bb\uff0c\u56e0\u4e3a\u5730\u65b9\u5f88\u5927\u3002\u4ed6\u4eec\u8fd9\u91cc\u9a7e\u7167\u8003\u8bd5\u4e5f\u6ca1\u6709\u8981\u6c42\u8bf4\u9700\u8981\u4f1a\u5012\u8f66\u5165\u5e93\u3002\u6211\u6bd4\u8f83\u6000\u7591\u5f88\u591a\u4eba\u53ef\u80fd\u6839\u672c\u5c31\u4e0d\u4f1a\u5012\u8f66\u5165\u5e93\u3002\u6211\u5f00\u4e00\u4e2a suv\uff0c\u5728\u8def\u4e0a\u6709\u65f6\u5019\u8fd8\u4f1a\u9047\u5230\u90a3\u79cd\u9ad8\u51fa\u6211\u7684\u8f66\u597d\u591a\u7684\u8f66\u3002\u8fd9\u6837\u7684\u8f66\u90fd\u53ef\u4ee5\u6b63\u5e38\u505c\u8f66\u3002<\/p>"},{"title":"Gentoo","link":"https:\/\/wdicc.com\/gentoo\/","pubDate":"Fri, 27 Dec 2024 08:22:19 +0800","guid":"https:\/\/wdicc.com\/gentoo\/","description":"<p>\u597d\u4e45\u6ca1\u6709\u73a9 Linux \u684c\u9762\u4e86\uff0c\u4e0a\u6b21\u611f\u89c9\u8fd8\u662f10\u51e0\u5e74\u524d\u3002\u6700\u8fd1\u5f04\u4e86\u4e00\u4e2a IBM thinkpad x1 carbon\uff0c\u975e\u5e38\u8f7b\u8584\uff0c\u5bf9 Linux \u7684\u652f\u6301\u4e5f\u4e0d\u9519\u3002\u8fd9\u51e0\u5929\u6298\u817e\u4e86\u4e00\u4e0b\uff0c\u5b89\u88c5\u4e00\u4e2a Gentoo\u3002<\/p>\n<p>\n\u5b89\u88c5\u4e4b\u524d\u6211\u5176\u5b9e\u4f7f\u7528 LiveUSB \u5c1d\u8bd5\u4e86\u597d\u51e0\u4e2a\u7cfb\u7edf\u3002\u751a\u81f3\u8fd8\u5b89\u88c5\u4e00\u4e2a <a href=\"https:\/\/manjaro.org\/products\/download\/x86\">manjaro<\/a> \u770b\u4e86\u4e00\u4e0b wayland \u7684\u652f\u6301\u3002\u6211\u5f53\u65f6\u6d4b\u8bd5 Ubuntu \u7684\u65f6\u5019\uff0c\u53d1\u73b0\u5408\u76d6\u4e4b\u540e\u4e00\u665a\u4e0a\u5c45\u7136\u6d88\u8017\u4e0d\u5230 10% \u7684\u7535\u611f\u89c9\u5f88\u60ca\u8bb6\u3002\u5c31\u51b3\u5b9a\u628a Windows \u5f7b\u5e95\u5e72\u6389\u4e86\u3002<\/p>"},{"title":"Slow Is Fast \u6162\u5c31\u662f\u5feb","link":"https:\/\/wdicc.com\/slow-is-fast\/","pubDate":"Sun, 01 Dec 2024 19:37:35 +0800","guid":"https:\/\/wdicc.com\/slow-is-fast\/","description":"<div id=\"outline-container-headline-1\" class=\"outline-2\">\n<h2 id=\"headline-1\">\n\u5c0f\u6b65\u5feb\u8dd1\n<\/h2>\n<div id=\"outline-text-headline-1\" class=\"outline-text-2\">\n<p><a href=\"https:\/\/www.google.com\/search?q=%E5%B0%8F%E6%AD%A5%E5%BF%AB%E8%B7%91&amp;sourceid=chrome&amp;ie=UTF-8\">\u5c0f\u6b65\u5feb\u8dd1<\/a>\u662f\u6700\u8fd1\u4e00\u4e9b\u5e74\u6d41\u4f20\u7684\u6bd4\u8f83\u5e7f\u7684\u4e00\u79cd\u7406\u8bba\u3002\u5927\u81f4\u662f\u8bf4\u8981\u5feb\u901f\u8fed\u4ee3\uff0c\u5728\u5e02\u573a\u91cc\u9762\u5feb\u901f\u6d4b\u8bd5\u60f3\u6cd5\u53ef\u884c\u6027\uff0c\u4e0d\u884c\u5c31\u6362\u65b9\u5411\u91cd\u65b0\u8fed\u4ee3\u3002\n\u8fd9\u4e2a\u4e4d\u4e00\u542c\u4f3c\u4e4e\u6ca1\u95ee\u9898\uff0c\u5929\u4e0b\u6b66\u529f\u552f\u5feb\u4e0d\u7834\u3002\u4f60\u901f\u5ea6\u591f\u5feb\u624d\u80fd\u5728\u522b\u4eba\u8fd8\u6ca1\u6709\u52a8\u4f5c\u7684\u65f6\u5019\u65e9\u65e5\u62a2\u5360\u5e02\u573a\uff0c\u62a2\u5360\u7528\u6237\u3002\u4f46\u662f\u771f\u7684\u662f\u8fd9\u6837\u5417\uff1f\u5b9e\u9645\u4e0a\u4e00\u4e2a\u4ea7\u54c1\u6700\u7ec8\u5982\u4f55\uff0c\u901a\u5e38\u90fd\u4e0d\u662f\u62a2\u5360\u7684\u90a3\u70b9\u5148\u673a\u51b3\u5b9a\u7684\u3002\u8981\u7ecf\u53d7\u4f4f\u5e02\u573a\u8003\u9a8c\uff0c\u7528\u6237\u624d\u4f1a\u771f\u7684\u6709\u9ecf\u6027\u3002\u800c\u4e3a\u4e86\u62a2\u5360\u5148\u673a\u505a\u51fa\u6765\u7684\u529f\u80fd\uff0c\u901a\u5e38\u4f1a\u4e0d\u5b8c\u5584\uff0c\u529f\u80fd\u4e0d\u5b8c\u6574\u7b49\u7b49\uff0c\u5bfc\u81f4\u524d\u671f\u57f9\u517b\u7684\u4e00\u4e9b\u9ecf\u6027\u7528\u6237\u5931\u671b\u800c\u79bb\u5f00\u3002\u53cd\u800c\u53ef\u80fd\u4f60\u7684\u7ade\u4e89\u5bf9\u624b\u8ba4\u771f\u7684\u5b66\u4e60\u5e76 copy \u4e4b\u540e\uff0c\u529f\u80fd\u505a\u7684\u624e\u5b9e\u5b8c\u5584\uff0c\u5438\u5f15\u4e86\u7528\u6237\u3002\n\u5728\u6211\u770b\u6765\uff0c\u5c0f\u6b65\u5feb\u8dd1\u6b63\u662f\u4e00\u4e9b\u65e0\u80fd\u7684\u9886\u5bfc\u4eec\u60f3\u51fa\u6765\u7684\u4e1c\u897f\u3002\u56e0\u4e3a\u4ed6\u4eec\u5fc3\u4e2d\u5bf9\u5168\u5c40\u4e5f\u6ca1\u6709\u5f88\u597d\u7684\u601d\u8def\uff0c\u5e76\u4e0d\u77e5\u9053\u4e0b\u4e00\u6b65\u7684\u6218\u7565\u5e94\u8be5\u5728\u54ea\u4e2a\u65b9\u5411\u3002\u6240\u4ee5\u5c31\u8ba9\u5927\u5bb6\u5c0f\u6b65\u5feb\u8dd1\uff0c\u4e0d\u505c\u8bd5\u9519\u3002\u4f46\u662f\u8fd9\u6837\u65f6\u95f4\u5fc5\u7136\u4f1a\u6d6a\u8d39\u4e00\u4e9b\uff0c\u90a3\u4e48\u5e26\u6765\u7684\u540e\u679c\u5c31\u662f\u5927\u5bb6\u52a0\u73ed\u4e25\u91cd\u3002\n\u6211\u4e4b\u524d\u4f53\u9a8c\u8fc7\u4efb\u4f55\u529f\u80fd\u5b9a\u597d\u4e86\u4eca\u665a\u4e0a\u7ebf\uff0c\u5c31\u5fc5\u987b\u4eca\u665a\u4e0a\u7ebf\u7684\u516c\u53f8\u3002\u5373\u4f7f QA \u5de5\u7a0b\u5e08\u6d4b\u8bd5\u7684\u65f6\u5019\u53d1\u73b0\u4ea7\u54c1\u6587\u6863\u5199\u7684\u4e0d\u6e05\u4e0d\u695a\uff0c\u4e5f\u4e00\u5b9a\u9700\u8981\u4e0a\u7ebf\u3002\u6700\u540e\u7684\u7ed3\u679c\u5c31\u662f\uff0cQA \u52a0\u5f00\u53d1\u5de5\u7a0b\u5e08\u548c\u4ea7\u54c1\u7ecf\u7406\u4e00\u8d77\u5728\u6700\u540e\u4e00\u523b\u6253\u78e8\u529f\u80fd\uff0c\u5927\u5bb6\u4e00\u8d77\u52a0\u73ed\u3002\u800c\u8fd9\u4e2a\u529f\u80fd\u4e0a\u7ebf\u4e4b\u540e\uff0c\u8fd8\u6709\u4e0b\u4e00\u4e2a\u529f\u80fd\u7b49\u7740\uff0c\u7ed3\u679c\u5c31\u662f\u65e0\u7a77\u5c3d\u7684\u52a0\u73ed\u3002\u534a\u5e74\u4e4b\u540e\u56de\u987e\u7684\u65f6\u5019\uff0c\u4f1a\u53d1\u73b0\u5927\u5bb6\u5fd9\u4e4e\u4e86\u5927\u534a\u5e74\uff0c\u4ea7\u54c1\u505a\u7684\u597d\u4e0d\u597d\u4e0d\u4e00\u5b9a\uff0c\u53cd\u6b63\u73ed\u52a0\u4e86\u4e0d\u5c11\uff0c\u6bcf\u4e2a\u4eba\u90fd\u5f88\u5fd9\u788c\u3002<\/p>"},{"title":"Resolve Dependency Issue for a Simple Java Program","link":"https:\/\/wdicc.com\/resolve-dependency-issue-for-a-simple-java-program\/","pubDate":"Sat, 31 Aug 2024 09:58:48 +0800","guid":"https:\/\/wdicc.com\/resolve-dependency-issue-for-a-simple-java-program\/","description":"<p>\u6700\u8fd1\u9700\u8981\u628a\u4e00\u4e2a\u670d\u52a1\u4ece\u5bf9 Envoy \u7684\u4f9d\u8d56\u8fc1\u79fb\u5230 Nginx\u3002\u6211\u4eec\u5927\u90fd\u662f GRPC \u8bf7\u6c42\uff0c\u6240\u4ee5\u9700\u8981\u4ee3\u7801\u5bf9 http2 + ssl \u505a\u652f\u6301\u3002<\/p>\n<p>\nGRPC \u662f\u57fa\u4e8e h2 \u7684\uff0c\u5f53\u4f7f\u7528 Envoy \u7684\u65f6\u5019\uff0c\u4ee3\u7801\u90fd\u662f\u53d1 h2c \u7684\u60c5\u51b5\u7ed9\u672c\u5730\u7684 envoy\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u6ca1\u6709 ssl \u63e1\u624b\u3002\u800c Nginx \u4e0d\u652f\u6301 h2c \u7684\u652f\u6301\uff0c\u5fc5\u987b\u5904\u7406 ssl \u63e1\u624b\u3002\u6211\u4eec\u7684\u670d\u52a1\u90fd\u662f\u5728 Nginx \u540e\u9762\u7684\uff0cNginx \u5c42\u9762\u4e5f\u505a\u4e86\u4f1a\u591a Virtual Host \u7684\u914d\u7f6e\uff0c\u6240\u4ee5\u9700\u8981\u901a\u8fc7 Host \u6765\u505a\u5339\u914d\uff0c\u8fd9\u4e2a Host \u4e5f\u5fc5\u987b\u5f97\u6b63\u786e\uff0c\u8981\u4e0d\u7136\u5c31\u662f\u4f1a\u5339\u914d\u5230 default \u7684 server\uff0c\u65e0\u975e\u662f\u5f97\u5230\u4e00\u4e2a 404\u3002<\/p>"},{"title":"Open Decision Making","link":"https:\/\/wdicc.com\/open-decision-making\/","pubDate":"Sun, 14 Jul 2024 20:12:34 +0800","guid":"https:\/\/wdicc.com\/open-decision-making\/","description":"<p>\u6700\u8fd1\u8bfb\u4e86\u4e00\u7bc7\u6587\u7ae0\uff08\u8bba\u6587\uff09\uff0c\u5173\u4e8e\u5982\u4f55\u901a\u8fc7\u7fa4\u91cc\u667a\u6167\u6765\u505a\u51b3\u7b56\u7684\u3002\u7f51\u5740\u5728\u8fd9\u91cc <a href=\"https:\/\/web.stanford.edu\/~ouster\/cgi-bin\/decisions.php\">https:\/\/web.stanford.edu\/~ouster\/cgi-bin\/decisions.php<\/a>\u3002 \u4f5c\u8005\u662f\u65af\u5766\u798f\u5927\u5b66\u7684\u4e00\u4e2a\u6559\u6388\u3002\u4e0b\u9762\u662f\u6211\u81ea\u5df1\u505a\u7684\u4e00\u4e9b\u7b14\u8bb0\u3002<\/p>\n<p>\n\u6211\u4eec\u4f1a\u9047\u5230\u5f88\u591a\u9700\u8981\u505a\u51b3\u5b9a\u7684\u60c5\u51b5\uff1a<\/p>\n<ul>\n<li>technical decisions about how to build products<\/li>\n<li>personnel decisions about whom to hire<\/li>\n<li>business decisions about how to market and sell our products<\/li>\n<li>strategic decisions about company direction and financing<\/li>\n<li>and many others.<\/li>\n<\/ul>\n<p>\u5bf9\u4e8e\u6709\u4e9b\u51b3\u5b9a\u6bd4\u8f83\u6ee1\u610f\uff0c\u6709\u4e9b\u5bf9\u8fc7\u7a0b\u548c\u7ed3\u679c\u90fd\u4e0d\u6ee1\u610f\u3002\u6240\u4ee5\u4f5c\u8005\u6839\u636e\u81ea\u5df1\u7ecf\u9a8c\u7ed9\u51fa\u6765\u4e86\u4e00\u5957\u6846\u67b6\u6765\u8ba9\u4f60\u6301\u7eed\u9ad8\u6548\u7684\u505a\u51fa\u597d\u7684\u51b3\u5b9a\uff0c\u80fd\u8ba9\u6267\u884c\u7684\u4eba\u613f\u610f\u53bb\u6267\u884c\u4ed6\u3002<\/p>"},{"title":"How to Improve Sleep Quality","link":"https:\/\/wdicc.com\/how-to-improve-sleep-quality\/","pubDate":"Wed, 20 Dec 2023 09:02:00 +0800","guid":"https:\/\/wdicc.com\/how-to-improve-sleep-quality\/","description":"<p>\u5728\u4e4b\u524d\u516c\u53f8\u7684\u65f6\u5019\uff0c\u6ee1\u8111\u5b50\u90fd\u662f\u5de5\u4f5c\uff0c\u6240\u4ee5\u7ecf\u5e38\u6027\u7684\u534a\u591c3\uff0c4\u70b9\u9192\u6765\u7136\u540e\u5c31\u7761\u4e0d\u7740\u4e86\u3002\u9192\u6765\u6bd4\u8f83\u5e38\u505a\u7684\u4e8b\u60c5\u5c31\u662f\u5237\u624b\u673a\uff0c\u5e0c\u671b\u80fd\u628a\u81ea\u5df1\u5237\u7761\u7740\uff0c\u4f46\u662f\u5f80\u5f80\u4e8b\u4e0e\u613f\u8fdd\u3002\u8d8a\u5237\u8d8a\u7761\u4e0d\u7740\u3002\u4e5f\u5c1d\u8bd5\u8fc7\u892a\u9ed1\u7d20\u5565\u7684\uff0c\u8fd8\u522b\u8bf4\u597d\u50cf\u662f\u6709\u70b9\u7528\u3002\u7ecf\u8fc7\u8fd9\u51e0\u5e74\u7684\u6478\u7d22\uff0c\u6211\u611f\u89c9\u6211\u597d\u50cf\u6478\u7d22\u51fa\u6765\u4e00\u70b9\u9053\u9053\u3002<\/p>"},{"title":"Dns Query","link":"https:\/\/wdicc.com\/dns-query\/","pubDate":"Sun, 13 Aug 2023 19:19:34 +0800","guid":"https:\/\/wdicc.com\/dns-query\/","description":"<p>\u603b\u7ed3\u4e00\u4e2a\u524d\u6bb5\u65f6\u95f4\u9047\u5230\u7684\u95ee\u9898\u3002\u5f53\u65f6\u7684\u73b0\u8c61\u662f Nginx \u62a5\u9519\u8bef\u8bf4 dns \u6709\u95ee\u9898\uff0c\u4e0d\u80fd\u6b63\u5e38\u5904\u7406\u4e00\u4e2a\u57df\u540d\uff08\u6211\u4eec\u7684 upstream \u914d\u7f6e\u7684\u662f\u57df\u540d\u3002\uff09<\/p>\n<p>\n\u4f46\u662f\u6211\u4f7f\u7528 dig \u6d4b\u8bd5\u603b\u662f\u53ef\u4ee5\u6210\u529f\u7684\uff0c\u770b\u4e86\u4e0b\u597d\u50cf\u5e94\u8be5\u6709\u7684\u8fdb\u7a0b\u4e5f\u90fd\u5728\uff0c\u5c31\u6709\u70b9\u6478\u4e0d\u7740\u5934\u8111\u3002\u540e\u6765\u53e6\u4e00\u4e2a\u540c\u4e8b\u4f7f\u7528 nslookup \u53ef\u4ee5\u590d\u73b0 dns \u67e5\u8be2\u95ee\u9898\uff0c\u7136\u540e\u53d1\u73b0\u662f\u672c\u673a\u7684\u4e00\u4e2a dns \u670d\u52a1\u5bf9\u4e8e TCP \u7684\u7aef\u53e3\u7684\u76d1\u542c\u6d88\u5931\u4e86\u3002\u73b0\u5728\u95ee\u9898\u548c\u539f\u56e0\u90fd\u77e5\u9053\u4e86\uff0c\u7136\u540e\u6211\u5c31\u5f88\u597d\u5947\u4e3a\u5565\u6211\u81ea\u5df1 dig \u6d4b\u8bd5\u5c31\u6ca1\u6d4b\u8bd5\u51fa\u6765\u95ee\u9898\u5462\uff1f<\/p>"},{"title":"Setup Tproxy on Router","link":"https:\/\/wdicc.com\/setup-tproxy-on-router\/","pubDate":"Sun, 28 May 2023 12:00:46 +0800","guid":"https:\/\/wdicc.com\/setup-tproxy-on-router\/","description":"<p>\u4f7f\u7528\u4e86\u4e00\u6bb5\u65f6\u95f4\u7684 <a href=\"https:\/\/wdicc.com\/setup-policy-route-on-openwrt-x86-with-wireguard\/\">wireguard<\/a> \u4e4b\u540e\uff0c\u4f7f\u7528\u7684\u65f6\u5019\u65f6\u4e0d\u65f6\u603b\u662f\u4f1a\u65ad\u4e00\u4f1a\uff0c\u6211\u611f\u89c9\u4f53\u9a8c\u4e0d\u662f\u5f88\u597d\u3002\u6240\u4ee5\u60f3\u6362\u56de\u4f7f\u7528 v2ray \u4e86\u3002\u5f53\u7136 wireguard \u8fd8\u662f\u7ee7\u7eed\u4f5c\u4e3a\u56fd\u5185\u56de\u5bb6\u4f7f\u7528\u3002\u548c\u56fd\u5916\u7684 tunnel \u5c31\u6362 v2ray \u4e86\u3002<\/p>\n<p>\n\u9996\u5148\u9700\u8981\u505a\u7684\u5c31\u662f\u8c03\u6574\u539f\u6765\u7684\u90a3\u5957\u65b9\u6848\u91cc\u9762\u7684\u51fa\u56fd\u7ebf\u8def\u3002<\/p>\n<ol>\n<li>\u628a ipset\/dnsmasq\/iptables \u76f8\u5173\u7684\u914d\u7f6e\u5220\u6389\u3002<\/li>\n<li>\u628a hotplug \u91cc\u9762\u5173\u4e8e ip rule add fwmark \u7684\u90e8\u5206\u5220\u6389\u3002\u76f8\u5173 route \u8fd8\u662f\u9700\u8981\u7559\u7740\uff0c\u56e0\u4e3a\u6211\u8fd8\u9700\u8981\u5728\u5bb6\u4e4b\u5916\u7684\u7f51\u7edc\u8fde\u56de\u5bb6\u3002<\/li>\n<li>\u5427 wireguard \u91cc\u9762\u548c VPS \u7684\u8fde\u63a5\u4e5f\u53bb\u6389\u3002<\/li>\n<\/ol>\n<p>\u8fd9\u4e00\u987f\u64cd\u4f5c\u4e4b\u540e\uff0c\u51fa\u56fd\u5e94\u8be5\u5c31\u6302\u4e86\u3002\u63a5\u4e0b\u6765\u5c31\u914d\u7f6e\u900f\u660e\u4ee3\u7406\u3002<\/p>"},{"title":"Use Rime Again","link":"https:\/\/wdicc.com\/use-rime-again\/","pubDate":"Thu, 06 Apr 2023 10:04:20 +0800","guid":"https:\/\/wdicc.com\/use-rime-again\/","description":"<p>Updates: \u5df2\u7ecf\u653e\u5f03\u4e86\u3002\u611f\u89c9\u6ca1\u6709\u81ea\u5e26\u8f93\u5165\u6cd5\u6d41\u7545\u3002\nUpdates2: \u5c1d\u8bd5\u4e86 <a href=\"https:\/\/github.com\/Mintimate\/oh-my-rime\">oh-my-rime<\/a> \u4e4b\u540e\uff0c\u6211\u5c31\u4e00\u76f4\u7528\u7740\u4e86\uff0c\u8fd9\u91cc\u9762\u5e94\u8be5\u4e5f\u96c6\u6210\u4e86\u96fe\u51c7\u7684\u4e00\u4e9b\u4e1c\u897f\uff0c\u5df2\u7ecf\u7528\u4e86\u611f\u89c9\u5f97\u6709\u4e00\u5e74\u4e86\uff0c\u611f\u89c9\u975e\u5e38\u597d\u7528\u3002<\/p>\n<p>\n\u4ee5\u524d\u7528\u8fc7\u5f88\u4e45\u7684 rime\uff0c\u4f46\u662f\u540e\u6765\u6362\u4e86\u539f\u751f\u8f93\u5165\u6cd5\uff0c\u56e0\u4e3a\u73b0\u5728\u539f\u751f\u8f93\u5165\u6cd5\u4e5f\u5f88\u597d\u7528\u3002\u6700\u8fd1\u8fd9\u4e2a<a href=\"https:\/\/github.com\/iDvel\/rime-ice\">\u96fe\u51c7\u62fc\u97f3<\/a>\u5f88\u706b\uff0c\u5c31\u53c8\u5c1d\u8bd5\u4e86\u4e00\u4e0b rime\u3002\u8fd9\u4e2a\u786e\u5b9e\u4e5f\u8fd8\u4e0d\u9519\u7684\u6837\u5b50\u3002<\/p>"},{"title":"Howto Build an Old Golang Project","link":"https:\/\/wdicc.com\/howto-build-an-old-golang-project\/","pubDate":"Wed, 05 Apr 2023 17:29:47 +0800","guid":"https:\/\/wdicc.com\/howto-build-an-old-golang-project\/","description":"<p>\u6211\u5f00\u59cb\u4f7f\u7528 golang \u7684\u65f6\u5019\uff0c\u5c31\u5df2\u7ecf\u8fdb\u5165\u4e86 go mod \u65f6\u4ee3\u4e86\u3002\u8fd9\u4e2a\u65f6\u5019\u5c31\u4e0d\u7528\u548c GOPATH \u505a\u6597\u4e89\u4e86\u3002\u6240\u4ee5\u5bf9\u4e8e GOPATH \u65f6\u4ee3\u7684\u9879\u76ee\u6ca1\u5565\u7ecf\u9a8c\u3002<\/p>\n<p>\n\u6700\u8fd1\u9700\u8981 debug \u4e00\u4e2a <a href=\"https:\/\/github.com\/hashicorp\/consul\/tree\/v1.2.4\">consul \u7684\u53e4\u8001\u7248\u672c v1.2.4<\/a>\uff0c\u9879\u76ee\u663e\u793a\u652f\u6301 go 1.10+\u3002\u8fd9\u4e00\u5b9a\u4e0d\u80fd\u662f\u652f\u6301 go mod \u7684\u7248\u672c\u4e86\uff0c\u6211\u67e5\u4e86\u4e00\u4e0b GOPATH \u4f3c\u4e4e\u662f\u5728 1.17 \u6b63\u5f0f deprecate \u7684\u3002\u6240\u4ee5\u4f3c\u4e4e\u7406\u8bba\u4e0a 1.10 - 1.16 \u7684\u7248\u672c\u90fd\u53ef\u4ee5\u3002<\/p>"},{"title":"Make DNS Service in K8s Stable","link":"https:\/\/wdicc.com\/make-dns-service-in-k8s-stable\/","pubDate":"Wed, 23 Nov 2022 19:51:18 +0800","guid":"https:\/\/wdicc.com\/make-dns-service-in-k8s-stable\/","description":"<p>\u6211\u4eec\u7528\u7684 k8s \u662f\u901a\u8fc7 rancher \u7ba1\u7406\u7684\u3002rancher \u53c8\u662f\u4f7f\u7528 rke \u8fd9\u4e2a engine \u6765\u521b\u5efa\u96c6\u7fa4\u7684\u3002\u6211\u4eec\u4f7f\u7528\u7684 CNI \u662f calico\uff0cDNS \u662f coredns\u3002\u6309\u8bf4 DNS \u670d\u52a1\u662f\u6838\u5fc3\u670d\u52a1\uff0c\u5982\u679c\u8fd9\u4e2a\u73a9\u610f\u4e0d\u7a33\u5b9a\u6216\u8005\u6709\u95ee\u9898\uff0c\u90a3\u4e48\u6574\u4e2a\u96c6\u7fa4\u90fd\u4e0d\u5b89\u5b81\u3002coredns \u6309\u8bf4\u633a\u6709\u540d\u6c14\u6765\uff0c\u6309\u8bf4\u6ca1\u95ee\u9898\u3002\u3002\u5427\uff1f<\/p>"},{"title":"Use Emacs in terminal","link":"https:\/\/wdicc.com\/use-emacs-in-terminal\/","pubDate":"Tue, 22 Nov 2022 20:45:39 +0800","guid":"https:\/\/wdicc.com\/use-emacs-in-terminal\/","description":"<p>I usually use the Emacs GUI to manage and edit files for each project. The GUI version looks great and works great.<\/p>\n<p>\nHowever, I have to use Vim in the terminal since it starts much faster than Emacs. I have tried with Emacs daemon in the past, but I met some weird issues when connecting GUI Emacs to the daemon. Some of the function does not work very well.<\/p>\n<p>\nI used the combination of Vim and Emacs for a very long time until yesterday. I realized why I don&#39;t use Emacs daemon in the terminal while using Emacs GUI without the daemon.<\/p>"},{"title":"Use Kubeconform to Validate Manifests Locally","link":"https:\/\/wdicc.com\/use-kubeconform-to-validate-manifests-locally\/","pubDate":"Sat, 29 Oct 2022 17:58:39 +0800","guid":"https:\/\/wdicc.com\/use-kubeconform-to-validate-manifests-locally\/","description":"<p>\n<a href=\"https:\/\/github.com\/yannh\/kubeconform\">kubeconform<\/a> is a tool that allows us to validate Kubernetes manifests.<\/p>\n<div id=\"outline-container-headline-1\" class=\"outline-3\">\n<h3 id=\"headline-1\">\nRetrieve open API specification from Kubernetes\n<\/h3>\n<div id=\"outline-text-headline-1\" class=\"outline-text-3\">\n<p>\nUse this command to retrieve the open API specifications from Kubernetes.<\/p>\n<div class=\"src src-bash\">\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>k get --raw <span style=\"color:#4070a0\">&#39;\/openapi\/v2&#39;<\/span> &gt; \/tmp\/specs.json<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"outline-container-headline-2\" class=\"outline-3\">\n<h3 id=\"headline-2\">\nGenerate JSON schema file\n<\/h3>\n<div id=\"outline-text-headline-2\" class=\"outline-text-3\">\n<p>\nUse <a href=\"https:\/\/github.com\/wd\/openapi2jsonschema\">openapi2jsonschema<\/a> to generate the JSON schemas.<\/p>\n<div class=\"src src-bash\">\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-bash\" data-lang=\"bash\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span>$ python openapi2jsonschema\/command.py -o \/tmp\/json-schemas\/v1.20.11-standalone-strict <span style=\"color:#4070a0;font-weight:bold\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span>--kubernetes --stand-alone <span style=\"color:#4070a0;font-weight:bold\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span>--expanded --strict <span style=\"color:#4070a0;font-weight:bold\">\\\n<\/span><\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span>\/tmp\/specs.json\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span>Downloading schema\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>Parsing schema\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>Generating shared definitions\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span>Generating individual schemas\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span>Processing alertmanager-monitoring-v1\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span>Generating alertmanager-monitoring-v1.json\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span>Processing alertmanagerlist-monitoring-v1\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">13<\/span><span>Generating alertmanagerlist-monitoring-v1.json\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">14<\/span><span>Processing prometheus-monitoring-v1\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">15<\/span><span>Generating prometheus-monitoring-v1.json\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">16<\/span><span>Processing prometheuslist-monitoring-v1\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">17<\/span><span>....\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">18<\/span><span>Processing networksetlist-crd-v1\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">19<\/span><span>Generating networksetlist-crd-v1.json\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">20<\/span><span>Generating schema <span style=\"color:#007020;font-weight:bold\">for<\/span> all types<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n<p>\nThe command will report some errors like the one below which is fine since the tool does not support `customresourcedefinition`.<\/p>"},{"title":"Webhooks in Kubernetes","link":"https:\/\/wdicc.com\/webhooks-in-kubernetes\/","pubDate":"Sun, 28 Aug 2022 09:38:59 +0800","guid":"https:\/\/wdicc.com\/webhooks-in-kubernetes\/","description":"<p>\nKubernetes allows us to hook on API request chain to do some specific checks or modifies.<\/p>\n<div id=\"outline-container-headline-1\" class=\"outline-2\">\n<h2 id=\"headline-1\">\nKubernetes API access control\n<\/h2>\n<div id=\"outline-text-headline-1\" class=\"outline-text-2\">\n<p>\nThere are two types of control. One is to control which user(token, group) is allowed to access, the other one is to control which resource a user could access. The kube-apiserver has two arguments to allow users to define that.<\/p>\n<ul>\n<li>Authentication: <a href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/authentication\/#webhook-token-authentication\">\u2013authentication-token-webhook-config-file<\/a><\/li>\n<li>Authorization: <a href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/webhook\/\">\u2013authorization-webhook-config-file<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div id=\"outline-container-headline-2\" class=\"outline-2\">\n<h2 id=\"headline-2\">\nAdmission webhook\n<\/h2>\n<div id=\"outline-text-headline-2\" class=\"outline-text-2\">\n<p>\n<a href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/extensible-admission-controllers\/#what-are-admission-webhooks\">Here<\/a> is the definition about what admission webhook could do.<\/p>\n<blockquote>\n<p>Admission webhooks are HTTP callbacks that receive admission requests and do something with them. You can define two types of admission webhooks, validating admission webhook and mutating admission webhook. Mutating admission webhooks are invoked first, and can modify objects sent to the API server to enforce custom defaults. After all object modifications are complete, and after the incoming object is validated by the API server, validating admission webhooks are invoked and can reject requests to enforce custom policies.<\/p>"},{"title":"Debugging Iptables","link":"https:\/\/wdicc.com\/debugging-iptables\/","pubDate":"Fri, 15 Apr 2022 14:30:46 +0800","guid":"https:\/\/wdicc.com\/debugging-iptables\/","description":"<p>\niptables \u662f\u4e2a\u5f88\u6709\u7528\u7684\u5de5\u5177\u3002\u53ef\u4ee5\u53ef\u4ee5\u65b9\u4fbf\u7684\u64cd\u7eb5\u5305\u7684\u8d70\u5411\uff0c\u4f5c\u4e3a ops \u4e0d\u53ef\u907f\u514d\u7684\u9700\u8981\u4e86\u89e3\u5982\u4f55 debug \u4e00\u4e9b\u95ee\u9898\u3002<\/p>\n<p>\n\u9996\u5148\u80af\u5b9a\u662f\u9700\u8981\u5bf9 iptables \u7684\u5305\u5728\u5404\u4e2a table \u548c chain \u7684\u8d70\u5411\u9700\u8981\u6709\u4e86\u89e3\u3002\u8fd9\u4e2a\u968f\u4fbf\u4e00\u641c\u5c31\u6709\u5f88\u591a\u7684\u56fe\u7247\uff0c\u4e0d\u8fc7\u5404\u4e2a\u56fe\u53ef\u80fd\u8fd8\u662f\u6709\u4e9b\u8bb8\u5dee\u522b\uff0c\u53e6\u5916\u6709\u4e9b\u7406\u89e3\u8d77\u6765\u6ca1\u90a3\u4e48\u597d\u61c2\u3002\u4e0d\u8fc7\u60f3\u8981\u4e86\u89e3 iptables \u8fd8\u662f\u9700\u8981\u786c\u7740\u5934\u76ae\u53bb\u770b\u770b\u3002<\/p>"},{"title":"\u599e\u599e\u518d\u89c1","link":"https:\/\/wdicc.com\/bye-niuniu\/","pubDate":"Wed, 30 Mar 2022 18:35:22 +0800","guid":"https:\/\/wdicc.com\/bye-niuniu\/","description":"<p>\u599e\u599e\u662f\u6211\u548c\u8001\u5a46\u517b\u7684\u4e00\u53ea\u732b\uff0c\u524d\u51e0\u5929\u6c38\u8fdc\u7684\u79bb\u5f00\u4e86\u6211\u4eec\u3002\u4eab\u5e74\u5c06\u8fd1 19 \u5c81\uff0c\u7b97\u662f\u5927\u9f84\u732b\u4e86\u3002\u5979\u6bd4<a href=\"https:\/\/wdicc.com\/r.i.p-maomao\">\u6bdb\u6bdb<\/a>\u8fd8\u5927\u4e00\u5c81\uff0c\u4e0d\u8fc7\u6bdb\u6bdb\u65e9\u51e0\u5e74\u5c31\u8d70\u4e86\u3002<\/p>\n<p>\n\u599e\u599e\u662f\u5728\u6bdb\u6bdb\u4e4b\u540e\u6765\u5230\u6211\u4eec\u5bb6\u7684\uff0c\u5f53\u65f6\u60f3\u7684\u662f\u518d\u627e\u4e00\u53ea\u7ed9\u6bdb\u6bdb\u4f5c\u4f34\uff0c\u907f\u514d\u4e00\u53ea\u732b\u592a\u5b64\u5355\u3002\u599e\u599e\u662f\u6211\u8001\u5a46\u4ece\u6dd8\u5b9d\u9886\u517b\u7684\uff08\u4f60\u6ca1\u770b\u9519\u5c31\u662f\u6dd8\u5b9d\uff0c\u5f53\u65f6\u6709\u4eba\u4f1a\u628a\u732b\u56fe\u7247\u653e\u4e0a\u53bb\u7b49\u9886\u517b\uff09\u3002\u5f53\u65f6\u770b\u56fe\u7247\u7684\u65f6\u5019\uff0c\u662f\u88ab\u599e\u599e\u5fe7\u90c1\u7684\u773c\u795e\u5438\u5f15\u7684\u3002\u539f\u751f\u5bb6\u5ead\u7279\u522b\u597d\uff0c\u539f\u4e3b\u4eba\u5bb6\u91cc\u6709\u94b1\uff0c\u6211\u8bb0\u5f97\u5e94\u8be5\u662f\u94f6\u884c\u5de5\u4f5c\u7684\u3002\u5f53\u65f6\u5bb6\u91cc\u5f88\u591a\u53ea\u732b\uff0c\u8fd8\u6709\u4e13\u95e8\u7684\u9601\u697c\u9633\u5149\u623f\u7ed9\u732b\u3002\u56e0\u4e3a\u732b\u6709\u70b9\u591a\uff0c\u6240\u4ee5\u60f3\u9001\u4eba\u51e0\u53ea\u3002\u6211\u4eec\u53bb\u9886\u517b\u7684\u65f6\u5019\uff0c\u4eba\u5bb6\u8fd8\u9001\u4e86\u5f88\u591a\u4e1c\u897f\u7ed9\u6211\u4eec\u3002\u4e00\u70b9\u4e5f\u4e0d\u50cf\u73b0\u5728\u7684\u4e00\u4e9b\u9886\u517b\uff0c\u5404\u79cd\u8981\u6c42\u3002<\/p>"},{"title":"Year in Review 2021","link":"https:\/\/wdicc.com\/year-in-review-2021\/","pubDate":"Mon, 03 Jan 2022 15:08:31 +0800","guid":"https:\/\/wdicc.com\/year-in-review-2021\/","description":"<p>2021 \u5e74\u7ed3\u675f\u4e86\uff0c\u7167\u4f8b\u6765\u603b\u7ed3\u4e0b\u3002<\/p>\n<div id=\"outline-container-headline-1\" class=\"outline-3\">\n<h3 id=\"headline-1\">\nFamily\n<\/h3>\n<div id=\"outline-text-headline-1\" class=\"outline-text-3\">\n<p>\u5e7c\u5e7c\u8d8a\u957f\u8d8a\u5927\u4e86\uff0c1 \u5c81\u751f\u65e5\u7684\u65f6\u5019\u5e26\u7740\u53bb\u4e86\u4e00\u8d9f\u6fb3\u95e8\uff0c\u90a3\u662f\u552f\u4e00\u4e00\u4e2a\u7b97\u662f\u51fa\u56fd\u53c8\u4e0d\u9700\u8981\u9694\u79bb\u7684\u5730\u533a\u3002\u4e0d\u8fc7\u5373\u4f7f\u8fd9\u6837\uff0c\u6211\u7684\u5065\u5eb7\u7801\u56de\u6765\u4e4b\u540e\u6709\u51e0\u5929\u663e\u793a\u65e0\u6cd5\u5c55\u793a\u72b6\u6001\u3002\u3002\u7136\u540e\u8054\u7cfb\u5404\u79cd\u90e8\u95e8\u90fd\u65e0\u6cd5\u89e3\u51b3\u3002\u540e\u6765\u81ea\u5df1\u597d\u4e86\u3002\u3002<\/p>"},{"title":"Expand Yourself","link":"https:\/\/wdicc.com\/expand-yourself\/","pubDate":"Sun, 26 Dec 2021 11:09:15 +0800","guid":"https:\/\/wdicc.com\/expand-yourself\/","description":"<p>\u521a\u5f00\u59cb\u5de5\u4f5c\u7684\u65f6\u5019\uff0c\u4e00\u4e2a\u5e38\u89c1\u7684\u8bdd\u9898\u5c31\u662f\u81ea\u5df1\u9047\u5230\u9886\u5bfc\u6216\u8005\u8001\u677f\u597d\u4e0d\u597d\u3002\u4ec0\u4e48\u662f\u597d\u9886\u5bfc\u6216\u8005\u597d\u8001\u677f\u5462\uff1f\u5e73\u65f6\u4ec0\u4e48\u90fd\u4e0d\u7ba1\u4f60\uff0c\u4f60\u60f3\u5e72\u4ec0\u4e48\u5c31\u5e72\u4ec0\u4e48\u8fd9\u79cd\uff1f\u8fd8\u662f\u4f60\u505a\u7684\u4efb\u4f55\u4e8b\u60c5\u90fd\u8fc7\u95ee\uff0c\u7ec6\u8282\u4e5f\u4e0d\u653e\u8fc7\uff0c\u5bf9\u4f60\u505a\u7684\u8fd9\u4e9b\u90fd\u8981\u628a\u63a7\uff1f\u4e5f\u53ef\u80fd\u662f\u4e0a\u9762\u4e24\u79cd\u7684\u7efc\u5408\uff1f<\/p>"},{"title":"Add Monitor Graphs to Openwrt","link":"https:\/\/wdicc.com\/add-monitor-graphs-to-openwrt\/","pubDate":"Sat, 11 Dec 2021 19:38:12 +0800","guid":"https:\/\/wdicc.com\/add-monitor-graphs-to-openwrt\/","description":"<p>\nAccording to the docs here <a href=\"https:\/\/openwrt.org\/docs\/guide-user\/luci\/luci_app_statistics,\">https:\/\/openwrt.org\/docs\/guide-user\/luci\/luci_app_statistics,<\/a> OpenWrt supports us using the Collectd to collect metrics and the Rrdtool draw the graph later.<\/p>\n<div id=\"outline-container-headline-1\" class=\"outline-3\">\n<h3 id=\"headline-1\">\nInstall\n<\/h3>\n<div id=\"outline-text-headline-1\" class=\"outline-text-3\">\n<div class=\"src src-text\">\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">1<\/span><span>opkg update\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">2<\/span><span>opkg install luci-app-statistics<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n<p>\nWe can run the command <code class=\"verbatim\">opkg list | grep collectd-mod<\/code> to see what mertics we can collect. I have installed these modules<\/p>\n<div class=\"src src-text\">\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-text\" data-lang=\"text\"><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 1<\/span><span>collectd-mod-cpu\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 2<\/span><span>collectd-mod-curl\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 3<\/span><span>collectd-mod-dns\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 4<\/span><span>collectd-mod-exec\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 5<\/span><span>collectd-mod-interface\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 6<\/span><span>collectd-mod-iwinfo\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 7<\/span><span>collectd-mod-load\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 8<\/span><span>collectd-mod-memory\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"> 9<\/span><span>collectd-mod-network\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">10<\/span><span>collectd-mod-ping\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">11<\/span><span>collectd-mod-rrdtool\n<\/span><\/span><span style=\"display:flex;\"><span style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\">12<\/span><span>collectd-mod-thermal<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n<p>\nMost of the plugins work out of the box, such as the <code class=\"verbatim\">cpu<\/code> one. And some of them need some configurations on the UI, such as the <code class=\"verbatim\">curl<\/code> one. You have to tell the plugin the URL you want to monitor.<\/p>"},{"title":"DNS Request in Alpine Image","link":"https:\/\/wdicc.com\/dns-request-in-alpine-image\/","pubDate":"Thu, 25 Nov 2021 20:15:39 +0800","guid":"https:\/\/wdicc.com\/dns-request-in-alpine-image\/","description":"<p>\nAlpine \u955c\u50cf\u53ef\u4ee5\u5e26\u6765\u5f88\u5c0f\u7684\u955c\u50cf\u4f53\u79ef\uff0c\u6240\u4ee5\u5927\u5bb6\u6bd4\u8f83\u70ed\u8877\u4e8e\u4f7f\u7528\u8fd9\u4e2a\u955c\u50cf\u505a\u57fa\u7840\u955c\u50cf\u3002\u4f46\u662f\u5b9e\u9645\u4e0a\u56e0\u4e3a\u4e00\u4e9b\u7cfb\u7edf\u5e93\u662f\u9609\u5272\u7248\u672c\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4e00\u4e9b\u610f\u60f3\u4e0d\u5230\u7684\u95ee\u9898\u3002\u4f8b\u5982\u8fd9\u91cc\u60f3\u8bf4\u7684 DNS \u7684\u95ee\u9898\u3002<\/p>\n<p>\n\u6709\u4e00\u4e2a\u540c\u4e8b\u62a5\u544a\u8bf4\u5728\u4ed6\u4eec\u7684\u5e94\u7528\u7684 container \u91cc\u9762\u4f7f\u7528 curl \u8bf7\u6c42\u4e00\u4e2a\u7f51\u5740\u7684\u65f6\u5019\uff0c\u6709\u4e00\u5b9a\u6982\u7387\u4f1a\u6536\u5230 <code class=\"verbatim\">Could not resolve host:<\/code> \u8fd9\u4e2a\u9519\u8bef\uff0c\u4f46\u662f\u4e5f\u6709\u4e00\u5b9a\u6982\u7387\u4f1a\u6210\u529f\u8fd4\u56de 200\u3002\u540c\u65f6\u5728\u540c\u4e00\u4e2a pod \u7684\u4e00\u4e2a sidecar container \u91cc\u9762\u4f7f\u7528 curl \u8bbf\u95ee\u76f8\u540c\u7684\u7f51\u5740\u5c31\u6ca1\u95ee\u9898\uff0c\u603b\u662f\u4f1a\u8fd4\u56de 200\u3002<\/p>"},{"title":"Setup Policy Route on Openwrt X86 With Wireguard","link":"https:\/\/wdicc.com\/setup-policy-route-on-openwrt-x86-with-wireguard\/","pubDate":"Sat, 06 Nov 2021 15:07:32 +0800","guid":"https:\/\/wdicc.com\/setup-policy-route-on-openwrt-x86-with-wireguard\/","description":"<h1 id=\"\u5237\u7cfb\u7edf\">\u5237\u7cfb\u7edf<\/h1>\n<p>\u9009\u62e9 image\uff0c\u6211\u7528\u7684\u662f x86_64 \u7684\u786c\u4ef6\u3002\u5982\u679c\u4f60\u4e0d\u786e\u5b9a\uff0c\u53ef\u4ee5\u9009\u62e9 generic \u7684\u8bd5\u8bd5\u770b\uff0c\u5982\u679c\u4f60\u80fd\u7528 64 \u7684\uff0c\u542f\u52a8\u7684\u65f6\u5019\u63d0\u793a\u4f60\u7528 64 \u4f4d\u7684\u6027\u80fd\u66f4\u597d\u3002<\/p>\n<p>\u7136\u540e\u9700\u8981\u9009\u62e9\u4e0d\u540c\u7684\u5305\uff0c\u4e3b\u8981\u662f\u5728\u4e0b\u9762\u4e24\u4e2a\u91cc\u9762\u9009\u3002<\/p>\n<ul>\n<li>squashfs-combined\uff1a\u7c7b\u4f3c\u4f20\u7edf\u8def\u7531\u5668\uff0c\u53ef\u4ee5\u4efb\u610f\u91cd\u7f6e\u8def\u7531\u5668\u3002\u4f46\u662f\u78c1\u76d8\u5927\u5c0f\u4e5f\u662f\u56fa\u5b9a\u5927\u5c0f\u3002<\/li>\n<li>ext4-combined\uff1a\u78c1\u76d8\u53ef\u4ee5 resize\uff0c\u5982\u679c\u4f60\u6709\u8d85\u8fc7 50G \u7684\u78c1\u76d8\uff0c\u90fd\u60f3\u8981\u5728\u8def\u7531\u5668\u91cc\u9762\u7528\uff0c\u90a3\u5c31\u9009\u8fd9\u4e2a\u3002\u5426\u5219\u4e0a\u9762\u90a3\u4e2a\u66f4\u597d\uff0c\u6bd5\u7adf\u6709\u95ee\u9898\u7684\u65f6\u5019\u91cd\u7f6e\u5f88\u65b9\u4fbf\u3002\u8fd9\u4e2a\u6050\u6015\u53ea\u80fd\u91cd\u65b0\u5237\u7cfb\u7edf\u4e86\uff0c\u9ebb\u70e6\u591a\u4e86\u3002<\/li>\n<\/ul>\n<p>\u51c6\u5907\u4e24\u4e2a u \u76d8\u3002\u5982\u679c\u4f60\u80fd\u6709\u4e00\u4e2a u \u76d8\u53ef\u4ee5\u542f\u52a8\u52a0\u5b58\u653e\u90a3\u4e2a img \u90a3\u5c31\u66f4\u597d\u4e86\u3002<\/p>"},{"title":"An Incomplete List of Skills Senior Engineers Need Beyond Coding","link":"https:\/\/wdicc.com\/an-incomplete-list-of-skills-senior-engineers-need-beyond-coding\/","pubDate":"Sat, 25 Sep 2021 17:37:11 +0800","guid":"https:\/\/wdicc.com\/an-incomplete-list-of-skills-senior-engineers-need-beyond-coding\/","description":"<p>\u770b\u5230\u4e00\u7bc7\u6587\u7ae0\uff0c<a href=\"https:\/\/skamille.medium.com\/an-incomplete-list-of-skills-senior-engineers-need-beyond-coding-8ed4a521b29f\">An incomplete list of skills senior engineers need, beyond coding<\/a>, \u611f\u89c9\u633a\u6709\u610f\u601d\uff0c\u672c\u6765\u60f3\u8981\u7ffb\u8bd1\u7684\uff0c\u7ed3\u679c\u53d1\u73b0\u5df2\u7ecf\u6709\u4eba\u7ffb\u8bd1\u4e86\uff0c\u76f4\u63a5\u8d34\u8fd9\u91cc\u597d\u4e86\u3002\u3002<\/p>\n<p>\n\u7ffb\u8bd1\u53c2\u8003\u4e86: <a href=\"https:\/\/kanchengzxdfgcv.blogspot.com\/2021\/07\/incomplete-list-of-skills-senior.html\">https:\/\/kanchengzxdfgcv.blogspot.com\/2021\/07\/incomplete-list-of-skills-senior.html<\/a><\/p>\n<p>\nHow to run a meeting, and no, being the person who talks the most in the meeting is not the same thing as running it<\/p>\n<p>\n&gt; \u77e5\u9053\u5982\u4f55\u4e3b\u6301\u4f1a\u8bae\u3002\u8981\u6ce8\u610f\u6210\u4e3a\u4f1a\u8bae\u91cc\u9762\u8bf4\u7684\u6700\u591a\u7684\u90a3\u4e2a\u4eba\u5e76\u4e0d\u540c\u4e8e\u4e3b\u6301\u4f1a\u8bae\u3002<\/p>"},{"title":"Limit and Request in Kubernetes","link":"https:\/\/wdicc.com\/limit-and-request-in-kubernetes\/","pubDate":"Sun, 01 Aug 2021 17:28:00 +0800","guid":"https:\/\/wdicc.com\/limit-and-request-in-kubernetes\/","description":"<p>\u7a0b\u5e8f\u8dd1\u5728 K8s \u91cc\u9762\u7684\u65f6\u5019\uff0c\u7279\u522b\u8981\u6ce8\u610f\u7684\u662f\u8bbe\u7f6e\u6b63\u786e\u7684 Request \u548c limit\u3002\u5176\u4e2d Request \u662f guaranteed \u7684\u8d44\u6e90\u662f\u4e0b\u9650\uff0c\u5982\u679c\u8282\u70b9\u4e0a\u9762\u4e0d\u80fd\u7ed9\u4f60\u4fdd\u8bc1\u8fd9\u4e2a\u8d44\u6e90\uff0c\u90a3\u4e48 pod \u662f\u4e0d\u4f1a\u8c03\u5ea6\u4e0a\u53bb\u7684\u3002\u800c Limit \u662f burstable \u8d44\u6e90\uff0c\u8fd9\u90e8\u5206\u8d44\u6e90\u6709\u65f6\u5019\u662f\u4f1a\u9700\u8981\u548c\u8282\u70b9\u4e0a\u9762\u5176\u4ed6\u7a0b\u5e8f\u7ade\u4e89\u7684\u3002\u5bf9\u4e8e CPU \u6765\u8bf4\uff0c\u5982\u679c\u4ea7\u751f\u4e86\u7ade\u4e89\uff0c\u90a3\u4f1a\u9047\u5230\u6bd4\u8f83\u4e25\u91cd\u7684 throttle\uff0c\u5bf9\u4e8e\u5185\u5b58\uff0c\u90a3\u53ef\u80fd\u5c31\u4f1a\u9047\u5230 OOM kill \u4e86\u3002\u8fd9\u4e9b\u5185\u5bb9\u5f88\u5bb9\u6613\u67e5\u5230\u8d44\u6599\uff0c\u4e0d\u591a\u8bf4\u4e86\u3002<\/p>"},{"title":"Local Persistent Volume vs HostPath","link":"https:\/\/wdicc.com\/local-persist-volume-vs-hostpath\/","pubDate":"Sun, 28 Feb 2021 14:52:23 +0800","guid":"https:\/\/wdicc.com\/local-persist-volume-vs-hostpath\/","description":"<p>Kubernetes \u53ef\u4ee5\u7528 Local persistent volume \u6765\u4f7f\u7528\u672c\u673a\u7684\u78c1\u76d8\u3002\u90a3\u548c hostPath volume \u6709\u5565\u533a\u522b\u5462\uff1f <a href=\"https:\/\/kubernetes.io\/blog\/2019\/04\/04\/kubernetes-1.14-local-persistent-volumes-ga\/\">\u8fd9\u7bc7\u6587\u6863<\/a>\u6709\u8bf4\u660e\uff0c\u5927\u81f4\u7ffb\u8bd1\u4e0b\u3002<\/p>\n<p>\n\u4e00\u822c\u6765\u8bf4 Persistent volume \u90fd\u662f\u901a\u8fc7\u8fdc\u7a0b\u6587\u4ef6\u7cfb\u7edf\u5b9e\u73b0\u7684\u3002\u8fdc\u7a0b\u6587\u4ef6\u7cfb\u7edf\u53ef\u4ee5\u4e0d\u4f9d\u8d56 kubernetes \u8282\u70b9\u800c\u4fdd\u5b58\u6570\u636e\u3002\u4f46\u662f\u8fdc\u7a0b\u6587\u4ef6\u7cfb\u7edf\u5f80\u5f80\u4e0d\u80fd\u63d0\u4f9b\u672c\u5730\u6587\u4ef6\u7cfb\u7edf\u4e00\u6837\u7684\u6027\u80fd\u3002<\/p>\n<p>\n\u4e3a\u4e86\u80fd\u66f4\u597d\u7684\u7406\u89e3 Local Persistent Volume\uff0c\u6709\u5fc5\u8981\u628a\u5b83\u548c HostPath volume \u6bd4\u8f83\u4e0b\u3002HostPath volume \u662f\u6302\u8f7d\u4e3b\u673a\u7684\u4e00\u4e2a\u6587\u4ef6\u6216\u8005\u76ee\u5f55\u5230 pod\u3002\u7c7b\u4f3c\u7684 Local Persistent Volume \u662f\u6302\u8f7d\u4e3b\u673a\u7684\u4e00\u5757\u78c1\u76d8\u6216\u8005\u5206\u533a\u5230\u4e00\u4e2a pod\u3002<\/p>"},{"title":"Upgrade Yourself","link":"https:\/\/wdicc.com\/upgrade-yourself\/","pubDate":"Sun, 21 Feb 2021 10:37:37 +0800","guid":"https:\/\/wdicc.com\/upgrade-yourself\/","description":"<p>\u524d\u51e0\u5e74\u4e00\u76f4\u5728\u505a\u7ba1\u7406\uff0c\u4e4b\u524d\u5199\u8fc7\u4e00\u7bc7<a href=\"https:\/\/wdicc.com\/upgrade-myself\/\">\u6210\u957f<\/a>\u3002\u6700\u8fd1\u5f00\u59cb\u505a\u72ec\u7acb\u5f00\u53d1\u8005\uff0c\u611f\u89c9\u53ef\u80fd\u524d\u9762\u5ffd\u89c6\u4e86\u4e00\u4e9b\u4e1c\u897f\u3002\u8fd9\u91cc\u8865\u5145\u603b\u7ed3\u4e0b\u3002<\/p>\n<p>\n\u5bf9\u4e8e\u5404\u65b9\u9762\u80fd\u529b\u90fd\u5f88\u5f3a\u7684\u4eba\u6765\u8bf4\uff0c\u505a\u7ba1\u7406\u4eba\u5458\u53ef\u4ee5\u8ba9\u4ed6\u6210\u5c31\u66f4\u5927\u7684\u4e8b\u60c5\u3002\u6bd5\u7adf\u4e00\u4e2a\u4eba\u7cbe\u529b\u6709\u9650\uff0c\u5373\u4f7f\u5f88\u591a\u65b9\u9762\u90fd\u7cbe\u901a\u4e5f\u6ca1\u6cd5\u8bf4 7x24 \u628a\u8fd9\u4e9b\u65b9\u9762\u7684\u4e8b\u60c5\u90fd\u5b89\u6392\u7684\u59a5\u59a5\u5f53\u5f53\u7684\uff0c\u8fd9\u4e2a\u65f6\u5019\u5fc5\u5b9a\u4f1a\u9700\u8981\u4ee3\u7406\u7ed9\u522b\u4eba\uff0c\u90a3\u5c31\u662f\u7ec4\u5efa\u56e2\u961f\u548c\u505a\u6240\u8c13\u7684\u7ba1\u7406\u4e86\u3002<\/p>"}]}}