使用HostAliases向Deployment etchosts添加条目

使用HostAliases向Deployment /etc/hosts添加条目

除了默认的/etc/hosts文件,还可以向hosts文件添加其他条目。例如:要将www.dns1.com,www.dns2.com解析为192.168.1.1,192.168.1.2,可以在deployment.spec.template.spec.hostAliases下为Deployment配置主机别名:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: hostaliases-deploy
  name: hostaliases-deploy
  namespace: openeuler
spec:
  replicas: 4
  selector:
    matchLabels:
      app: hostaliases-deploy
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: hostaliases-deploy
    spec:
      hostAliases:
      - ip: 192.168.1.1
        hostnames: 
        - www.dns1.com
      - ip: 192.168.1.2
        hostnames: 
        - www.dns2.com
      containers:
      - image: nginx
        name: hostaliases-deploy
status: {}
kubectl apply -f hostaliases-deploy.yaml
kubectl exec -it -n openeuler hostaliases-deploy-74c85ff464-648rl  -- cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
fe00::0	ip6-mcastprefix
fe00::1	ip6-allnodes
fe00::2	ip6-allrouters
10.244.245.15	cpu-memory-quota-74c85ff464-648rl

# Entries added by HostAliases.
192.168.1.1	www.dns1.com
192.168.1.2	www.dns2.com
LNMP是Linux + Nginx + MySQL + PHP的缩写,是一种常见的Web服务器架构。下面是使用deployment部署LNMP的步骤: 1. 创建一个deployment对象 ``` apiVersion: apps/v1 kind: Deployment metadata: name: lnmp spec: selector: matchLabels: app: lnmp replicas: 2 template: metadata: labels: app: lnmp spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 - name: php-fpm image: php:latest-fpm ports: - containerPort: 9000 ``` 2. 创建一个service对象 ``` apiVersion: v1 kind: Service metadata: name: lnmp spec: selector: app: lnmp ports: - name: http port: 80 targetPort: 80 - name: php port: 9000 targetPort: 9000 ``` 3. 创建一个存储MySQL密码的Secret对象 ``` apiVersion: v1 kind: Secret metadata: name: mysql-secret type: Opaque data: password: base64-encoded-password ``` 4. 创建一个deployment对象来启动MySQL容器 ``` apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql replicas: 1 template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: password ports: - containerPort: 3306 volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pvc ``` 5. 创建一个PersistentVolumeClaim对象来提供持久化存储 ``` apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi ``` 6. 创建一个service对象来暴露MySQL服务 ``` apiVersion: v1 kind: Service metadata: name: mysql spec: selector: app: mysql ports: - name: mysql port: 3306 targetPort: 3306 ``` 以上步骤完成后,LNMP架构就可以在Kubernetes集群中运行了。需要注意的是,以上示例中涉及到的镜像、端口号、存储大小等各项参数需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gswcfl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值