Since K2 Five 5.2 is coming up on end of standard support, we needed to migrate our 5.2 (Windows 2012, single server) to a Windows 2016 server environment. We also decided to take the opportunity to implement a server farm + load balancer + SQL Anywhere configuration for high availability. The entire process took way longer than I hoped and while K2 Support was very helpful, I would like to document my experience forr the benefit of the community.
- K2 5.2 server, Windows 2012 - OLD
- K2 5.2 DB - OLDDB
- K2 5.4 servers, Windows 2016 - NODE1 and NODE2
- K2 5.4 DB - NEWDB
- Backup OLDDB
- Install 5.2 on NODE1 as standalone server and let it create a new K2 DB
- Apply CU and FP to match OLDDB
- Restore OLDDB
- Reconfigure NODE1 against restored OLDDB
- Reconfigure NODE1 as first server in new server farm - Ensure that LB DNS alias lb.domain.com is setup with loopback 127.0.0.1 entry on server hosts file
- Install 5.2 on NODE2 as second node of existing farm
- Run 5.4 installer on NODE1
- Run 5.4 installer on NODE2
- Follow the steps in this KB to setup SQL Anywhere replication
- Reconfigure NODE1 to point to SQL Listener alias
- Reconfigure NODE2 to point to SQL Listener alias
- Removing K2 software using the [Remove] option on Setup Manager doesn't always remove all components, HKLMSoftwareSource Code registry key needs to be removed manually. Without this, the installer options change slightly, the Installation Type screen doesn't show up! Neither does the Server Type screen. This is not very obvious and I burnt a couple of hours on this
- Reconfiguring NODE2 gave some weird certificate errors about machine certificates installed by the Setup manager
- 20*personal details removed*:57:22.226 -04:00 [Fatal] Unable to start Kestrel.
System.InvalidOperationException: Certificate not found: CN=k2qa.domain.com (CN=K2 On Premise Root, O=K2) in LocalMachine/My
- This error took a very very long time, several days, to figure out. Support had me try several things to no avail. Frankly, it felt like we were shooting in the dark and seeing what sticks. This is not a good use of anyone's time.
- Escalation engineer provided a script to run in the database (attached)
- But 5.4 Setup now has this (well-intentioned but poorly thought out) feature where if it encounters a blocking error, the only option when Setup is re-run is [Recover]. If I want to reconfigure to change some options or remove K2, the only option is to rollback the entire VM to a strategic save point. I would like this to be handled better. I did a bit of hacking and figured out that deleting the [Install Dir]K2/Setup/State folder enables the other options and this is what I used to join NODE2 to the farm by running [Configure] instead of [Recover]
- We do not use Sharepoint in our environent. The 5.3 installer crashed on some Sharepoint steps and K2 Support provided some DB cleanup scripts to fix the issue. I was dissapointed to see that the same issue persists in the 5.4 installer.
Overall, I remain underwhelmed with K2 after so many years. The product team keeps pushing out patches and fix packs on a weekly basis but there are some fundamental issues with the installation & configuration that remain unaddressed year after year. This is very, very disappointing. I expect more from an enterprise platform like K2. With every major release, I look forward to a smooth upgrade but I have yet to be pleasantly surprised.
The K2 Five Designer is a disaster, I provided some feedback here. I don't see any major new features in 5.4, just minor tweaks.
Hope my experience helps someone.