任务一
运行结果:
任务二
hostname_server.yaml
apiVersion: v1
kind: Pod
metadata:
name: hostname-server
spec:
containers:
- name: hostname-server
image: huajuan6848/hostname_server:0.0.1
ports:
- containerPort: 8000
运行结果:
任务三
打标签运行步骤:
先通过 kubectl get nodes --show-labels
指令,查看到均无 network
标签
再通过以下指令创建标签
kubectl label node minikube network=good
kubectl label node minikube-m02 network=bad
kubectl label node minikube-m03 network=good
最后再通过 kubectl get nodes --show-labels
指令,查看到 network
标签添加完成
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: hostname-server
spec:
replicas: 2
selector:
matchLabels:
app: hostname-server
template:
metadata:
labels:
app: hostname-server
spec:
nodeSelector:
network: good
containers:
- name: hostname-server
image: huajuan6848/hostname_server:0.0.1
ports:
- containerPort: 8000
service.yaml
apiVersion: v1
kind: Service
metadata:
name: hostname-server
spec:
selector:
app: hostname-server
ports:
- protocol: TCP
port: 8000
targetPort: 8000
type: NodePort
运行结果:
任务四
daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
spec:
selector:
matchLabels:
app: node-exporter
template:
metadata:
labels:
app: node-exporter
spec:
containers:
- name: node-exporter
image: prom/node-exporter:v1.7.0
ports:
- containerPort: 9100
args:
- --path.procfs
- /host/proc
- --path.sysfs
- /host/sys
- --collector.filesystem.ignored-mount-points
- ^/(sys|proc|dev|host|etc)($|/)
volumeMounts:
- name: proc
mountPath: /host/proc
readOnly: true
- name: sys
mountPath: /host/sys
readOnly: true
- name: root
mountPath: /rootfs
readOnly: true
volumes:
- name: proc
hostPath:
path: /proc
- name: sys
hostPath:
path: /sys
- name: root
hostPath:
path: /
运行结果:
任务五
通过 kubectl scale deployment hostname-server --replicas=4
指令扩容;也可以直接将 deployment.yaml
中的 replicas
改为
4
4
4。
运行结果: