stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gayan Gunarathne <gay...@wso2.com>
Subject Re: Releasing Stratos 4.1.3
Date Mon, 21 Sep 2015 05:12:43 GMT
We are maintaining the accessURL in the cluster. In the multi-region
deployment it is same cluster.IMO we need to maintain the accessURL in
Kubernetes Service.

Thanks,
Gayan

On Mon, Sep 21, 2015 at 1:07 AM, Imesh Gunaratne <imesh@apache.org> wrote:

> I found another problem when running on multiple network partitions;
> access URLs shown in the topology view are the same for both application
> instances:
>
>
>
> ​
> ​
>
>
>
> On Mon, Sep 21, 2015 at 1:04 AM, Imesh Gunaratne <imesh@apache.org> wrote:
>
>> Labels are now shown as below:
>>
>>
>> ​
>>
>> ​
>>
>> On Mon, Sep 21, 2015 at 12:57 AM, Gayan Gunarathne <gayang@wso2.com>
>> wrote:
>>
>>> Seems there is a  commit missing when merging the changes.
>>>
>>> Setting the setKubernetesClusterId when creating the Kubenetes service
>>>
>>> Now I will add that commit.
>>>
>>> Thanks,
>>> Gayan
>>>
>>> On Mon, Sep 21, 2015 at 12:35 AM, Akila Ravihansa Perera <
>>> ravihansa@wso2.com> wrote:
>>>
>>>> Great!
>>>>
>>>> I think I found the problem with K8s services not getting cleaned up. I
>>>> see a NPE at removeKubernetesServices(KubernetesIaas.java:1025) when
>>>> undeploying an application.
>>>>
>>>> [2015-09-21 00:31:16,750] ERROR
>>>> {org.apache.stratos.messaging.message.receiver.cluster.status.ClusterStatusEventMessageDelegator}
>>>> -  Failed to retrieve cluster status event message
>>>> java.lang.NullPointerException
>>>> at
>>>> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.removeKubernetesServices(KubernetesIaas.java:1025)
>>>> at
>>>> org.apache.stratos.cloud.controller.messaging.topology.TopologyBuilder.handleClusterTerminatingEvent(TopologyBuilder.java:1068)
>>>> at
>>>> org.apache.stratos.cloud.controller.messaging.receiver.cluster.status.ClusterStatusTopicReceiver$5.onEvent(ClusterStatusTopicReceiver.java:86)
>>>> at
>>>> org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42)
>>>> at java.util.Observable.notifyObservers(Observable.java:159)
>>>> at
>>>> org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51)
>>>> at
>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterTerminatingMessageProcessor.process(ClusterStatusClusterTerminatingMessageProcessor.java:48)
>>>> at
>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterTerminatedMessageProcessor.process(ClusterStatusClusterTerminatedMessageProcessor.java:55)
>>>> at
>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterInactivateMessageProcessor.process(ClusterStatusClusterInactivateMessageProcessor.java:52)
>>>> at
>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterActivatedMessageProcessor.process(ClusterStatusClusterActivatedMessageProcessor.java:52)
>>>> at
>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterResetMessageProcessor.process(ClusterStatusClusterResetMessageProcessor.java:52)
>>>> at
>>>> org.apache.stratos.messaging.message.processor.MessageProcessorChain.process(MessageProcessorChain.java:61)
>>>> at
>>>> org.apache.stratos.messaging.message.receiver.cluster.status.ClusterStatusEventMessageDelegator.run(ClusterStatusEventMessageDelegator.java:71)
>>>> at
>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>> at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, Sep 21, 2015 at 12:30 AM, Imesh Gunaratne <imesh@apache.org>
>>>> wrote:
>>>>
>>>>> I have now refined this logic to trim all labels to 62 characters and
>>>>> added following as labels:
>>>>>
>>>>> Pod: Application-ID, Cluster-Instance-ID, Member-ID
>>>>> Service: Application-ID, Cluster-ID, Port-Name
>>>>>
>>>>> Now I'm seeing a different problem. When an application is
>>>>> un-deployed, services do not get deleted. We need to fix this.
>>>>>
>>>>> Thanks
>>>>>
>>>>> On Mon, Sep 21, 2015 at 12:12 AM, Gayan Gunarathne <gayang@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Akila,
>>>>>>
>>>>>> On Sun, Sep 20, 2015 at 11:30 PM, Akila Ravihansa Perera <
>>>>>> ravihansa@wso2.com> wrote:
>>>>>>
>>>>>>> Hi Gayan,
>>>>>>>
>>>>>>> +1 for properly identifying attributes to be used for labels
and
>>>>>>> annotations. As I mentioned earlier I tried to use them as labels
but ran
>>>>>>> into length limitation issues.
>>>>>>>
>>>>>>> memberId and clusterId cannot be used directly since they are
>>>>>>> generated as follows;
>>>>>>>
>>>>>>> memberId = clusterId + UUID
>>>>>>> clusterId = applicationId + "." + alias + "." + cartridgeType
+
>>>>>>> ".domain"
>>>>>>>
>>>>>>> As you can see those can go be beyond 63 characters since we
don't
>>>>>>> have a limitation for applicationId length. I'm -1 on imposing
a character
>>>>>>> limitation to applicationId only to get away with Kubernetes
restriction.
>>>>>>> What if some other provider comes out with a different limitation?
It
>>>>>>> should be restricted but only for good reasons concerning to
Stratos.
>>>>>>>
>>>>>>
>>>>>> Right. Let's say we are not going to restrict the application id
>>>>>> length. So in that case we won't be able to use the application id
as a pod
>>>>>> label.
>>>>>> IMO we used application id to identify the application. As it is
a
>>>>>> identifier I think it is OK to have a restriction.I think using a
>>>>>> description for the application id is not practical.Also in most
of the use
>>>>>> cases identifiers comes up with some length restrictions.If we don't
have a
>>>>>> restriction on application id , users can enter description sort
of a
>>>>>> application id.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> I had an offline chat with Imesh and we were discussing about
>>>>>>> implementing a sequence number based approach for generating
clusterId and
>>>>>>> memberId without using UUIDs. Any thoughts?
>>>>>>>
>>>>>>
>>>>>>  I am also +1 for this thinking. So how we are going to generate
the
>>>>>> cluster id? I think we need to generate the meaningful ids.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>> Gayan
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Sep 20, 2015 at 10:55 PM, Gayan Gunarathne <gayang@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> As per Kubernetes definition I think we are using labels
and
>>>>>>>> annotation in a wrong way.As annotations are arbitrary non-identifying
>>>>>>>> metadata , they might not shown them in their UI/CLI
>>>>>>>>
>>>>>>>> I think first we need to recognize what are the identifiers
for the
>>>>>>>> pod.In think we may need to use member id , application id
>>>>>>>>
>>>>>>>> Also what is the ration behind of using the md5Hex of the
member id
>>>>>>>> as a identifier. IMO we can directly use the member id. As
member id is
>>>>>>>> UUID it won't be more than 63 characters.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Gayan
>>>>>>>>
>>>>>>>> On Sun, Sep 20, 2015 at 10:13 PM, Imesh Gunaratne <imesh@apache.org
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> Hi Akila,
>>>>>>>>>
>>>>>>>>> Right, I get your point on the length limitation, but
this is how
>>>>>>>>> Kubernetes has described Labels and Annotations:
>>>>>>>>>
>>>>>>>>> *We'll eventually index and reverse-index labels for
efficient
>>>>>>>>> queries and watches, use them to sort and group in UIs
and CLIs, etc. We
>>>>>>>>> don't want to pollute labels with non-identifying, especially
large and/or
>>>>>>>>> structured, data. Non-identifying information should
be recorded using
>>>>>>>>> annotations.*
>>>>>>>>>
>>>>>>>>> The idea is to use labels for all identifiers.
>>>>>>>>>
>>>>>>>>> http://kubernetes.io/v1.0/docs/user-guide/labels.html
>>>>>>>>>
>>>>>>>>> On Sun, Sep 20, 2015 at 10:05 PM, Akila Ravihansa Perera
<
>>>>>>>>> ravihansa@wso2.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Imesh,
>>>>>>>>>>
>>>>>>>>>> Yes, I tried adding them as labels but ran into a
problem since
>>>>>>>>>> label length cannot be greater than 63 characters.
I'm not sure why we
>>>>>>>>>> don't see annotations in the UI for pods created.
But I can see the
>>>>>>>>>> annotations added for services. Might have to raise
this in K8s mailing
>>>>>>>>>> list.
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>>
>>>>>>>>>> On Sun, Sep 20, 2015 at 10:00 PM, Imesh Gunaratne
<
>>>>>>>>>> imesh@apache.org> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Akila,
>>>>>>>>>>>
>>>>>>>>>>> We do not query pod labels, its handled by the
Kubernetes
>>>>>>>>>>> service selector, at the moment this is called
"name". I have now fixed
>>>>>>>>>>> this issue locally, will push in few minutes.
>>>>>>>>>>>
>>>>>>>>>>> In addition I think it would be better to use
labels instead of
>>>>>>>>>>> annotations because they are not visible in the
UI:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Sep 20, 2015 at 9:52 PM, Akila Ravihansa
Perera <
>>>>>>>>>>> ravihansa@wso2.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Imesh,
>>>>>>>>>>>>
>>>>>>>>>>>> Where do we query those pod labels?
>>>>>>>>>>>>
>>>>>>>>>>>> I'm in the process of moving label names
to constants. I can
>>>>>>>>>>>> apply the same in all the places. I think
better to change that label to
>>>>>>>>>>>> md5Hex-memberId to avoid any confusion when
troubleshooting issues. One
>>>>>>>>>>>> might mistakenly take that as the actual
memberId when it is not the case.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks.
>>>>>>>>>>>>
>>>>>>>>>>>> On Sun, Sep 20, 2015 at 9:40 PM, Imesh Gunaratne
<
>>>>>>>>>>>> imesh@apache.org> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> I'm seeing a problem, we have removed
the "name" label in the
>>>>>>>>>>>>> pod and added a new label called "md5Hex-memberId".
Due to this load
>>>>>>>>>>>>> balancing would not work:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Map<String, String> podLabels =
new HashMap<>();
>>>>>>>>>>>>> podLabels.put("md5Hex-memberId", DigestUtils.md5Hex(memberContext.getMemberId()));
>>>>>>>>>>>>>
>>>>>>>>>>>>> Map<String, String> podAnnotations
= new HashMap<>();
>>>>>>>>>>>>> podAnnotations.put("memberId", memberContext.getMemberId());
>>>>>>>>>>>>> podAnnotations.put("cartridgeType", memberContext.getCartridgeType());
>>>>>>>>>>>>> podAnnotations.put("applicationId", memberContext.getApplicationId());
>>>>>>>>>>>>> podAnnotations.put("clusterId", memberContext.getClusterId());
>>>>>>>>>>>>> podAnnotations.put("clusterInstanceId",
memberContext.getClusterInstanceId());
>>>>>>>>>>>>>
>>>>>>>>>>>>> kubernetesApi.createPod(podId, podName,
podLabels, podAnnotations, dockerImage, cpu, memory, ports,
>>>>>>>>>>>>>         environmentVariables);
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sun, Sep 20, 2015 at 2:51 PM, Akila
Ravihansa Perera <
>>>>>>>>>>>>> ravihansa@wso2.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I've pushed release artifacts to
staging repo at [1]. Please
>>>>>>>>>>>>>> take few mins to verify the release.
Also I've pushed cartridge-base, php
>>>>>>>>>>>>>> and tomcat Docker images with 4.1.3
artifacts to DockerHub.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [1]
>>>>>>>>>>>>>> https://repository.apache.org/content/repositories/orgapachestratos-1057/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Akila Ravihansa Perera
>>>>>>>>>>>>>> WSO2 Inc.;  http://wso2.com/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Blog: http://ravihansa3000.blogspot.com
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Imesh Gunaratne
>>>>>>>>>>>>>
>>>>>>>>>>>>> Senior Technical Lead, WSO2
>>>>>>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Akila Ravihansa Perera
>>>>>>>>>>>> WSO2 Inc.;  http://wso2.com/
>>>>>>>>>>>>
>>>>>>>>>>>> Blog: http://ravihansa3000.blogspot.com
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Imesh Gunaratne
>>>>>>>>>>>
>>>>>>>>>>> Senior Technical Lead, WSO2
>>>>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Akila Ravihansa Perera
>>>>>>>>>> WSO2 Inc.;  http://wso2.com/
>>>>>>>>>>
>>>>>>>>>> Blog: http://ravihansa3000.blogspot.com
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Imesh Gunaratne
>>>>>>>>>
>>>>>>>>> Senior Technical Lead, WSO2
>>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Gayan Gunarathne
>>>>>>>> Technical Lead, WSO2 Inc. (http://wso2.com)
>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>> email : gayang@wso2.com  | mobile : +94 775030545
>>>>>>>> <%2B94%20766819985>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Akila Ravihansa Perera
>>>>>>> WSO2 Inc.;  http://wso2.com/
>>>>>>>
>>>>>>> Blog: http://ravihansa3000.blogspot.com
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Gayan Gunarathne
>>>>>> Technical Lead, WSO2 Inc. (http://wso2.com)
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>> email : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Imesh Gunaratne
>>>>>
>>>>> Senior Technical Lead, WSO2
>>>>> Committer & PMC Member, Apache Stratos
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Akila Ravihansa Perera
>>>> WSO2 Inc.;  http://wso2.com/
>>>>
>>>> Blog: http://ravihansa3000.blogspot.com
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> Gayan Gunarathne
>>> Technical Lead, WSO2 Inc. (http://wso2.com)
>>> Committer & PMC Member, Apache Stratos
>>> email : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Senior Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>
>
>
> --
> Imesh Gunaratne
>
> Senior Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>



-- 

Gayan Gunarathne
Technical Lead, WSO2 Inc. (http://wso2.com)
Committer & PMC Member, Apache Stratos
email : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>

Mime
View raw message