阿里云kubernets使用记录3-新建项目
阿里云kubernets使用记录3-新建项目
1、我们来新建第一个项目
#在kubectl中执行
vi yhs-test-deployment.yaml
#内容如下
apiVersion: apps/v1
kind: Deployment
metadata:
name: yhs-test
labels:
app: yhs-test
spec:
replicas: 2 #2个pod
selector:
matchLabels:
app: yhs-test
template:
metadata:
labels:
app: yhs-test
spec:
containers:
- name: yhs-test
image: registry.cn-hangzhou.aliyuncs.com/kylin87/docker-webman:8.1-cli-alpine
workingDir: /nas/yhs-test # 设置 Webman 工作目录
command: ["/bin/sh", "-c"]
args: ["php start.php start"] # 启动 Webman
ports:
- containerPort: 8787
- containerPort: 9512
volumeMounts:
- name: yhs-nas
mountPath: /nas # 挂载整个 NAS
volumes:
- name: yhs-nas
persistentVolumeClaim:
claimName: my-nas-pvc # 关联 NAS 的 PVC
#运行文件
kubectl apply -f yhs-test-deployment.yaml
# 查看pod
kubectl get pods -o wide
#进入具体的pod中查看运行情况
kubectl exec -it yhs-test-645ddcc444-rtbnl -- /bin/sh
php start.php status
#如果出现了熟悉的界面,应该就没问题了
2、我们来新建一个svc
vi yhs-test-service.yaml
#内容如下
apiVersion: v1
kind: Service
metadata:
name: yhs-test
namespace: default
spec:
selector:
app: yhs-test
ports:
- name: api
port: 80
targetPort: 8787 # 让 Ingress 访问 8787 端口
- name: internal
port: 9512
targetPort: 9512 # 仅供内部 stream_socket_client 访问
type: ClusterIP # 仅在集群内部
#执行文件
kubectl apply -f yhs-test-service.yaml
#查看svc
kubectl get svc
3、我们来做对外访问
这里我们用到了ingress,默认ack没有安装ingress,我们先去安装。进入的阿里云的ack管理,左侧菜单有市场,选择Helm,然后添加,搜索nginx,一般我们用最新的版本,另外需要注意,上面的命名空间,需要选择kube-system,然后安装就可以了。
#确保ingress安装完毕
kubectl get pod -A
#里面是否能找到nginx-ingress相关的pod
然后我们还需要一个负载均衡来处理外网请求
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx-controller
namespace: kube-system # 修改为 kube-system 命名空间
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet" # 只分配内网 IP
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
selector:
app.kubernetes.io/name: ack-ingress-nginx-v1
app.kubernetes.io/component: controller
执行后,我们的负载均衡,就会自动增加一条记录,并且有一个外网ip
然后我们来添加一个yhs的ingress
vi yhs-test-ingress.yaml
#内容如下
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: yhs-test-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: ack-nginx
rules:
- host: test.yinghuasuan.com # 这里换成你的域名
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: yhs-test
port:
number: 80
#执行
kubectl apply -f yhs-test-ingress.yaml
#查看ingress
kubectl describe ingress yhs-test-ingress
#查看结果中的address,然后去做域名解析
我们也可以看到负载均衡slb里面也会新增一条记录,ip和上面address中一样,一般来说,解析后,就可以访问成功了。
ingress的配置,可以看这里
本文链接:
/archives/1738921326735
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
雕刻时光!
喜欢就支持一下吧