Debian and Kubernetes optimized Kernel in kops
kopsが利用するAMIについて調べたのでまとめておく。
kopsでサポートされているOSは https://github.com/kubernetes/kops/blob/master/docs/images.md に書かれている。デフォルトではDebianが選択される。他にCoreOS、Ubuntu、CentOS、RHELがサポートされているが、現実的にはDebianかCoreOSを選択することになると思う。ドキュメントやGitHub Issuesを見る限り、Debianが最もよくテストされているようだ。
kopsの構成でAMIを指定しない場合、 stable channel で定義されているAMIが選択される。現時点では、Kubernetes 1.9の場合は kope.io/k8s-1.8-debian-jessie-amd64-hvm-ebs-2018-02-08
というAMIが選択される。
spec: images: - name: kope.io/k8s-1.8-debian-jessie-amd64-hvm-ebs-2018-02-08 providerID: aws kubernetesVersion: ">=1.9.0 <1.10.0"
このAMIはDebian 8(Jessie)がベースになっている。具体的な構成はYAML形式のテンプレートで定義されている。詳しくはテンプレートを読むと理解できるが、必要なパッケージのインストールや設定ファイルの変更が記述されている。Dockerのインストールもここで行われる。途中で apt-get dist-upgrade
コマンドが実行されているので、ビルド時点で最新のJessieが生成されるようだ。
このAMIではDebianの標準カーネルではなくKubernetesに最適化されたカーネルが使われている。先ほどのAMIには 4.4.115-k8s
というバージョンのカーネルが組み込まれている。カーネルの具体的な設定はconfigファイルで定義されている。
AMIのビルドおよびリリースにはImageBuilderが利用されている。カーネルのビルドおよびリリースにはMakefileが利用されている。いずれも継続的にリリースできるように工夫されている。
なお、実際の環境で使われているDebianやカーネルのバージョンを調べるにはSSHするのが手っ取り早い。先ほどのAMIでは以下のバージョンが使われている。
$ uname -a Linux hostname 4.4.115-k8s #1 SMP Thu Feb 8 15:37:40 UTC 2018 x86_64 GNU/Linux $ cat /etc/debian_version 8.10
Slack公式のJIRA連携機能を試した
Slackが公式に公開しているJIRA連携機能を試してみました。
JIRA連携機能はJIRA CloudとJIRA Serverに対応しています。今回は個人で運用しているJIRA Serverを利用しました。
以下の手順でSlackとJIRAを連携できます。詳しくは公式ページを参照してください。
- 自分のSlackワークスペースにJIRA Server Alertsを追加する。
- 通知先のチャンネルを指定する。
- JIRAでWebHookを作成する。
これだけです。簡単ですね。
JIRAのWebHookは以下のように設定しています。
デフォルトではIssueのステータスを更新した時にのみ通知されるようです。以下のオプションを有効にすると、Issueにコメントを書いた時にも通知されるようになります。
JIRAのIssueにコメントを書いて、ステータスをDoneに更新すると、Slackに以下のように通知されます。
以下の点が気になりました。
- ユーザ名ではなくフルネームが表示されるため、Slack上でメンションにならないので通知に気付かない。Slackの通知設定でフルネームを入れておけば解決しそう。
- JIRA記法のメンション(
[~hidetake]
)がSlack記法のメンション(@hidetake
)に変換されない。これもSlackの通知設定で解決しそう。 - デフォルトでは標準的なステータスしか設定されていないので、チームで独自のステータス(In Reviewなど)を使っている場合は設定を見直す必要がある。
SlackとJIRAの連携は簡単なので、ぜひ試してみてください。
ちなみに上記の問題点を解決した拙作のBotもあります。参考まで。
開発基盤ツールのHelm charts
開発基盤ツールをKubernetesで運用する時に使えるHelm chartsを調べたのでまとめました。開発支援ツールやDevOpsツールという言い方もあるかもしれません。
Atlassian JIRA Software
オフィシャルのHelm chartやDockerイメージはありません。検索したところ以下のHelm chartがあります。
- devops-kompose/atlassian-jira-software at master · int128/devops-kompose · GitHub (拙作です)
- helm-charts/jira at master · seibert-media/helm-charts · GitHub
- helm-charts/jira at master · linkyard/helm-charts · GitHub
Atlassian Confluence
AtlassianオフィシャルのDockerイメージが公開されています。
オフィシャルのHelm chartはありません。検索したところ以下のHelm chartがあります。
- devops-kompose/atlassian-confluence at master · int128/devops-kompose · GitHub (拙作です)
- helm-charts/confluence at master · seibert-media/helm-charts · GitHub
- helm-charts/confluence at master · linkyard/helm-charts · GitHub
Nextcloud / ownCloud
ownCloudはオフィシャルのHelm chartがあります。
NextcloudのHelm chartですが、以下のPull Requestがレビュー中なので近日中に使えるようになると思います。
Mattermost
オフィシャルのHelm chartがありますが、まだstableではないようです。
GitLab
オフィシャルのHelm chartが公開されています。OmnibusとCloud Native Chartの2種類があります。
今のところCloud Native Chartはアルファ版なので、Omnibusを使う方がよさそうです。ただし、OmnibusはコンテナレジストリやMattermostなども付いてきます。私の環境では上記のHelm chartを使わず、公式のDockerイメージを使っています。
Jenkins
オフィシャルのHelm chartがあります。Jenkins MasterとJenkins Agentが提供されています。
SonarQube
オフィシャルのHelm chartがあります。
Nexus
オフィシャルのHelm chartがあります。
- 作者: Kelsey Hightower,Brendan Burns,Joe Beda,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/03/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)
- 作者: 池田尚史,藤倉和明,井上史彰
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る