fc2ブログ

Home > 2018年09月

2018年09月

[入] gitlab

  • 2018-09-27 (Thu)
gitlabをいれてみる。
https://about.gitlab.com/installation/#ubuntu


$ sudo apt-get update
$ sudo apt-get install -y curl openssh-server ca-certificates
$ sudo apt-get install -y postfix
 → local onlyを指定

$ sudo apt-get install -y postfix
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ssl-cert
Suggested packages:
procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb postfix-sqlite sasl2-bin dovecot-common
resolvconf postfix-cdb mail-reader postfix-doc openssl-blacklist
The following NEW packages will be installed:
postfix ssl-cert
0 upgraded, 2 newly installed, 0 to remove and 44 not upgraded.
Need to get 1165 kB of archives.
After this operation, 4140 kB of additional disk space will be used.
Get:1 http://ftp.jaist.ac.jp/pub/Linux/ubuntu bionic/main amd64 ssl-cert all 1.0.39 [17.0 kB]
Get:2 http://ftp.jaist.ac.jp/pub/Linux/ubuntu bionic-updates/main amd64 postfix amd64 3.3.0-1ubuntu0.1 [1148 kB]
Fetched 1165 kB in 1s (1592 kB/s)
Preconfiguring packages ...
Selecting previously unselected package ssl-cert.
(Reading database ... 47701 files and directories currently installed.)
Preparing to unpack .../ssl-cert_1.0.39_all.deb ...
Unpacking ssl-cert (1.0.39) ...
Selecting previously unselected package postfix.
Preparing to unpack .../postfix_3.3.0-1ubuntu0.1_amd64.deb ...
Unpacking postfix (3.3.0-1ubuntu0.1) ...
Processing triggers for ufw (0.35-5) ...
Processing triggers for ureadahead (0.100.0-20) ...
Setting up ssl-cert (1.0.39) ...
Processing triggers for systemd (237-3ubuntu10.3) ...
Processing triggers for man-db (2.8.3-2) ...
Processing triggers for rsyslog (8.32.0-1ubuntu4) ...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of try-restart.
Setting up postfix (3.3.0-1ubuntu0.1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /lib/systemd/system/postfix.service.
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
Adding group `postfix' (GID 118) ...
Done.
Adding system user `postfix' (UID 113) ...
Adding new user `postfix' (UID 113) with group `postfix' ...
Not creating home directory `/var/spool/postfix'.
Creating /etc/postfix/dynamicmaps.cf
Adding group `postdrop' (GID 119) ...
Done.
setting myhostname: Hank.localdomain
setting alias maps
setting alias database
changing /etc/mailname to Hank.localdomain
setting myorigin
setting destinations: $myhostname, Hank.localdomain, localhost.localdomain, localhost
setting relayhost:
setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
setting mailbox_size_limit: 0
setting recipient_delimiter: +
setting inet_interfaces: loopback-only
setting default_transport: error
setting relay_transport: error
setting inet_protocols: ipv4
/etc/aliases does not exist, creating it.
WARNING: /etc/aliases exists, but does not have a root alias.

Postfix (main.cf) is now set up with a default configuration. If you need to
make changes, edit /etc/postfix/main.cf (and others) as needed. To view
Postfix configuration values, see postconf(1).

After modifying main.cf, be sure to run 'service postfix reload'.

Running newaliases
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of restart.
Processing triggers for systemd (237-3ubuntu10.3) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for rsyslog (8.32.0-1ubuntu4) ...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of try-restart.
Processing triggers for ufw (0.35-5) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
 → とくに異常なしで完了


さて、つぎにGitLabパッケージリポジトリを追加してパッケージのインストール。

Continue reading

[資] オブジェクトの実体その1

  • 2018-09-26 (Wed)
障害時などに実資源の状態を追わないとならないときが
必ず出てくるので、オブジェクトに対応する実体を調べられるようにする。

■pod
https://kubernetes.io/docs/concepts/workloads/pods/pod/
隔離に使われている仕組みはdockerと同様のものとのこと。

どこのサーバのどこのディレクトリにどのようなファイルがあるか?
というのも追えるようにしておこう。

たとえば
$ kubectl get pods -n kube-system tiller-deploy-78779c79d4-jxb85 -o yaml
を実行すると、
metadataのuidは、uid: 55ababe9-bc23-11e8-85f0-00022ae041e2
specのnodeNameは、vm01
となっている。

このとき、このpodがスケジュールされた先のvm01にログインして
/var/lib/kubelet/pods/55ababe9-bc23-11e8-85f0-00022ae041e2
配下をみると、こんな感じになっていた。


root@vm01:/var/lib/kubelet/pods/55ababe9-bc23-11e8-85f0-00022ae041e2# find .
.
./etc-hosts
./volumes
./volumes/kubernetes.io~secret
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/..data
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/namespace
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/ca.crt
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/token
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/..2018_09_24_16_01_41.569123546
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/..2018_09_24_16_01_41.569123546/namespace
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/..2018_09_24_16_01_41.569123546/ca.crt
./volumes/kubernetes.io~secret/tiller-sa-token-n25q4/..2018_09_24_16_01_41.569123546/token
./containers
./containers/tiller
./containers/tiller/9e496a51
./containers/tiller/bd35edba
./containers/tiller/4449c996
./containers/tiller/fad55d52
./containers/tiller/73a795a8
./plugins
./plugins/kubernetes.io~empty-dir
./plugins/kubernetes.io~empty-dir/wrapped_tiller-sa-token-n25q4
./plugins/kubernetes.io~empty-dir/wrapped_tiller-sa-token-n25q4/ready
root@vm01:/var/lib/kubelet/pods/55ababe9-bc23-11e8-85f0-00022ae041e2#

Continue reading

[更] helmでingress-controller追加

  • 2018-09-26 (Wed)
ingressを使えるようにしてみる。
チャートの情報は以下。
https://github.com/helm/charts/tree/master/stable/nginx-ingress

が、エラー?指定がなにかまずい?

$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ? Happy Helming!?
$
$ helm search nginx-ingress
NAME CHART VERSION APP VERSION DESCRIPTION
stable/nginx-ingress 0.28.2 0.19.0 An nginx Ingress controller that uses ConfigMap to store ...
stable/nginx-lego 0.3.1 Chart for nginx-ingress-controller and kube-lego
$
$ helm install stable/nginx-ingress
Error: failed to download "stable/nginx-ingress" (hint: running `helm repo update` may help)
$


どうも調べてみると、まずhelm install時のオプションがイマイチ足りてない。
「--set rbac.create=true」が必要のような。
あと、いろいろオプション変更して何度か試してみた結果、他のページで
成功しているようなオプションの組み合わせであっても、そもそも権限が
足りてないようなメッセージも出るので、RBAC設定もあやしい。

Continue reading

[回] spin-clouddriver-bootstrapでエラー

  • 2018-09-21 (Fri)
hal deploy applyが途中で止まる。解析中。
clouddriver-bootstrapがreadyにならない?

hal config -qとソース
https://github.com/spinnaker/halyard
をにらめっこしていて、やっとv1アカウントでdeployまでいったら
今度はこれかあ。ちょっとhard modeすぎやしませんかねえ。

443へのアクセスでこけてるのでingress入れないとダメなのかも。
ingress入れて再挑戦する
→ 追記:このアドレス、ポートは、harborのもの。hal config -qで確認。
  ということで、おそらくharborを起動してからhal deploy apply再実施すれば
  状況は好転するのではないかと思う。
→ 変わらない。はて、、、

$ kubectl logs -n spinnaker spin-clouddriver-bootstrap-v000-v9xgt | grep -i error
2018-10-01 17:30:26.416 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public java.util.Map com.netflix.spinnaker.kork.web.controllers.GenericErrorController.error(java.lang.Boolean,javax.servlet.http.HttpServletRequest)
2018-10-01 17:30:43.156 WARN 1 --- [ecutionAction-2] c.n.s.c.d.r.a.v.c.DockerRegistryClient : Error encountered during catalog of nullFailed to connect to /192.168.0.210:443
2018-10-01 17:31:08.567 ERROR 1 --- [ool-14-thread-1] c.n.s.c.core.AlwaysUpHealthIndicator : Unhealthy
retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at retrofit.RetrofitError.networkError(RetrofitError.java:27) ~[retrofit-1.9.0.jar:na]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
2018-10-01 17:31:13.103 WARN 1 --- [ecutionAction-3] c.n.s.c.d.r.a.v.c.DockerRegistryClient : Error encountered during catalog of nullFailed to connect to /192.168.0.210:443
2018-10-01 17:31:14.168 ERROR 1 --- [0.0-7002-exec-1] c.n.s.k.w.e.GenericExceptionHandlers : Internal Server Error
com.netflix.spinnaker.clouddriver.core.AlwaysUpHealthIndicator$HealthIndicatorWrappedException: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.27.jar:8.5.27]
Caused by: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at retrofit.RetrofitError.networkError(RetrofitError.java:27) ~[retrofit-1.9.0.jar:na]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
2018-10-01 17:31:23.300 ERROR 1 --- [0.0-7002-exec-2] c.n.s.k.w.e.GenericExceptionHandlers : Internal Server Error
com.netflix.spinnaker.clouddriver.core.AlwaysUpHealthIndicator$HealthIndicatorWrappedException: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.27.jar:8.5.27]
Caused by: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at retrofit.RetrofitError.networkError(RetrofitError.java:27) ~[retrofit-1.9.0.jar:na]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
2018-10-01 17:31:33.298 ERROR 1 --- [0.0-7002-exec-3] c.n.s.k.w.e.GenericExceptionHandlers : Internal Server Error
com.netflix.spinnaker.clouddriver.core.AlwaysUpHealthIndicator$HealthIndicatorWrappedException: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.27.jar:8.5.27]
Caused by: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at retrofit.RetrofitError.networkError(RetrofitError.java:27) ~[retrofit-1.9.0.jar:na]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
2018-10-01 17:31:43.295 ERROR 1 --- [0.0-7002-exec-4] c.n.s.k.w.e.GenericExceptionHandlers : Internal Server Error
com.netflix.spinnaker.clouddriver.core.AlwaysUpHealthIndicator$HealthIndicatorWrappedException: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.27.jar:8.5.27]
Caused by: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at retrofit.RetrofitError.networkError(RetrofitError.java:27) ~[retrofit-1.9.0.jar:na]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
2018-10-01 17:31:45.115 WARN 1 --- [ecutionAction-8] c.n.s.c.d.r.a.v.c.DockerRegistryClient : Error encountered during catalog of nullFailed to connect to /192.168.0.210:443
2018-10-01 17:31:53.303 ERROR 1 --- [0.0-7002-exec-5] c.n.s.k.w.e.GenericExceptionHandlers : Internal Server Error
com.netflix.spinnaker.clouddriver.core.AlwaysUpHealthIndicator$HealthIndicatorWrappedException: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.27.jar:8.5.27]
Caused by: retrofit.RetrofitError: Failed to connect to /192.168.0.210:443
at retrofit.RetrofitError.networkError(RetrofitError.java:27) ~[retrofit-1.9.0.jar:na]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
・・・・

Continue reading

[仮] ノード増設

  • 2018-09-20 (Thu)
今までの手順をもとにノードを増やす場合にやることを
参照しやすいようしておく。時間あったらコードにする。

・VM増設は以下参照
 [仮] ubuntu18.04で仮想サーバその2
 → リソース変更ありならば
   [仮] 仮想マシンのリソース変更

・kubeadmでのノード増設は以下参照
 [舵] kubeadmその1
 → クラスタにノード追加時の対処方法のヒントは以下
    [舵] kubeadmその3

・k8sの操作に関して調べたい場合は以下
 [舵] kubeadmその2
 [挙] kubectlコマンドその1

[仮] 仮想マシンのリソース変更

  • 2018-09-20 (Thu)
kvmで作成した仮想マシンのメモリ上限を変更。
vmの数を増やしたときに調整しないとまずいようであれば
このように上限値を変更する

$ sudo virsh shutdown vm04
$ sudo virsh setmaxmem vm04 1536M --config
$ sudo virsh setmem vm04 1536M --config

[謎] hal deploy時のprovider version

  • 2018-09-19 (Wed)
[継] CI/CD
[蔵] minioのデプロイ成功
[入] spinnakerつづき
のあと、いろいろ試してみたが、結論として
hal config provider kubernetesを実行時、--provider-version v2で
成功させるのは現時点の自分の環境では難しい、と判断した。

ソースから、/etc/kubernetes/manifestsの下にservice.yaml
のようなものがあって、ある程度設定されていないと、おそらく
まともに構築できない。が、その情報が入手できていないので。

本などでは--provider-version v1で連携用アカウントを作成
しているのがとても多いので、その方法で入れるほうがまだ
現実的である。

Continue reading

[入] spinnakerつづき

  • 2018-09-18 (Tue)
spinnakerインストールつづき。


$ hal config version edit --version 1.9.4
+ Get current deployment
Success
+ Edit Spinnaker version
Success
Problems in halconfig:
- WARNING There is a newer version of Halyard available (1.10.1),
please update when possible
? Run 'sudo update-halyard' to upgrade

+ Spinnaker has been configured to update/install version "1.9.4".
Deploy this version of Spinnaker with `hal deploy apply`.
$
$ sudo update-halyard
(略)
$
$ hal version list
+ Get current deployment
Success
+ Get Spinnaker version
Success
+ Get released versions
Success
+ You are on version "1.9.4", and the following are available:
- 1.7.8 (Ozark):
Changelog: https://gist.github.com/spinnaker-release/75f98544672a4fc490d451c14688318e
Published: Wed Aug 29 19:09:57 UTC 2018
(Requires Halyard >= 1.0.0)
- 1.8.6 (Dark):
Changelog: https://gist.github.com/spinnaker-release/0844fadacaf2299d214a82e88217d97c
Published: Wed Aug 29 19:11:34 UTC 2018
(Requires Halyard >= 1.0.0)
- 1.9.4 (Bright):
Changelog: https://gist.github.com/spinnaker-release/f206117b252a6d6b2d1f67a69bce8141
Published: Wed Sep 26 15:32:47 UTC 2018
(Requires Halyard >= 1.0.0)
$
$ hal config version edit --version 1.9.4
+ Get current deployment
Success
+ Edit Spinnaker version
Success
+ Spinnaker has been configured to update/install version "1.9.4".
Deploy this version of Spinnaker with `hal deploy apply`.
$
$ hal deploy apply
+ Get current deployment
Success
+ Prep deployment
Success
Problems in default.security:
- WARNING Your UI or API domain does not have override base URLs
set even though your Spinnaker deployment is a Distributed deployment on a
remote cloud provider. As a result, you will need to open SSH tunnels against
that deployment to access Spinnaker.
? We recommend that you instead configure an authentication
mechanism (OAuth2, SAML2, or x509) to make it easier to access Spinnaker
securely, and then register the intended Domain and IP addresses that your
publicly facing services will be using.

+ Preparation complete... deploying Spinnaker
+ Get current deployment
Success
^ Apply deployment
* Apply deployment
_ Apply deployment
- Apply deployment
^ Apply deployment
* Apply deployment
_ Apply deployment
- Apply deployment
^ Apply deployment
- Apply deployment
Failure
Problems in Global:
! ERROR No persistent storage type was configured.

- Failed to deploy Spinnaker.
$


ふむ、どうもストレージタイプの設定がされていない?

Continue reading

[蔵] minioのデプロイ成功

  • 2018-09-16 (Sun)
kubernetes 1.12 rcのバグもあってちょっと苦戦していたが
とりあえずminioのインストールはできたようだ。

結局のところ、うまくいってなかったのはStatefulSet。
レプリカ数4に対して1しかできていないところに着目して、
helmでminioを入れるときのコマンドを以下のように変更。
#タイムアウト値変更は念のためでしかなかった

$ helm install --set mode=distributed,replicas=4,persistence.storageClass=local-storage,persistence.size=5Gi,livenessProbe.timeoutSeconds=300,readinessProbe.timeoutSeconds=300 stable/minio --namespace kube-system


あと、PVを作ったときにRetainになっていたのをRecycleに変更。
RetainにしていたのでPVの要求あったときに再利用できずに
レプリカ作成の途中で以下のように止まっていたからだ。

$ kubectl describe pods -n kube-system voting-pug-minio-2
・・・・
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 44s (x25 over 1m) default-scheduler 0/5 nodes are available: 1 node(s) had taints that the pod didn't tolerate, 4 node(s) didn't find available persistent volumes to bind.


pvc, pvを一度全部消して、Reclaim Policy = 「Recycle」版でpvをきれいに作り直し、
helm listで残っていたminioを一度deleteしてから前述のコマンドオプション
(レプリカ数明示版)で作り直ししたら、うまくいった。

$ kubectl get pods -n kube-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE
canal-cn7nj 3/3 Running 0 1d 192.168.122.14 vm04
canal-jjtrx 3/3 Running 0 1d 192.168.122.24 vm03
canal-kkjcr 3/3 Running 0 1d 192.168.0.210 stitt
canal-m7png 3/3 Running 0 1d 192.168.122.75 vm01
canal-nkn7h 3/3 Running 0 1d 192.168.122.15 vm02
coredns-78fcdf6894-9tp7f 1/1 Running 10 65d 10.244.0.30 stitt
coredns-78fcdf6894-fqz8w 1/1 Running 10 65d 10.244.0.31 stitt
etcd-stitt 1/1 Running 0 1d 192.168.0.210 stitt
kube-apiserver-stitt 1/1 Running 0 1d 192.168.0.210 stitt
kube-controller-manager-stitt 1/1 Running 0 1d 192.168.0.210 stitt
kube-proxy-6rfw9 1/1 Running 564 3d 192.168.122.15 vm02
kube-proxy-fcgvt 1/1 Running 0 1d 192.168.122.14 vm04
kube-proxy-kc98v 1/1 Running 564 3d 192.168.122.75 vm01
kube-proxy-m5zgn 1/1 Running 558 3d 192.168.0.210 stitt
kube-proxy-mfcz9 1/1 Running 563 3d 192.168.122.24 vm03
kube-scheduler-stitt 1/1 Running 0 1d 192.168.0.210 stitt
kubernetes-dashboard-6948bdb78-jkzz5 1/1 Running 14 65d 10.244.0.29 stitt
telling-sparrow-minio-0 1/1 Running 0 10m 10.244.3.6 vm03
telling-sparrow-minio-1 1/1 Running 0 10m 10.244.4.4 vm04
telling-sparrow-minio-2 1/1 Running 0 10m 10.244.1.13 vm02
telling-sparrow-minio-3 1/1 Running 0 9m 10.244.2.24 vm01
tiller-deploy-78779c79d4-jxb85 1/1 Running 4 7d 10.244.2.22 vm01
$


最初はネットワークを疑っていたのだが、ボリュームをきちんと
使えていなかったのでStatefulSetが正常な状態でなかった
というのが結論。まあ、勉強にはなりました。

Continue reading

[強] ダウングレード

  • 2018-09-15 (Sat)
出先から帰ってきて
$ kubectl get pods -n kube-system
してびっくり。ほとんどエラー。先日のやつが効いていそう。

ということで、これ以上悪くはならないと割り切って、作り直すつもりで
強制ダウングレードを実施してみた。
masterと各ワーカーで、以下実施。

$ sudo dpkg -l | grep kube
 → 1.12.0-rc.1-00であること
$ sudo apt-get update
$ sudo apt-get install kubeadm=1.11.3-00
$ sudo apt-get install kubectl=1.11.3-00
$ sudo apt-get install kubelet=1.11.3-00
$ sudo dpkg -l | grep kube
 → 1.11.3-00であること


さて、その後、しばし放置。

Continue reading

Home > 2018年09月

Recent Comments
Recent Trackback
Search
Meta
Links
Feeds

Page Top