CCE.Service
Element Description
The CCE.Service element is used to deploy a Kubernetes resource object Service at the PaaS layer of HUAWEI CLOUD. By creating such an object, you can provide a unified entry address for a group of containerized applications with the same functions, and distribute requests in load balancing mode to backend containerized applications.
Element Properties
Property |
Required |
Descripiton |
---|---|---|
k8sManifest |
Yes |
Description file of the Kubernetes service Type: dict Value Description: Supports customization. You are not advised to change the name and labels under the metadata during an update. Suggestion: For details, see the Kubernetes official guide at https://kubernetes.io/docs/concepts/services-networking/service. |
clusterId |
No |
ID of the cluster to which the resource belongs Type: HuaweiCloud.CCE.Cluster.Id Value Description: Indicates the ID of an existing or new container cluster. Value Constraint: The value must satisfy the UUID rule and support a maximum of 64 characters. Suggestion: Connect to the cluster object and use the get_reference function to obtain the cluster ID. Leave it blank, and specify the ID on the AOS console when creating a stack. Enter the cluster ID. Specifically, log in to the CCE console, and choose Resource Management > Clusters. Click the target cluster, and you can then obtain its cluster ID. |
namespace |
No |
Namespace of the cluster to which the resource belongs Type: string Value Description: Must be a valid namespace in the cluster, for example, default. If k8sManifest is defined, the namespace specified here will be overwritten by the namespace specified in k8sManifest (k8sManifest > metadata > namespace). Value Constraint: The value must start with a letter. Only lowercase letters, digits, and hyphens (-) are allowed. Suggestion: Customize the value based on the existing cluster or the cluster to be created. |
Relationships Between Elements
Description |
Target |
---|---|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
DependsOn |
|
ContainedIn |
|
Connected |
Relationship between CCE.Service and ULB.LoadBalancer:
- When compiling the service.yaml file, add kubernetes.io/elb.class: union to the annotations section in the metadata.
- loadBalancerIP in spec must be set to the private IP address of ULB, which can be obtained using get_attribute, for example, loadBalancerIP: {get_attribute:[ULB.LoadBalancer element name, vip_address]}.
For details about how to create a service using a load balancer, see LoadBalancer.
Return Value
Property |
Type |
Description |
---|---|---|
IP |
Array |
ExternalIPs or LoadBalancerIP Value of a k8s service |
Port |
Array |
NodePort Value of a k8s service |
refName |
string |
Name of a k8s service |
Blueprint Example
tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: labels: description: Application instance label, which must be the same as that specified by parameter selector label: Workload default: test deploymentName: description: Workload name label: Workload default: deployment-test image: description: Application image address label: Workload ingressName: description: Ingress name label: Ingress information default: ingress-test host: description: Domain name information about the ingress host label: Ingress information default: test.com secretName: description: Secret name label: Ingress information type: HuaweiCloud.ECS.KeyPair.Name serviceName: description: Service name label: Network service default: service-test servicePort: description: Service port label: Network service default: 8888 type: integer path: description: Application route label: Network service default: /test protocol: description: Service protocol, which must be TCP or UDP label: Network service default: TCP targetPort: description: Open service port of an application label: Network service default: 8888 type: integer node_templates: my-deployment: properties: k8sManifest: apiVersion: apps/v1 kind: Deployment metadata: labels: app: get_input: labels name: get_input: deploymentName spec: replicas: 1 selector: matchLabels: app: get_input: labels strategy: rollingUpdate: maxSurge: 0 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app: get_input: labels spec: containers: - image: get_input: image imagePullPolicy: IfNotPresent name: nginx requirements: [] type: HuaweiCloud.CCE.Deployment my-ingress: properties: k8sManifest: apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: ingress.beta.kubernetes.io/role: data ingress.kubernetes.io/secure-backends: 'false' labels: isExternal: 'true' zone: data name: get_input: ingressName spec: rules: - host: get_input: host http: paths: - backend: serviceName: get_input: serviceName servicePort: get_input: servicePort path: get_input: path tls: - secretName: get_input: secretName hosts: - get_input: host requirements: - dependency: node: my-service type: HuaweiCloud.CCE.Ingress my-service: properties: k8sManifest: apiVersion: v1 kind: Service metadata: name: get_input: serviceName spec: ports: - name: get_input: serviceName port: get_input: servicePort protocol: get_input: protocol targetPort: get_input: targetPort selector: app: get_input: labels sessionAffinity: ClientIP type: ClusterIP requirements: - dependency: node: my-deployment type: HuaweiCloud.CCE.Service
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot