云服务器内容精选

  • Namespace 调用创建Namespace接口创建命名空间,并指定使用命名空间的类型。 { "apiVersion": "v1", "kind": "Namespace", "metadata": { "name": "namespace-test", "annotations": { "namespace.kubernetes.io/flavor": "gpu-accelerated" } }, "spec": { "finalizers": [ "kubernetes" ] }} 调用创建Network接口创建网络,与VPC与子网关联。 { "apiVersion": "networking.cci.io/v1beta1", "kind": "Network", "metadata": { "annotations": { "network.alpha.kubernetes.io/default-security-group": "{{security-group-id}}", "network.alpha.kubernetes.io/domain-id": "{{domain-id}}", "network.alpha.kubernetes.io/project-id": "{{project-id}}" }, "name": "test-network" }, "spec": { "availableZone": "{{zone}}", "cidr": "192.168.0.0/24", "attachedVPC": "{{vpc-id}}", "networkID": "{{network-id}}", "networkType": "underlay_neutron", "subnetID": "{{subnet-id}}" }}
  • MySQL 调用创建Deployment接口部署MySQL。 Deployment名称为mysql。 设置Pod的标签为app:mysql。 使用mysql:5.7镜像。 设置容器环境变量MYSQL_ROOT_PASSWORD为“********”,请替换为您设置的密码。 { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "mysql" }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app": "mysql" } }, "template": { "metadata": { "labels": { "app": "mysql" } }, "spec": { "containers": [ { "image": "mysql:5.7", "name": "container-0", "resources": { "limits": { "cpu": "500m", "memory": "1024Mi" }, "requests": { "cpu": "500m", "memory": "1024Mi" } }, "env": [ { "name": "MYSQL_ROOT_PASSWORD", "value": "********" } ] } ], "imagePullSecrets": [ { "name": "imagepull-secret" } ] } } }} 调用创建Service接口创建一个Service,定义1中创建的Pod的访问策略。 Service名称为mysql。 选择标签为app:mysql的Pod,即关联1中创建的Pod。 负载访问端口3306映射到容器的3306端口。 Service的访问类型为ClusterIP,即使用ClusterIP在内部访问Service。 { "apiVersion": "v1", "kind": "Service", "metadata": { "name": "mysql", "labels": { "app": "mysql" } }, "spec": { "selector": { "app": "mysql" }, "ports": [ { "name": "service0", "targetPort": 3306, "port": 3306, "protocol": "TCP" } ], "type": "ClusterIP" }}
  • Wordpress 调用创建Deployment接口部署Wordpress。 Deployment名称为wordpress。 replicas值为2,表示创建2个pod。 设置Pod的标签为app:wordpress。 使用wordpress:latest镜像。 设置容器环境变量WORDPRESS_DB_PASSWORD为“********”,请替换为您设置的密码。此处的密码必须与MySQL的MYSQL_ROOT_PASSWORD一致。 { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "wordpress" }, "spec": { "replicas": 2, "selector": { "matchLabels": { "app": "wordpress" } }, "template": { "metadata": { "labels": { "app": "wordpress" } }, "spec": { "containers": [ { "image": "wordpress:latest", "name": "container-0", "resources": { "limits": { "cpu": "500m", "memory": "1024Mi" }, "requests": { "cpu": "500m", "memory": "1024Mi" } }, "env": [ { "name": "WORDPRESS_DB_PASSWORD", "value": "********" } ] } ], "imagePullSecrets": [ { "name": "imagepull-secret" } ] } } }} 调用创建Service接口创建一个Service,定义1中创建的Pod的访问策略。 Service名称为wordpress。 选择标签为app:wordpress的Pod,即关联1中创建的Pod。 负载访问端口8080映射到容器的80端口,80端口为wordpress镜像的默认对外暴露的端口。 Service的访问类型为ClusterIP,即使用ClusterIP在内部访问Service。 { "apiVersion": "v1", "kind": "Service", "metadata": { "name": "wordpress", "labels": { "app": "wordpress" } }, "spec": { "selector": { "app": "wordpress" }, "ports": [ { "name": "service0", "targetPort": 80, "port": 8080, "protocol": "TCP" } ], "type": "ClusterIP" }} 调用创建Ingress接口创建一个Ingress,定义wordpress的外部访问策略,即关联ELB实例(ELB实例需要与Wordpress负载在同一个VPC内)。 metadata.annotations.kubernetes.io/elb.id:ELB实例的ID。 metadata.annotations.kubernetes.io/elb.ip:ELB实例的IP地址。 metadata.annotations.kubernetes.io/elb.port:ELB实例的端口。 spec.rules:访问服务的规则集合。path列表,每个path(比如:/)都关联一个backend(比如“wordpress:8080”)。backend是一个service:port的组合。Ingress的流量被转发到它所匹配的backend。 这里配置完后,访问ELB的IP:端口的流量就会流向wordpress:8080这个Service,由于Service是关联了wordpress的Pod,所以最终访问的就是1中部署的wordpress容器。 { "apiVersion": "extensions/v1beta1", "kind": "Ingress", "metadata": { "name": "wordpress", "labels": { "app": "wordpress", "isExternal": "true", "zone": "data" }, "annotations": { "kubernetes.io/elb.id": "2d48d034-6046-48db-8bb2-53c67e8148b5", "kubernetes.io/elb.ip": "10.10.10.10", "kubernetes.io/elb.port": "9012" } }, "spec": { "rules": [ { "http": { "paths": [ { "path": "/", "backend": { "serviceName": "wordpress", "servicePort": 8080 } } ] } } ] }}