Argh, getting hang of golang and kubernetes. Initial handshake done.
diff --git a/chunk/chunk.go b/chunk/chunk.go
new file mode 100644
index 0000000..1dde057
--- /dev/null
+++ b/chunk/chunk.go
@@ -0,0 +1,76 @@
+package main
+
+import "context"
+import "flag"
+import "fmt"
+import "log"
+import "net"
+import "time"
+
+import "google.golang.org/grpc"
+
+import pc "pcloud"
+
+var masterAddress string
+var selfAddress string
+
+func init() {
+	flag.StringVar(&masterAddress, "master", "localhost:123", "Metadata storage address.")
+	flag.StringVar(&selfAddress, "self", "", "Metadata storage address.")
+}
+
+type chunkStorage struct {
+}
+
+func (s *chunkStorage) ListChunks(
+	ctx context.Context,
+	request *pc.ListChunksRequest) (*pc.ListChunksResponse, error) {
+	return nil, nil
+}
+
+func (s *chunkStorage) ReadChunk(
+	ctx context.Context,
+	request *pc.ReadChunkRequest) (*pc.ReadChunkResponse, error) {
+	return nil, nil
+}
+
+func (s *chunkStorage) StoreChunk(
+	ctx context.Context,
+	request *pc.StoreChunkRequest) (*pc.StoreChunkResponse, error) {
+	return nil, nil
+}
+
+func main() {
+	flag.Parse()
+	log.Print("Chunk server starting")
+
+	// Create Master server client.
+	var opts []grpc.DialOption
+	opts = append(opts, grpc.WithInsecure())
+	opts = append(opts, grpc.WithBlock())
+	conn, err := grpc.Dial(masterAddress, opts...)
+	if err != nil {
+		log.Fatalf("Failed to dial %s: %v", masterAddress, err)
+	}
+	defer conn.Close()
+	client := pc.NewMetadataStorageClient(conn)
+
+	// Register current Chunk server with Master.
+	ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
+	_, err = client.AddChunkServer(
+		ctx,
+		&pc.AddChunkServerRequest{Address: selfAddress})
+	if err != nil {
+		log.Fatalf("failed to register chunk server: %v", err)
+	}
+	log.Print("Registered myself")
+
+	// Start RPC server
+	lis, err := net.Listen("tcp", fmt.Sprintf(":%d", 234))
+	if err != nil {
+		log.Fatalf("failed to listen: %v", err)
+	}
+	server := grpc.NewServer()
+	pc.RegisterChunkStorageServer(server, &chunkStorage{})
+	server.Serve(lis)
+}