资源清单配置
pod yaml
#暴露端口可以进行访问
[root@master ~]# kubectl create ns xialuo
namespace/xialuo created
[root@master ~]# vim pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: myweb
namespace: xialuo #指定名称空间,事先创建过的 命令:kubectl create ns xialuo
labels:
app: myweb
spec:
containers:
- name: web1
image: xialuo1/httpd:v0.1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
hostPort: 8080 #这里必须填写有效端口
[root@master ~]# kubectl create -f pod.yaml
pod/myweb created
[root@master ~]# kubectl get pods -n xialuo -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myweb 1/1 Running 0 109s 10.244.2.14 node2 <none> <none>
deployment yaml
[root@master ~]# vim deploy.yaml
apiVersion: apps/v1 #api版本
kind: Deployment #资源类型
metadata: #元数据定义
name: nginx-deploy #名称
namespace: default #名称空间
labels: #标签
app: nginx-web
spec: #deployment定义
replicas: 3 #定义2个副本
selector: #标签选择器,匹配pod的标签
matchLabels:
app: nginx-web
template: #pod模板定义
metadata:
name: nginx1
namespace: default
labels: #这里的标签必须和标签选择器的一致
app: nginx-web
spec: #pod内的容器定义
containers:
- name: web
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80 #暴露IP
[root@master ~]# kubectl create -f deploy.yaml
deployment.apps/nginx-deploy created
[root@master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS
GATES
nginx-deploy-69b65f949b-8zbnn 1/1 Running 0 53s 10.244.2.16 node2 <none> <none>
nginx-deploy-69b65f949b-h25r6 1/1 Running 0 53s 10.244.2.15 node2 <none> <none>
nginx-deploy-69b65f949b-l74qs 1/1 Running 0 53s 10.244.2.17 node2 <none> <none>
暴露端口到主机
[root@master ~]# kubectl expose deployment nginx-deploy --port=80 --type=NodePort
service/nginx-deploy exposed
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
deploy-nginx ClusterIP 10.96.65.25 <none> 80/TCP 2d20h
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d20h
nginx NodePort 10.111.153.17 <none> 80:31775/TCP 3d20h
nginx-deploy NodePort 10.97.78.4 <none> 80:31494/TCP 18s
service yaml
[root@master ~]# vim svc.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
namespace: default
spec:
selector:
app: nginx-web
type: NodePort
ports:
- nodePort: 30008
port: 80
targetPort: 80
[root@master ~]# kubectl create -f svc.yaml
service/nginx-svc created
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d20h
nginx-svc NodePort 10.105.126.83 <none> 80:30008/TCP 3s
[root@master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deploy-69b65f949b-8zbnn 1/1 Running 0 11m 10.244.2.16 node2 <none> <none>
nginx-deploy-69b65f949b-h25r6 1/1 Running 0 11m 10.244.2.15 node2 <none> <none>
nginx-deploy-69b65f949b-l74qs 1/1 Running 0 11m 10.244.2.17 node2 <none> <none>
查看endpoint资源端点列表
[root@master ~]# kubectl get endpoints
NAME ENDPOINTS AGE
kubernetes 192.168.149.137:6443 3d20h
nginx-svc 10.244.2.15:80,10.244.2.16:80,10.244.2.17:80 2m17s