Kubernetesスケジューラのソースコード分析:起動前の初期化処理
概要
Kubernetesのスケジューラは、未スケジュールのPodを監視し、適切なノードを見つけてバインディング情報をAPIサーバーに書き込むコンポーネントです。この記事では、Kubernetes 1.13バージョンのスケジューラが実際のスケジューリング処理を開始する前に行われる初期化処理について、ソースコードレベルで分析します。
Cobraフレームワークとmain関数
Cobraとは
...
8月4日 09:52 投稿
Go言語における型アサーション
型アサーション
基本的な型アサーション
基本的な型アサーション(型変換として使用可能):Xがインターフェース型で、Tが非インターフェース型の場合、アサーションが有効であるためには、TがインターフェースXを実装している必要があります
TがXを実装している場合、変換は成功します。そうでない場合はpanicが発生し、プログラムが中断されます
構文
c := X.(T)
# ...
7月26日 22:29 投稿
Go言語におけるチャンネルの活用と基礎知識
Go言語のチャンネル(Channel)は、異なるgoroutine間でデータを安全にやり取りし、同期処理を実現するための強力な仕組みです。以下では、Goチャンネルに関する主要なポイントを紹介します。
基本的な概念
定義: `var dataCh chan string` は文字列型のチャンネルを定義します。
生成: `dataCh := make(chan string)` や `dataCh := make(chan string, 5)` でバッフ ...
7月24日 20:15 投稿
Go言語におけるクロージャの理解と応用
以前Javaを書いていた時、フロントエンドの同僚たちがクロージャについて話しているのを聞いて、とても新鮮に感じました。その後、少しJavaScriptを書いてみましたが、基礎的な知識しかありませんでしたが、クロージャの概念を理解することができました。現在、私の仕事でよく使う言語はGoで、多くのエレガントなコードの中にクロージャの姿があります。クロージャを深く理 ...
7月22日 20:53 投稿
Go言語での日時変換
Goにおける日時の書式化と解析
日付の書式変換にはFormatメソッドを用います:
func (t Time) Format(layout string) string
逆に文字列の解析にはtime.Parse関数を使用します:
func Parse(layout, value string) (Time, error)
ここで重要なのはlayoutパラメータで、これは以下のようなマジカルな基準日:
Mon Jan 2 15:04:05 MST 2006
を同じフォーマットで表現した ...
7月10日 22:39 投稿
オンラインジャッジ向けGo言語構文ガイド
Javaとの主な構文の違い:
1) ++iは存在せず、i++のみ使用可能。whileループはなく、「for 条件」で代替。未使用の変数は定義不可。
整数型のmax、min、abs関数は標準で提供されていない。
2) 配列のサイズが定数でない場合、makeキーワードを使用してsliceを定義する必要がある。
クラスはなく、funcのみ存在。クラスに相当するものはstructキーワードで定義する。 ...
7月2日 18:47 投稿
Goの基本データ型
データ型とは
メモリ上に保存されたデータにアクセスするための変数名を通じて、コンピュータはデータを適切に解釈する必要がある。以下のようなコード例:
package main
import "fmt"
var (
x int = 32
)
func main() {
fmt.Println(x)
}
コンピュータ内部では0と1の組み合わせでデータを表現するが、型情報により:
数値や文字列などの解釈方法を明確化
メモリ ...
6月29日 17:35 投稿
Go言語における高並列処理の実現手法
現代のソフトウェア開発において、並列処理は重要な概念です。Go言語は言語レベルで並列処理をサポートし、マルチコアCPUの能力を最大限に活用できるよう設計されています。
goroutineの仕組み
Javaではスレッドを直接生成しますが、Goでは「go」キーワードを使用して軽量なgoroutineを生成します。goroutineは非常に軽量で、数百万単位で作成可能です。
// 関数をgoroutin ...
6月27日 00:22 投稿
CentOS 7 環境での YUM 問題対応と NPS 内網トンネルツールの導入手順
CentOS 7 初期環境における YUM ユーティリティの異常対応
新規インストール直後の CentOS 7 サーバ上で yum install -y wget を実行した際に失敗する現象に遭遇することがあります。ネットワーク接続確認(ping 通信可)は問題ないにもかかわらず、wget コマンドが存在しないためネットワーク経由での修正が難航するケースがあります。また、ネット上で推奨される ONBOOT ...
6月11日 18:01 投稿
Go言語基礎入門
一、基本構文
1. packageキーワード
packageはコードが属するパッケージを示し、コードの組織構造です
他のパッケージはパッケージ名を使ってこのパッケージの内容を呼び出します
packageは必須で、各ファイルの有効なコードの最初の行に存在する必要があります
package mainはプログラムのエントリーポイントとなり、このパッケージ内にmain関数を記述できます
2. im ...
6月3日 00:13 投稿