写一个k8s 配置文件
时间: 2023-10-14 13:12:18 浏览: 60
以下是一个简单的 Kubernetes 配置文件示例,用于部署一个名为 my-app 的容器:
```
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: my-app-container
image: nginx:latest
ports:
- containerPort: 80
```
该配置文件指定了一个 Pod,其中包含一个名为 my-app-container 的容器。该容器使用 nginx 最新版本的镜像,并且在容器内部开放了 80 端口。要应用该配置文件,请使用以下命令:
```
kubectl apply -f my-app.yaml
```
上述命令将读取 my-app.yaml 文件中的配置,并根据该配置创建一个 Pod。
相关问题
写一个 K8s 部署HADOOP集群 的配置文件
好的,以下是一个简单的 K8s 部署 Hadoop 集群的配置文件示例:
```yaml
apiVersion: v1
kind: Service
metadata:
name: hadoop-namenode
labels:
app: hadoop
component: namenode
spec:
selector:
app: hadoop
component: namenode
ports:
- name: web
port: 50070
targetPort: 50070
- name: ipc
port: 8020
targetPort: 8020
---
apiVersion: v1
kind: Service
metadata:
name: hadoop-datanode
labels:
app: hadoop
component: datanode
spec:
selector:
app: hadoop
component: datanode
ports:
- name: data
port: 50010
targetPort: 50010
- name: ipc
port: 50020
targetPort: 50020
- name: web
port: 50075
targetPort: 50075
---
apiVersion: v1
kind: Service
metadata:
name: hadoop-resourcemanager
labels:
app: hadoop
component: resourcemanager
spec:
selector:
app: hadoop
component: resourcemanager
ports:
- name: web
port: 8088
targetPort: 8088
---
apiVersion: v1
kind: Service
metadata:
name: hadoop-nodemanager
labels:
app: hadoop
component: nodemanager
spec:
selector:
app: hadoop
component: nodemanager
ports:
- name: web
port: 8042
targetPort: 8042
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: hadoop-namenode
spec:
replicas: 1
serviceName: hadoop-namenode
selector:
matchLabels:
app: hadoop
component: namenode
template:
metadata:
labels:
app: hadoop
component: namenode
spec:
containers:
- name: namenode
image: hadoop:latest
command: ["/entrypoint.sh"]
args: ["hadoop", "namenode"]
ports:
- containerPort: 50070
- containerPort: 8020
volumeMounts:
- name: hadoop-data
mountPath: /data
volumeClaimTemplates:
- metadata:
name: hadoop-data
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: hadoop-datanode
spec:
replicas: 3
serviceName: hadoop-datanode
selector:
matchLabels:
app: hadoop
component: datanode
template:
metadata:
labels:
app: hadoop
component: datanode
spec:
containers:
- name: datanode
image: hadoop:latest
command: ["/entrypoint.sh"]
args: ["hadoop", "datanode"]
ports:
- containerPort: 50010
- containerPort: 50020
- containerPort: 50075
volumeMounts:
- name: hadoop-data
mountPath: /data
volumeClaimTemplates:
- metadata:
name: hadoop-data
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: hadoop-resourcemanager
spec:
replicas: 1
serviceName: hadoop-resourcemanager
selector:
matchLabels:
app: hadoop
component: resourcemanager
template:
metadata:
labels:
app: hadoop
component: resourcemanager
spec:
containers:
- name: resourcemanager
image: hadoop:latest
command: ["/entrypoint.sh"]
args: ["hadoop", "resourcemanager"]
ports:
- containerPort: 8088
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: hadoop-nodemanager
spec:
replicas: 3
serviceName: hadoop-nodemanager
selector:
matchLabels:
app: hadoop
component: nodemanager
template:
metadata:
labels:
app: hadoop
component: nodemanager
spec:
containers:
- name: nodemanager
image: hadoop:latest
command: ["/entrypoint.sh"]
args: ["hadoop", "nodemanager"]
ports:
- containerPort: 8042
```
这个配置文件包含了 4 个 Service 和 4 个 StatefulSet,每个 StatefulSet 对应一个 Hadoop 组件,包括 NameNode、DataNode、ResourceManager 和 NodeManager。在这个配置文件中,我们使用了 StatefulSet 来部署 Hadoop 组件,这样每个组件都会有一个唯一的网络标识符和持久化的存储卷。这个配置文件还包含了一些基本的端口映射,以便我们可以通过 Service 访问 Hadoop 组件的 Web 界面。
写一个k8s dashboard
以下是搭建Kubernetes Dashboard的步骤:
1. 选择版本:根据你的Kubernetes版本选择相应的Dashboard版本。你可以在GitHub上的Kubernetes Dashboard发布页面找到不同版本的Dashboard。
2. 下载yaml:使用wget命令下载相应版本的yaml文件。例如,如果你选择的版本是v2.4.0,可以使用以下命令下载yaml文件:
```shell
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
```
3. 执行yaml:使用kubectl命令执行下载的yaml文件,部署Dashboard。执行以下命令:
```shell
kubectl apply -f recommended.yaml
```
4. 访问Dashboard:使用kubectl命令创建一个代理,以便可以通过本地浏览器访问Dashboard。执行以下命令:
```shell
kubectl proxy
```
然后,在浏览器中访问以下URL:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
5. Token登录:在上一步中打开的页面上选择“Token”选项,然后使用以下命令获取登录令牌:
```shell
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
```
将输出中的令牌复制到登录页面的令牌输入框中,然后点击“Sign In”按钮登录。
6. 配置权限:如果你想为Dashboard配置访问权限,可以创建一个具有适当权限的ServiceAccount,并将其与ClusterRoleBinding关联。这样,你可以根据需要控制用户对Dashboard的访问权限。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)