目录
一:部署工作负载
前面我们已经使用dockerfile制作出镜像,接下来我们将利用这个自制的nginxtest镜像部署pod以及暴露服务,并分析pod之间的网络通信和service的工作原理。
1、部署pod并发布
[root@k8s-master ~]# cat nginxtest-dep.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginxtest-deployment
spec:
selector:
matchLabels:
app: nginxtest
replicas: 2
template:
metadata:
labels:
app: nginxtest
spec:
containers:
- name: nginxtest
image: nginxtest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
resources:
requests:
memory: 50Mi
cpu: "100m"
limits:
memory: 200Mi
cpu: "2"
需要注意的是imagePullPolicy: IfNotPresent,因为是本地的镜像,所以必须要指明拉取位置,不然总是会报ImagePullBackOff。
创建pod
[root@k8s-master ~]# kubectl apply -f nginx-dep.yml
查看部署
[root@k8s-master ~]# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 2/2 2 2 10d
nginxtest-deployment 2/2 2 2 141m
[root@k8s-master ~]# cat nginxtest-svc.yml
apiVersion: v1
kind: Service
metadata:
name: nginxtest-service
spec:
selector:
app: nginxtest
ports:
- protocol: TCP
port: 88
targetPort: 80
nodePort: 30088
type: NodePort
port-service的端口 targetport-pod端口 nodeport-主机端口
启动
[root@k8s