アップグレードマニュアル

サーバーホストのローカルファイルにkeyring dataが格納されている場合、keyring_filepluginが必要です。keyring_filepluginがアクティブであることを確認するには、SHOW PLUGINSステートメントを使用するか、INFORMATION_SCHEMA.PLUGINSテーブルをクエリします。例えば:

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS  
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE        |
+--------------+---------------+

下記のコマンドを実行して、SenseLinkをアップグレードします。

############# run separately ############
##### Please ensure use ubuntu user. #####
# make sure install_package_path is install package path.
# use tmux for upgrade, version is like 1.10 or 2.*

tmux
./upgrade_senselink.sh ${k8sKubeConfig_path} ${sshKeyFile_path} ${version} |& tee -a
 upgrade_senselink.log

SenseLinkの構成要素

Kubernetes環境で、全てのSenseLinkの構成要素はネームスペースsenselinkの下にデプロイされました。つまり、kubectlを使って、SenseLinkのリソースを操作する時にパラメータ-n senselink が必要です。

SenseLinkポート

kubectl -n senselink get podsコマンドでsenselinkネームスペースで動いているSenseLinkのホストを取得した結果は下記の通りです。

Type

NAME

Instances

STATUS

pod

apiv2-X

X=number of link nodes

Running

pod

emq

1

Running

pod

feature-X

X=number of link nodes

Running

pod

fs-X

X=1

Running

pod

infra2-X

X=number of link nodes

Running

pod

mmo-init-job

0

Completed

pod

openapi-X

X=number of link nodes

Running

pod

opq

1

Running

pod

schedule2

1

Running

pod

slinkpush

1

Running

pod

sntp

1

Running

pod

sync-X

X=number of link nodes

Running

pod

web-X

X=number of link nodes

Running

pod

tk-X

1

Running

pod

event-X

X=number of link nodes

Running

pod

nebula

X=1

Running

pod

zookeeper

1

Running

pod

websocket

1

Running

SenseLinkサービス

kubectl -n senselink get servicesコマンドでsenselinkネームスペースで動いているSenseLinkのサービスを取得した結果は下記の通りです。

NAME

TYPE

EXTERNAL-IP

PORT(S)

apiv2

ClusterIP

none

8080/TCP, 8081/TCP, 20860/TCP

emq

ClusterIP

none

8083/TCP, 8084/TCP, 8883/TCP, 1883/TCP, 18083/TCP, 18084/TCP

feature

ClusterIP

none

50052/TCP

fs

ClusterIP

none

20080/TCP

infra2

ClusterIP

none

50009/TCP, 50010/TCP

mongo

ExternalName

dds-xxxxxxxx.mongodb.japan.rds.aliyuncs.com

none

mysql

ExternalName

rm-xxxxxxxx.mysql.japan.rds.aliyuncs.com

none

openapi

ClusterIP

none

8099/TCP

opq

ClusterIP

none

9001/TCP

redis

ExternalName

r-xxxxxxxx.redis.japan.rds.aliyuncs.com

none

schedule2

ClusterIP

none

8091/TCP

slinkpush

ClusterIP

none

50055/TCP

sntp

ClusterIP

none

10080/TCP, 50080/TCP

sync

ClusterIP

none

1010/TCP, 50051/TCP

web

NodePort

none

80:80/TCP

websocket

ClusterIP

none

9000/TCP, 9099/TCP

zookeeper

ClusterIP

none

2181/TCP, 2888/TCP, 3888/TCP

tk

ClusterIP

none

8091/TCP, 50011/TCP, 20880/TCP

nebula

ClusterIP

none

55555/TCP, 20861/TCP

event

ClusterIP

none

8089/TCP, 20870/TCP

インストール時の問題のトラブルシューティング

PV or PVCを削除できません

sk patch pvc infra-claim-infra-1 -p '{"metadata":{"finalizers":null}}'

Apiv2 Pod Crash 問題

SenseLinkをデプロイしたら、apiv2 ポートは CrashLoopBackOff 状態となってしまいます。

ポートログを確認したら、下記のログが見つかりました。Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'

Apiv2 Pod Crashの原因

infra-serviceの一部のキャッシュがapiv2の正常な実行に影響を与えたと推測されています。 SenseLinkのコンポーネントには実行中の依存関係があります。これが、コンポーネントが順番に段階的に展開される理由です。そして、infra-serviceはapiv2の後に配備されました。したがって、この問題は通常は発生しません。

Apiv2 Pod Crash問題の対応

k8s statefulset infra-service と apiv2を削除します。その後、順番にapiv2 と infra-serviceをデプロイします。

最終更新

役に立ちましたか?