linux-tutorial/docker/kubernetes.html

127 lines
28 KiB
HTML
Raw Permalink Normal View History

2021-05-13 17:44:54 +08:00
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Kubernetes 应用指南 | LINUX-TUTORIAL</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/linux-tutorial/favicon.ico">
<meta name="description" content="数据库教程">
<link rel="preload" href="/linux-tutorial/assets/css/0.styles.45d9d031.css" as="style"><link rel="preload" href="/linux-tutorial/assets/js/app.79a38eea.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/4.fb6e0f89.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/16.ad565eae.js" as="script"><link rel="preload" href="/linux-tutorial/assets/js/5.cb43ecfb.js" as="script"><link rel="prefetch" href="/linux-tutorial/assets/js/10.7933187b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/11.b9b41530.js"><link rel="prefetch" href="/linux-tutorial/assets/js/12.70a5dba8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/13.857dcc43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/14.5a603a55.js"><link rel="prefetch" href="/linux-tutorial/assets/js/15.d217acb7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/17.d43e9f56.js"><link rel="prefetch" href="/linux-tutorial/assets/js/18.aa00ff43.js"><link rel="prefetch" href="/linux-tutorial/assets/js/19.43ce44b3.js"><link rel="prefetch" href="/linux-tutorial/assets/js/20.5618e1ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/21.1c5a41d7.js"><link rel="prefetch" href="/linux-tutorial/assets/js/22.fbe9fdf1.js"><link rel="prefetch" href="/linux-tutorial/assets/js/23.a4fb0e74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/24.e3a23b69.js"><link rel="prefetch" href="/linux-tutorial/assets/js/25.9896afe9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/26.96164082.js"><link rel="prefetch" href="/linux-tutorial/assets/js/27.391033bb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/28.703f74c2.js"><link rel="prefetch" href="/linux-tutorial/assets/js/29.02a952cb.js"><link rel="prefetch" href="/linux-tutorial/assets/js/30.7e13628f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/31.c4652f75.js"><link rel="prefetch" href="/linux-tutorial/assets/js/32.05d2cbec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/33.3b265df8.js"><link rel="prefetch" href="/linux-tutorial/assets/js/34.26330a03.js"><link rel="prefetch" href="/linux-tutorial/assets/js/35.417d706d.js"><link rel="prefetch" href="/linux-tutorial/assets/js/36.0ed775e0.js"><link rel="prefetch" href="/linux-tutorial/assets/js/37.34430c74.js"><link rel="prefetch" href="/linux-tutorial/assets/js/38.87d5e0ff.js"><link rel="prefetch" href="/linux-tutorial/assets/js/39.7b648b3e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/40.3b7a219e.js"><link rel="prefetch" href="/linux-tutorial/assets/js/41.e727eee9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/42.0134c187.js"><link rel="prefetch" href="/linux-tutorial/assets/js/43.175e982f.js"><link rel="prefetch" href="/linux-tutorial/assets/js/44.72d90888.js"><link rel="prefetch" href="/linux-tutorial/assets/js/45.d49955bd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/46.a9c290ec.js"><link rel="prefetch" href="/linux-tutorial/assets/js/47.cc639f04.js"><link rel="prefetch" href="/linux-tutorial/assets/js/48.98c78321.js"><link rel="prefetch" href="/linux-tutorial/assets/js/49.a7c3afed.js"><link rel="prefetch" href="/linux-tutorial/assets/js/50.22d8c542.js"><link rel="prefetch" href="/linux-tutorial/assets/js/51.28055fcd.js"><link rel="prefetch" href="/linux-tutorial/assets/js/52.f8103df5.js"><link rel="prefetch" href="/linux-tutorial/assets/js/53.76541550.js"><link rel="prefetch" href="/linux-tutorial/assets/js/54.e78d2776.js"><link rel="prefetch" href="/linux-tutorial/assets/js/55.3ce3079c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/56.832958c9.js"><link rel="prefetch" href="/linux-tutorial/assets/js/57.961ce896.js"><link rel="prefetch" href="/linux-tutorial/assets/js/58.6d6fbc82.js"><link rel="prefetch" href="/linux-tutorial/assets/js/59.d5e48112.js"><link rel="prefetch" href="/linux-tutorial/assets/js/6.c8f4721c.js"><link rel="prefetch" href="/linux-tutorial/assets/js/60.7927b23b.js"><link rel="prefetch" href="/linux-tutorial/assets/js/61.ee233f24.js"><link rel="prefetch" href="/linux-tutorial/assets/js/62.6ba50cc7.js"><link rel="prefetch" href="/l
<link rel="stylesheet" href="/linux-tutorial/assets/css/0.styles.45d9d031.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/linux-tutorial/" class="home-link router-link-active"><img src="images/dunwu-logo-100.png" alt="LINUX-TUTORIAL" class="logo"> <span class="site-name can-hide">LINUX-TUTORIAL</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link router-link-active">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/linux-tutorial/linux/cli/" class="nav-link">
Linux 命令
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/ops/" class="nav-link">
Linux 运维
</a></div><div class="nav-item"><a href="/linux-tutorial/linux/soft/" class="nav-link">
Linux 软件运维
</a></div><div class="nav-item"><a href="/linux-tutorial/docker/" class="nav-link router-link-active">
Docker 教程
</a></div><div class="nav-item"><a href="https://github.com/dunwu/blog" target="_blank" rel="noopener noreferrer" class="nav-link external">
🎯 博客
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <a href="https://github.com/dunwu/linux-tutorial" target="_blank" rel="noopener noreferrer" class="repo-link">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Kubernetes 应用指南</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/linux-tutorial/docker/kubernetes.html#一、k8s-简介" class="sidebar-link">一、K8S 简介</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#k8s-功能" class="sidebar-link">K8S 功能</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#k8s-核心组件" class="sidebar-link">K8S 核心组件</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#k8s-核心概念" class="sidebar-link">K8S 核心概念</a></li></ul></li><li><a href="/linux-tutorial/docker/kubernetes.html#二、k8s-命令" class="sidebar-link">二、K8S 命令</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#客户端配置" class="sidebar-link">客户端配置</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#查找资源" class="sidebar-link">查找资源</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#资源管理" class="sidebar-link">资源管理</a></li><li class="sidebar-sub-header"><a href="/linux-tutorial/docker/kubernetes.html#监控和日志" class="sidebar-link">监控和日志</a></li></ul></li><li><a href="/linux-tutorial/docker/kubernetes.html#参考资料" class="sidebar-link">参考资料</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="kubernetes-应用指南"><a href="#kubernetes-应用指南" class="header-anchor">#</a> Kubernetes 应用指南</h1> <blockquote><p>Kubernetes 是谷歌开源的容器集群管理系统 是用于自动部署,扩展和管理 Docker 应用程序的开源系统,简称 K8S。</p> <p>关键词: <code>docker</code></p></blockquote> <ul><li><a href="#%E4%B8%80k8s-%E7%AE%80%E4%BB%8B">一、K8S 简介</a></li> <li><a href="#%E4%BA%8Ck8s-%E5%91%BD%E4%BB%A4">二、K8S 命令</a></li> <li><a href="#%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99">参考资料</a></li></ul> <h2 id="一、k8s-简介"><a href="#一、k8s-简介" class="header-anchor">#</a> 一、K8S 简介</h2> <p>K8S 主控组件Master 包含三个进程,都运行在集群中的某个节上,通常这个节点被称为 master 节点。这些进程包括:<code>kube-apiserver</code><code>kube-controller-manager</code><code>kube-scheduler</code></p> <p>集群中的每个非 master 节点都运行两个进程:</p> <ul><li>kubelet和 master 节点进行通信。</li> <li>kube-proxy一种网络代理将 Kubernetes 的网络服务代理到每个节点上。</li></ul> <h3 id="k8s-功能"><a href="#k8s-功能" class="header-anchor">#</a> K8S 功能</h3> <ul><li>基于容器的应用部署、维护和滚动升级</li> <li>负载均衡和服务发现</li> <li>跨机器和跨地区的集群调度</li> <li>自动伸缩</li> <li>无状态服务和有状态服务</li> <li>广泛的 Volume 支持</li> <li>插件机制保证扩展性</li></ul> <h3 id="k8s-核心组件"><a href="#k8s-核心组件" class="header-anchor">#</a> K8S 核心组件</h3> <p>Kubernetes 主要由以下几个核心组件组成:</p> <ul><li>etcd 保存了整个集群的状态;</li> <li>apiserver 提供了资源操作的唯一入口并提供认证、授权<E68E88>
<ul><li>等式,如 <code>app=nginx</code><code>env!=production</code></li> <li>集合,如 <code>env in (production, qa)</code></li> <li>多个 label它们之间是 AND 关系),如 <code>app=nginx,env=test</code></li></ul></li> <li><code>Annotations</code> - Annotations 是 key/value 形式附加于对象的注解。不同于 Labels 用于标志和选择对象Annotations 则是用来记录一些附加信息,用来辅助应用部署、安全策略以及调度策略等。比如 deployment 使用 annotations 来记录 rolling update 的状态。</li></ul> <h2 id="二、k8s-命令"><a href="#二、k8s-命令" class="header-anchor">#</a> 二、K8S 命令</h2> <h3 id="客户端配置"><a href="#客户端配置" class="header-anchor">#</a> 客户端配置</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># Setup autocomplete in bash; bash-completion package should be installed first</span>
<span class="token builtin class-name">source</span> <span class="token operator">&lt;</span><span class="token punctuation">(</span>kubectl completion <span class="token function">bash</span><span class="token punctuation">)</span>
<span class="token comment"># View Kubernetes config</span>
kubectl config view
<span class="token comment"># View specific config items by json path</span>
kubectl config view -o <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.users[?(@.name == &quot;k8s&quot;)].user.password}'</span>
<span class="token comment"># Set credentials for foo.kuberntes.com</span>
kubectl config set-credentials kubeuser/foo.kubernetes.com --username<span class="token operator">=</span>kubeuser --password<span class="token operator">=</span>kubepassword
</code></pre></div><h3 id="查找资源"><a href="#查找资源" class="header-anchor">#</a> 查找资源</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># List all services in the namespace</span>
kubectl get services
<span class="token comment"># List all pods in all namespaces in wide format</span>
kubectl get pods -o wide --all-namespaces
<span class="token comment"># List all pods in json (or yaml) format</span>
kubectl get pods -o json
<span class="token comment"># Describe resource details (node, pod, svc)</span>
kubectl describe nodes my-node
<span class="token comment"># List services sorted by name</span>
kubectl get services --sort-by<span class="token operator">=</span>.metadata.name
<span class="token comment"># List pods sorted by restart count</span>
kubectl get pods --sort-by<span class="token operator">=</span><span class="token string">'.status.containerStatuses[0].restartCount'</span>
<span class="token comment"># Rolling update pods for frontend-v1</span>
kubectl rolling-update frontend-v1 -f frontend-v2.json
<span class="token comment"># Scale a replicaset named 'foo' to 3</span>
kubectl scale --replicas<span class="token operator">=</span><span class="token number">3</span> rs/foo
<span class="token comment"># Scale a resource specified in &quot;foo.yaml&quot; to 3</span>
kubectl scale --replicas<span class="token operator">=</span><span class="token number">3</span> -f foo.yaml
<span class="token comment"># Execute a command in every pod / replica</span>
<span class="token keyword">for</span> <span class="token for-or-select variable">i</span> <span class="token keyword">in</span> <span class="token number">0</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token keyword">do</span> kubectl <span class="token builtin class-name">exec</span> foo-<span class="token variable">$i</span> -- <span class="token function">sh</span> -c <span class="token string">'echo <span class="token variable"><span class="token variable">$(</span><span class="token function">hostname</span><span class="token variable">)</span></span> &gt; /usr/share/nginx/html/index.html'</span><span class="token punctuation">;</span> <span class="token keyword">done</span>
</code></pre></div><h3 id="资源管理"><a href="#资源管理" class="header-anchor">#</a> 资源管理</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># Get documentation for pod or service</span>
kubectl explain pods,svc
<span class="token comment"># Create resource(s) like pods, services or daemonsets</span>
kubectl create -f ./my-manifest.yaml
<span class="token comment"># Apply a configuration to a resource</span>
kubectl apply -f ./my-manifest.yaml
<span class="token comment"># Start a single instance of Nginx</span>
kubectl run nginx --image<span class="token operator">=</span>nginx
<span class="token comment"># Create a secret with several keys</span>
<span class="token function">cat</span> <span class="token operator">&lt;&lt;</span><span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> kubectl create -f -</span>
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">echo</span> <span class="token string">&quot;s33msi4&quot;</span> <span class="token operator">|</span> base64<span class="token variable">)</span></span>
username: <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">echo</span> <span class="token string">&quot;jane&quot;</span><span class="token operator">|</span> base64<span class="token variable">)</span></span>
EOF</span>
<span class="token comment"># Delete a resource</span>
kubectl delete -f ./my-manifest.yaml
</code></pre></div><h3 id="监控和日志"><a href="#监控和日志" class="header-anchor">#</a> 监控和日志</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># Deploy Heapster from Github repository</span>
kubectl create -f deploy/kube-config/standalone/
<span class="token comment"># Show metrics for nodes</span>
kubectl <span class="token function">top</span> node
<span class="token comment"># Show metrics for pods</span>
kubectl <span class="token function">top</span> pod
<span class="token comment"># Show metrics for a given pod and its containers</span>
kubectl <span class="token function">top</span> pod pod_name --containers
<span class="token comment"># Dump pod logs (stdout)</span>
kubectl logs pod_name
<span class="token comment"># Stream pod container logs (stdout, multi-container case)</span>
kubectl logs -f pod_name -c my-container
</code></pre></div><h2 id="参考资料"><a href="#参考资料" class="header-anchor">#</a> 参考资料</h2> <ul><li><strong>官方</strong> <ul><li><a href="https://github.com/kubernetes/kubernetes" target="_blank" rel="noopener noreferrer">Kubernetes Github<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li> <li><a href="https://kubernetes.io/" target="_blank" rel="noopener noreferrer">Kubernetes 官网<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li> <li><strong>教程</strong> <ul><li><a href="https://jimmysong.io/kubernetes-handbook/" target="_blank" rel="noopener noreferrer">Kubernetes 中文指南<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li> <li><a href="https://github.com/rootsongjc/kubernetes-handbook" target="_blank" rel="noopener noreferrer">kubernetes-handbook<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li> <li><strong>文章</strong> <ul><li>https://github.com/LeCoupa/awesome-cheatsheets/blob/master/tools/kubernetes.sh</li></ul></li> <li><strong>更多资源</strong> <ul><li><a href="https://github.com/ramitsurana/awesome-kubernetes" target="_blank" rel="noopener noreferrer">awesome-kubernetes<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li></ul></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/dunwu/linux-tutorial/edit/master/docs/docker/kubernetes.md" target="_blank" rel="noopener noreferrer">帮助我们改善此页面!</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2
<script src="/linux-tutorial/assets/js/app.79a38eea.js" defer></script><script src="/linux-tutorial/assets/js/4.fb6e0f89.js" defer></script><script src="/linux-tutorial/assets/js/16.ad565eae.js" defer></script><script src="/linux-tutorial/assets/js/5.cb43ecfb.js" defer></script>
</body>
</html>