在进行"尚硅谷二进制部署k8s"的过程中,首先我们需要明确整个过程的步骤,然后逐步指导小白开发者执行每一步操作。下面将会详细介绍这个过程。

| 步骤 | 操作 |
|------|------------------------------------------------|
| 1 | 下载Kubernetes二进制文件 |
| 2 | 部署etcd |
| 3 | 部署基础组件kube-apiserver、kube-controller-manager、kube-scheduler |
| 4 | 部署kubelet和kube-proxy |
| 5 | 部署kube-dns |
| 6 | 部署Dashboard和Heapster |

### 1. 下载Kubernetes二进制文件

首先,从Kubernetes官方仓库下载最新版本的Kubernetes的二进制文件,然后解压缩到对应的目录。操作示例如下:

```bash
wget https://dl.k8s.io/v1.21.1/kubernetes-server-linux-amd64.tar.gz
tar -xzvf kubernetes-server-linux-amd64.tar.gz
```

### 2. 部署etcd

部署etcd需要配置etcd.yaml文件,然后启动etcd服务。示例代码如下:

```yaml
# etcd.yaml
apiVersion: v1
kind: Pod
metadata:
name: etcd
namespace: kube-system
spec:
hostNetwork: true
containers:
- name: etcd
image: gcr.io/google_containers/etcd:2.2.1
command:
- /usr/local/bin/etcd
- --listen-client-urls=http://127.0.0.1:2379
- --advertise-client-urls=http://127.0.0.1:2379
- --data-dir=/var/etcd/data
```

```bash
kubectl create -f etcd.yaml
```

### 3. 部署基础组件

部署基础组件包括kube-apiserver、kube-controller-manager、kube-scheduler,需要分别创建对应的Deployment文件并启动这些组件。示例代码如下:

```yaml
# kube-apiserver.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kube-apiserver
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
component: kube-apiserver
template:
metadata:
labels:
component: kube-apiserver
spec:
containers:
- name: kube-apiserver
image: gcr.io/google_containers/kube-apiserver:v1.21.1
command:
- kube-apiserver
- --advertise-address=127.0.0.1
- --etcd-servers=http://127.0.0.1:2379
```

```bash
kubectl create -f kube-apiserver.yaml
```

### 4. 部署kubelet和kube-proxy

部署kubelet和kube-proxy也需要创建对应的Deployment文件并启动这些组件。示例代码如下:

```yaml
# kubelet.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kubelet
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
component: kubelet
template:
metadata:
labels:
component: kubelet
spec:
containers:
- name: kubelet
image: gcr.io/google_containers/kubelet:v1.21.1
command:
- kubelet
- --address=0.0.0.0
- --port=10250
```

```bash
kubectl create -f kubelet.yaml
```

### 5. 部署kube-dns

部署kube-dns需要创建kube-dns.yaml文件,然后启动kube-dns服务。示例代码如下:

```yaml
# kube-dns.yaml
apiVersion: v1
kind: Pod
metadata:
name: kube-dns
namespace: kube-system
spec:
containers:
- name: kubedns
image: gcr.io/google_containers/kubedns-amd64:1.7
```

```bash
kubectl create -f kube-dns.yaml
```

### 6. 部署Dashboard和Heapster

最后,部署Dashboard和Heapster也需要创建对应的文件并启动这些服务。

通过以上步骤,我们可以完成"尚硅谷二进制部署k8s"的过程。希望通过这篇文章,新手开发者可以更加清晰地了解和掌握这一过程。