Service服务发现
使用Service
使用Service实验使用的目录病创建后端的httpd-Dy
[root@master servicefile]# vim httpd-dy.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
name: httpd
spec:
replicas: 3
selector:
matchLabels:
app: httpd
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd
ports:
- containerPort: 80
部署Deployment并查看信息
创建httpd-service.yaml文件
[root@master servicefile]# vim httpd-service.yaml
创建service并查看该信息(下kubernetes服务是系统服务)
测试服务可用性,通过curl命令查看服务是否正常
[root@master servicefile]# curl 10.102.124.67:8080
可以删除刚刚创建的服务
创建httpd-expose.yaml,并部署
[root@master servicefile]# vim httpd-expose.yaml
kind: Service
apiVersion: v1
metadata:
name: httpd-svc
spec:
type: NodePort
selector:
app: httpd
ports:
- protocol: TCP
port: 8080
targetPort: 80
nodePort: 30144
使用跳板机浏览器登录,查看node节点ip:端口
使用DNS
创建client.yaml,创建一个客户端pod,测试DNS功能
[root@master servicefile]# vim client.yaml
kind: Pod
apiVersion: v1
metadata:
name: clientpod
spec:
containers:
- name: clientpod
image: busybox:1.28.3
args:
- /bin/sh
- -c
- sleep 30000
创建并进入Pod命令行
[root@master servicefile]# kubectl apply -f client.yaml
使用nslookup命令查看服务域名,wget命令通过域名访问服务
实训任务
创建deployment1
要求: 2 副本,镜像类型 httpd
创建deployment2
要求: 3副本,镜像类型 httpd
创建 service1,service1 后端为 deployment1 和 deployment2 中所有 pod。
创建 service2,service2 后端为 deployment1 中的第一个 pod 和 deployment2 中的第一个pod
为dy的第一个pod和dy2的第一个pod打上标签tz=httpd01
查看容器的详细信息
查看端口信息,可以看到svc2的pod是要求所说的
DeamonSet 与 Job
使用DaemonSet
创建一个Daemonset的yaml文件,并运行
[root@master servicefile]# vim DS-nginx.yaml
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: nginx-daemonset
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
查看daemonset的pod信息位置
删除pod,查看daemonset的自动恢复功能
查看到已经恢复好了
使用Job
创建Job的yaml文件
[root@master servicefile]# vim pi-job.yaml
kind: Job
apiVersion: batch/v1
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
创建Job并查看运行状态,他运行完毕后自动关闭了
查看他的运行结果
使用CronJob
创建CronJob的yaml文件,设置每一分钟运行一次返回一次hello
[root@master servicefile]# vim CJ-hello.yaml
kind: CronJob
apiVersion: batch/v1beta1
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello from the Kubernets cluster-tz123
restartPolicy: OnFailure
运行cronjob,查看运行情况
查看pod的状态已经完成
可以查看到运行cronjob后,每隔一分钟就会创建新的pod的,并输出信息
实训任务
创建一个 DaemonSet
- 包含两个 pod
- 镜像为 nginx