1、 创建namespace.yaml文件
[root@k8s-master1 ~]# cat namespase.yaml
apiVersion: v1 #类型为Namespace
kind: Namespace #类型为Namespace
metadata:
name: ssx-nginx-ns #命名空间名称
labels:
name: lb-ssx-nginx-ns
然后应用到k8s中
kubectl create -f namespace.yaml
2、 创建deployment.yaml文件
[root@k8s-master1 ~]# cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx #为该Deployment设置key为app,value为nginx的标签
name: ssx-nginx-dm
namespace: ssx-nginx-ns
spec:
replicas: 2 #副本数量
selector: #标签选择器,与上面的标签共同作用
matchLabels: #选择包含标签app:nginx的资源
app: nginx
template: #这是选择或创建的Pod的模板
metadata: #Pod的元数据
labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod
app: nginx
spec: #期望Pod实现的功能(即在pod中部署)
containers: #生成container,与docker中的container是同一种
- name: ssx-nginx-c
image: nginx:latest #使用镜像nginx: 创建container,该container默认80端口可访问
ports:
- containerPort: 80 # 开启本容器的80端口可访问
volumeMounts: #挂载持久存储卷
- name: volume #挂载设备的名字,与volumes[*].name 需要对应
mountPath: /usr/share/nginx/html #挂载到容器的某个路径下
volumes:
- name: volume #和上面保持一致 这是本地的文件路径,上面是容器内部的路径
hostPath:
path: /opt/web/dist #此路径需要实现创建
然后应用到k8s中
kubectl create -f deployment.yaml
3、创建service.yaml文件
[root@k8s-master1 ~]# cat service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx
name: ssx-nginx-sv
namespace: ssx-nginx-ns
spec:
ports:
- port: 80 #写nginx本身端口
name: ssx-nginx-last
protocol: TCP
targetPort: 80 # 容器nginx对外开放的端口 上面的dm已经指定了
nodePort: 31090 #外网访问的端口
selector:
app: nginx #选择包含标签app:nginx的资源
type: NodePort
然后应用到k8s中
kubectl create -f ./service.yaml
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75677.html