100% found this document useful (1 vote)
19 views

Get Kubernetes Programming with Go: Programming Kubernetes Clients and Operators Using Go and the Kubernetes API 1st Edition Philippe Martin PDF ebook with Full Chapters Now

Operators

Uploaded by

woopylmj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
19 views

Get Kubernetes Programming with Go: Programming Kubernetes Clients and Operators Using Go and the Kubernetes API 1st Edition Philippe Martin PDF ebook with Full Chapters Now

Operators

Uploaded by

woopylmj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Download Full Version ebook - Visit ebookmeta.

com

Kubernetes Programming with Go: Programming


Kubernetes Clients and Operators Using Go and the
Kubernetes API 1st Edition Philippe Martin

https://ebookmeta.com/product/kubernetes-programming-with-
go-programming-kubernetes-clients-and-operators-using-go-
and-the-kubernetes-api-1st-edition-philippe-martin-2/

OR CLICK HERE

DOWLOAD NOW

Discover More Ebook - Explore Now at ebookmeta.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

Kubernetes Programming with Go: Programming Kubernetes


Clients and Operators Using Go and the Kubernetes API 1st
Edition Philippe Martin
https://ebookmeta.com/product/kubernetes-programming-with-go-
programming-kubernetes-clients-and-operators-using-go-and-the-
kubernetes-api-1st-edition-philippe-martin/
ebookmeta.com

Kubernetes: Preparing for the CKA and CKAD Certifications


Martin

https://ebookmeta.com/product/kubernetes-preparing-for-the-cka-and-
ckad-certifications-martin/

ebookmeta.com

Nonsequential and Distributed Programming with Go.


Christian Maurer

https://ebookmeta.com/product/nonsequential-and-distributed-
programming-with-go-christian-maurer/

ebookmeta.com

Against the Grain A Deep History of the Earliest States


1st Edition James C Scott

https://ebookmeta.com/product/against-the-grain-a-deep-history-of-the-
earliest-states-1st-edition-james-c-scott/

ebookmeta.com
Summer of New Love A Skyline Mansion Novella 1st Edition
Li Barr Nola

https://ebookmeta.com/product/summer-of-new-love-a-skyline-mansion-
novella-1st-edition-li-barr-nola/

ebookmeta.com

The Tangled Treasure Trail: A 1920s Mystery (Lord


Edgington Investigates... Book 5) 1st Edition Benedict
Brown
https://ebookmeta.com/product/the-tangled-treasure-
trail-a-1920s-mystery-lord-edgington-investigates-book-5-1st-edition-
benedict-brown/
ebookmeta.com

Atlas of Deformed and Metamorphosed Rocks from Proterozoic


Orogens 1st Edition Chetty

https://ebookmeta.com/product/atlas-of-deformed-and-metamorphosed-
rocks-from-proterozoic-orogens-1st-edition-chetty/

ebookmeta.com

A Cultural History of Hair in the Age of Enlightenment 1st


Edition Margaret K. Powell & Joseph Roach (Editors)

https://ebookmeta.com/product/a-cultural-history-of-hair-in-the-age-
of-enlightenment-1st-edition-margaret-k-powell-joseph-roach-editors-2/

ebookmeta.com

Unlocking PhD Success: How to Acquire Crucial PhD Skills


1st Edition Eelko Huizingh

https://ebookmeta.com/product/unlocking-phd-success-how-to-acquire-
crucial-phd-skills-1st-edition-eelko-huizingh/

ebookmeta.com
The German Working Class 1888 1933 The Politics of
Everyday Life 1st Edition Richard J. Evans

https://ebookmeta.com/product/the-german-working-class-1888-1933-the-
politics-of-everyday-life-1st-edition-richard-j-evans/

ebookmeta.com
Philippe Martin

Kubernetes Programming with Go


Programming Kubernetes Clients and Operators
Using Go and the Kubernetes API
Philippe Martin
Blanquefort, France

ISBN 978-1-4842-9025-5 e-ISBN 978-1-4842-9026-2


https://doi.org/10.1007/978-1-4842-9026-2

© Philippe Martin 2023

This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.

The use of general descriptive names, registered names, trademarks,


service marks, etc. in this publication does not imply, even in the
absence of a specific statement, that such names are exempt from the
relevant protective laws and regulations and therefore free for general
use.

The publisher, the authors, and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.

This Apress imprint is published by the registered company APress


Media, LLC, part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY
10004, U.S.A.
To Mélina and Elsa, my constant source of truth
Introduction
Back in 2017, I was working for a company building video streaming
software. At the end of that year, a small team, including me, got
assigned a new job to work on deploying the Video CDN developed by
the company on Kubernetes. We decided to explore the concept of
Custom Resources and Operators to deploy this CDN.
The current Kubernetes release was 1.9, the concept of Custom
Resource Definition had just been released in 1.7, and the sample-
controller repository was the only documentation we knew of to help
build an Operator. The Kubernetes ecosystem, being especially lively,
had tools appearing in the following months, specifically the
Kubebuilder SDK. Thus, our project was launched.
From that moment on, I spent numerous days exploring how to
build Operators and other programs interacting with the Kubernetes
API. But the damage was done: I had started to learn Kubernetes
programming from specific to general, and it took me a long time to
fully understand the innards of the Kubernetes API.
I have written this book in the hope that it can teach new
Kubernetes developers how to program, from general to specific, with
the Kubernetes API in Go.

Chapters at a Glance
The target reader for this book has some experience working with
REST APIs, accessing them either by HTTP or using clients for specific
languages; and has some knowledge of the Kubernetes platform,
essentially as a user—for example, some experience deploying such
APIs or frontend applications with the help of YAML manifests.
Chapter 1 of the book explores the Kubernetes API and how it
implements the principles of REST. It especially focuses on the
Group-Version-Resource organization and the Kind concept
proposed by the API.
Chapter 2 continues by covering the operations proposed by the API
and the details of each operation, using the HTTP protocol.
Chapters 3 to 5 describe the common and “low-level” Go libraries to
work with the Kubernetes API: the API and API Machinery Libraries.
Chapters 6 and 7 cover the Client-go Library—the high-level library
to work with the Kubernetes API in Go—and how to unit test code
using this library.
At this point in the book, the reader should be comfortable with
building Go applications working with native resources of the
Kubernetes API.
Chapters 8 and 9 introduce the concept of Custom Resources and
how to work with them in Go.
Chapters 10 to 12 cover the implementation of Kubernetes Operators
using the controller-runtime library.
Chapter 13 explores the Kubebuilder SDK, a tool to help develop and
deploy Kubernetes Operators.
By the end of the book, the reader should be able to start building
Kubernetes operators in Go and have a very good understanding of
what happens behind the scenes.
Any source code or other supplementary material referenced by the
author in this book is available to readers on GitHub via the book's
product page, located at https://github.com/Apress/Kubernetes-
Programming-with-Go-by-Philippe-Martin. For more detailed
information, please visit http://www.apress.com/source-code.
Acknowledgments
I would like to thank the whole Anevia “CDN” team who started
working with me on Kubernetes back in 2018: David, Ansou, Hossam,
Yassine, É tienne, Jason, and Michaël. Special thanks to Damien Lucas for
initiating this project and for having trusted us with this challenge.
My discovery of Kubernetes has been much easier and pleasant
thanks to the TGIK channel and its numerous episodes, hosted by Joe
Beda, Kris Nova, and many others. Plus, thanks to all the Kubernetes
community for such a great ecosystem!
Table of Contents
Chapter 1:​Kubernetes API Introduction
Kubernetes Platform at a Glance
OpenAPI Specification
Verbs and Kinds
Group-Version-Resource
Sub-resources
Official API Reference Documentation
The Deployment Documentation
Operations Documentation
The Pod Documentation
One-Page Version of the Documentation
Conclusion
Chapter 2:​Kubernetes API Operations
Examining Requests
Making Requests
Using kubectl as a Proxy
Creating a Resource
Getting Information About a Resource
Getting the List of Resources
Filtering the Result of a List
Deleting a Resource
Deleting a Collection of Resources
Updating a Resource
Managing Conflicts When Updating a Resource
Using a Strategic Merge Patch to Update a Resource
Applying Resources Server-side
Watching Resources
Filtering During a Watch Session
Watching After Listing Resources
Restarting a watch Request
Allowing Bookmarks to Efficiently Restart a watch Request
Paginating Results
Getting Results in Various Formats
Getting Results as a Table
Using the YAML Format
Using the Protobuf Format
Conclusion
Chapter 3:​Working with API Resources in Go
API Library Sources and Import
Content of a Package
types.​go
register.​go
doc.​go
generated.​pb.​go and generated.​proto
types_​swagger_​doc_​generated.​go
zz_​generated.​deepcopy.​go
Specific Content in core/​v1
ObjectReference
ResourceList
Taint
Toleration
Well-Known Labels
Writing Kubernetes Resources in Go
Importing the Package
The TypeMeta Fields
The ObjectMeta Fields
Spec and Status
Comparison with Writing YAML Manifests
A Complete Example
Conclusion
Chapter 4:​Using Common Types
Pointers
Getting the Reference of a Value
Dereferencing a Pointer
Comparing Two Referenced Values
Quantities
Parsing a String as Quantity
Using an inf.​Dec as a Quantity
Using a Scaled Integer as a Quantity
Operations on Quantities
IntOrString
Time
Factory Methods
Operations on Time
Conclusion
Chapter 5:​The API Machinery
The Schema Package
Scheme
Initialization
Mapping
Conversion
Serialization
RESTMapper
Kind to Resource
Resource to Kind
Finding Resources
The DefaultRESTMappe​r Implementation
Conclusion
Chapter 6:​The Client-go Library
Connecting to the Cluster
In-cluster Configuration
Out-of-Cluster Configuration
Getting a Clientset
Using the Clientset
Examining the Requests
Creating a Resource
Getting Information About a Resource
Getting List of Resources
Filtering the Result of a List
Setting LabelSelector Using the Labels Package
Setting Fieldselector Using the Fields Package
Deleting a Resource
Deleting a Collection of Resources
Updating a Resource
Using a Strategic Merge Patch to Update a Resource
Applying Resources Server-side with Patch
Server-side Apply Using Apply Configurations
Building an ApplyConfigurati​on from Scratch
Building an ApplyConfigurati​on from an Existing Resource
Watching Resources
Errors and Statuses
Definition of the metav1.​Status Structure
Error Returned by Clientset Operations
RESTClient
Building the Request
Executing the Request
Exploiting the Result
Getting Result as a Table
Discovery Client
RESTMapper
PriorityRESTMapp​er
DeferredDiscover​yRESTMapper
Conclusion
Chapter 7:​Testing Applications Using Client-go
Fake Clientset
Checking the Result of the Function
Reacting to Actions
Checking the Actions
Fake REST Client
FakeDiscovery Client
Stubbing the ServerVersion
Actions
Mocking Resources
Conclusion
Chapter 8:​Extending Kubernetes API with Custom Resources
Definitions
Performing Operations in Go
The CustomResourceDe​finition in Detail
Naming the Resource
Definition of the Resource Versions
Converting Between Versions
Schema of the Resource
Deploying a Custom Resource Definition
Additional Printer Columns
Conclusion
Chapter 9:​Working with Custom Resources
Generating a Clientset
Using deepcopy-gen
Using client-gen
Using the Generated Clientset
Using the Generated fake Clientset
Using the Unstructured Package and Dynamic Client
The Unstructured Type
The UnstructuredList​Type
Converting Between Typed and Unstructured Objects
The Dynamic Client
Conclusion
Chapter 10:​Writing Operators withthe Controller-Runtime
Library
The Manager
The Controller
Creating a Controller
Watching Resources
A First Example
Using the Controller Builder
A Second Example Using the ControllerBuilde​r
Injecting Manager Resources into the Reconciler
Using the Client
Getting Information About a Resource
Listing Resources
Creating a Resource
Deleting a Resource
Deleting a Collection of Resources
Updating a Resource
Patching a Resource
Updating the Status of a Resource
Patching the Status of a Resource
Logging
Verbosity
Predefined Values
Logger Name
Getting the Logger from Context
Events
Conclusion
Chapter 11:​Writing the Reconcile Loop
Writing the Reconcile Function
Checking Whether the Resource Exists
Implementing the Reconciled Resource
Simple Implementation Example
Conclusion
Chapter 12:​Testing the Reconcile Loop
The envtest Package
Installing envtest Binaries
Using envtest
Defining a ginkgo Suite
Writing the Tests
Test 1
Test 2
Test 3
Test 4
Conclusion
Chapter 13:​Creating an Operator with Kubebuilder
Installing Kubebuilder
Creating a Project
Adding a Custom Resource to the Project
Building and Deploying Manifests
Running the Manager Locally
Personalizing the Custom Resource
Editing the Go Structures
Enabling the Status Subresource
Defining Printer Columns
Regenerating the Files
Implementing the Reconcile Function
Adding RBAC Annotations
Deploying the Operator on the Cluster
Creating a New Version of the Resource
Defining a New Version
Implementing Hub and Convertible
Setting Up the webhook
Updating kustomization Files
Using Various Versions
Conclusion
Index
About the Author
Philippe Martin
has been working with Kubernetes for
five years, first by creating an Operator
to deploy video CDNs into the cloud,
later helping companies deploy their
applications into Kubernetes, then
writing a Client to help developers work
in a Kubernetes environment. Philippe
has passed the CKAD, CKA, and CKS
certifications. He has extensive
experience with distributed systems and
open-source software: he started his
career 20 years ago creating thin clients
based on the Linux kernel and open-
source components. He is currently
working at Red Hat on the Development
Tools team.
Philippe has been active in the development of Kubernetes,
especially its documentation, and participates in the translation of the
official documentation into French, has edited two reference books
about the Kubernetes API and kubectl, and is responsible for the
French translation of the Kubernetes Dashboard. He participated in
Google Season of Docs to create the new Kubernetes API Reference
section of the official documentation and is maintaining it.
About the Technical Reviewers
Bartosz Majsak
writes code for fun and profit while
proudly wearing a red fedora (also
known as the Red Hat). He has been
long-time open-source contributor and
Java developer turned into Golang
aficionado. Bartosz is overly enthusiastic
about coffee, open source, and speaking
at conferences, not necessarily in that
order. One thing that perhaps proves he
is not a total geek is his addiction to
alpine skiing (and running).

Prasanth
is a Blockchain Certified Professional,
Professional Scrum Master, and
Microsoft Certified Trainer who is
passionate about helping others learn
how to use and gain benefits from the
latest technologies. He is a thought
leader and practitioner in Blockchain,
Cloud, and Scrum. He also handles the
Agile Methodology, Cloud, and
Blockchain technology community
initiatives within TransUnion through
coaching, mentoring, and grooming
techniques.
Prasanth is an adjunct professor and
a technical speaker. He was selected as a speaker at the China
International Industry Big Data Expo 2018 by the Chinese government
and also was invited to the International Blockchain Council by the
Government of Telangana and Goa. In addition, he received accolades
from the Chinese government for his presentation at China
International Industry Big Data Expo 2018. Prasanth has published his
Patent, entitled “Digital Educational Certificate Management System
Using IPFS-Based Blockchain.”
To date, he has interacted extensively, reaching more than 50,000
students, mostly within the technical domain. Prasanth is a working
group member of the CryptoCurrency Certification Consortium, the
Scrum Alliance, the Scrum Organization, and the International Institute
of Business Analysis.
© The Author(s), under exclusive license to APress Media, LLC, part of Springer
Nature 2023
P. Martin, Kubernetes Programming with Go
https://doi.org/10.1007/978-1-4842-9026-2_1

1. Kubernetes API Introduction


Philippe Martin1

(1) Blanquefort, France

Kubernetes is a platform to orchestrate containers operating in the


declarative mode. There are one-thousand-and-one ways to describe
how the Kubernetes platform is constructed. This book focuses on
programming with the platform.
The entry point of the Kubernetes platform is the API. This chapter
explores the Kubernetes architecture by highlighting the central role of
the Kubernetes API. It then focuses on the HTTP REST nature of the
Kubernetes API, and on the extensions added to organize the many
resources managed by it.
Finally, you will learn how to navigate the reference documentation
effectively to be able to extract the maximum quantity of useful
information daily.

Kubernetes Platform at a Glance


On one side of the chain, the user declares the high-level resources to
build applications to deploy: Deployments, Ingresses, and so on.
In the middle, controllers are activated to transform these resources
into low-level resources (Pods), and the scheduler distributes these
resources into nodes. On the other side of the chain, the node agents
deploy the low-level resources onto nodes.
The main elements of the Kubernetes platform (commonly called
the control-plane) are highlighted in Figure 1-1 and described in the
following:
1. The API server – this is the central point on the control-plane; the
user and the various pieces of the control-plane contact this API to
create, get, delete, update, and watch resources.

2. The etcd database – this is only accessible by the API Server, is used
to persist the data relative to resources.

3. The Controller manager – this runs the controllers that transform


high-level resources declared by the user into low-level resources
to be deployed on nodes. The controllers are connected to the API
Server, watching for high-level resources and creating, deleting, and
updating low-level resources to satisfy the specifications declared
in high-level resources.

4. Scheduler – this distributes the low-level resources on the various


nodes. The Scheduler is connected to the API Server to watch for
unaffected resources and connect them to nodes.

5. Kubelet – this is an agent running on all nodes of the cluster, and


each agent manages the workloads affected to its node. The kubelet
is connected to the API Server to watch for Pods resources affected
to its node and to deploy the associated containers using the local
container runtime.

6. Kube proxy – this is an agent running on all nodes of the cluster,


and each agent manages the network configurations affected to its
node. The kube proxy is connected to the API Server to watch for
Service resources and to configure associated network rules on its
node.
Figure 1-1 The architecture of Kubernetes

OpenAPI Specification
The Kubernetes API is an HTTP REST API. The Kubernetes team
provides a specification for this API in the OpenAPI format, either in v2
format at
https://github.com/kubernetes/kubernetes/tree/mast
er/api/openapi-spec or in Kubernetes v1.24, in v3 format, at
https://github.com/kubernetes/kubernetes/tree/mast
er/api/openapi-spec/v3.
These specifications also are accessible from the API Server at these
paths: /openapi/v2 and /openapi/v3.
An OpenAPI specification is made up of various parts and, among
these, are a list of paths and a list of definitions. The paths are the URLs
you use to request this API, and for each path, the specification gives
the distinct operations such as get, delete, or post. Then for each
operation, the specification indicates what are the parameters and body
format for the request, and what are the possible response codes and
associated body format for the response.
The parameters and bodies for requests and responses can be
either simple types or, more generally, structures containing data. The
list of definitions includes data structures that help build the
parameters and bodies for the operations’ requests and responses.
Figure 1-2 is a simplified view of a specification for a User API. This
API can accept two different paths: /user/{userId} and /user. The first
path, /user/{userId}, can accept two operations, get and delete,
respectively, to receive information about a specific user, given its user
ID; and to delete information about a specific user, given its user ID. The
second path, /user, can accept a single operation, post, to add a new
user, given its information.
In this API, a definition of a structure User is given, describing the
information for a user: its ID, first name, and last name. This data
structure is used in the response body of the get operation on the first
path, and in the request body of the post operation on the second path.
Figure 1-2 A simplified user API specification

Verbs and Kinds


The Kubernetes API adds two concepts to this specification: the
Kubernetes API Verbs and the Kubernetes Kinds.
The Kubernetes API Verbs are mapped directly to the operations in
the OpenAPI specification. The defined verbs are get, create, update,
patch, delete, list, watch, and deletecollection. The correspondence
with the HTTP verbs can be found in Table 1-1.
Table 1-1 Correspondence Between Kubernetes API Verbs and HTTP Verbs

Kubernetes API Verb HTTP Verb


get GET
create POST
update PUT
patch PATCH
delete DELETE
list GET
watch GET
deletecollection DELETE
The Kubernetes Kinds are a subset of the definitions in the OpenAPI
specification. When requests are made to the Kubernetes API, data
structures are exchanged through the bodies of requests and responses.
These structures share common fields, apiVersion and kind, to help
the participants of the request recognize these structures.
If you wanted to make your User API manage this Kind concept, the
User structure would contain two additional fields, apiVersion and
kind—for example, with values v1 and User. To determine whether a
definition in the Kubernetes OpenAPI specification is a Kubernetes
Kind, you can look at the x-kubernetes-group-version-kind field of
the definition. If this field is defined, the definition is a kind, and it gives
you the values of the apiVersion and kind fields.

Group-Version-Resource
The Kubernetes API is a REST API, and as a result of that it manages
Resources, and the paths to manage these resources follow the REST
naming conventions—that is, by using a plural name to identify a
resource and by grouping these resources.
Because the Kubernetes API manages hundreds of resources, they
are grouped together, and because the API evolves, the resources are
versioned. For these reasons, each resource belongs to a given Group
and Version, and each resource is uniquely identified by a Group-
Version-Resource, commonly known as GVR.
To find the various resources in the Kubernetes API, you can browse
the OpenAPI specification to extract the distinct paths. Legacy
resources (e.g., pods or nodes) will have been introduced early in the
Kubernetes API and all belong to the group core and the version v1.
The paths to manage legacy resources cluster-wide follow the
format /api/v1/<plural_resource_name>—for example,
/api/v1/nodes to manage nodes. Note that the core group is not
represented in the path. To manage resources in a given namespace, the
path format is
/api/v1/namespaces/<namespace_name>/<plural_resource_nam
e>—for example, /api/v1/namespaces/default/pods to manage
pods in the default namespace.
Newer resources are accessible through paths following the format
/apis/<group>/<version>/<plural_resource_name> or
/apis/<group>/<version>/namespaces/<namespace_name>/<plu
ral_resource_name>.
To summarize, the formats of the various paths to access resources
are:
/api/v1/<plural_name> – to access legacy non-namespaced
resources
Ex: /api/v1/nodes to access non-namespaced nodes resources
or
To access legacy namespaced resources cluster-wide
Ex: /api/v1/pods to access pods across all namespaces
/api/v1/namespaces/<ns>/<plural_name> – to access legacy
namespaced resources in a specific namespace
Ex: /api/v1/namespaces/default/pods to access pods in the
default namespace
/apis/<group>/<version>/<plural_name> – to access non-
namespaced resources in specific group and version
Ex: /apis/storage.k8s.io/v1/storageclasses to access non-
namespaced storageclasses (group storage.k8s.io, version v1)
or
To access namespaced resources cluster-wide
Ex: /apis/apps/v1/deployments to access deployments across
all namespaces
/apis/<group>/<version>/namespaces/<ns>/<plural_name> – to
access namespaced resources in a specific namespace
Ex: /apis/apps/v1/namespaces/default/deployments to
access deployments (group apps, version v1) in the default
namespace

Sub-resources
Following the REST API convention, the resources can have sub-
resources. A sub-resource is a resource that belongs to another and can
be accessed by specifying its name after the name of the resource, as
follows:
/api/v1/<plural>/<res-name>/<sub-resource>
Ex: /api/v1/nodes/node1/status
/api/v1/namespaces/<ns>/<plural>/<res-name>/<sub-resource>
Ex: /api/v1/namespaces/ns1/pods/pod1/status
/apis/<group>/<version>/<plural>/<res-name>/<sub-resource>
Ex: /apis/storage.k8s.io/v1/volumeattachments/volatt1/status
/apis/<grp>/<v>/namespaces/<ns>/<plural>/<name>/<sub-res>
Ex: /apis/apps/v1/namespaces/ns1/deployments/dep1/status
Most Kubernetes resources have a status sub-resource. You can see,
when writing operators, that the operator needs to update the status
sub-resource to be able to indicate the state of this resource observed
by the operator. The operations that can be executed in the status sub-
resource are get, patch, and update. The Pod has more sub-resources,
including attach, binding, eviction, exec, log, portforward, and
proxy. These sub-resources are useful for getting information about a
specific running pod, or executing some specific operation on a running
pod, and so on.
The resources that can Scale (i.e., deployments, replicasets, etc.)
have a scale sub-resource. The operations that can be executed in the
scale sub-resource are get, patch, and update.

Official API Reference Documentation


The official reference documentation of the API can be found at
https://kubernetes.io/docs/reference/kubernetes-
api/. The resources managed by the API are first grouped together by
category (i.e., workloads, storage, etc.), and for each category, you can
obtain a list of resource names with a short description (Figure 1-3).
Note that these categories are not part of the Kubernetes API
definition but are used in this website to help inexperienced users find
their way into the multitude of available resources.

Figure 1-3 The Kubernetes resources grouped by category

To be precise, the name displayed is not the resource name in the


REST sense, but the associated principal kind, as shown in Figure 1-4.
For example, when managing Pods, the resource name used in the REST
paths is pods (i.e., lowercase and plural), and the definition used to
exchange information about Pods during HTTP requests is named Pod
(i.e., uppercase and singular). Note that other kinds can be associated
Discovering Diverse Content Through
Random Scribd Documents
advantage over the propeller type in the removal of dust lies in the
fact that they overcome greater internal resistance, and a uniform
high velocity in a complicated system of pipes can thus more easily
be maintained.

Fig. 3 shows adjustable hoods and ducts fitting closely over rollers for mixing
coloured inks, and serving not only to prevent inhalation of lead dust by the
workers, but also the colour from one machine affecting that on another. In the
particular room where the installation is fitted there are thirteen separate sets of
rollers; the diameter of the branch duct of each machine is about 5 inches, and
that of the main duct close to the fan about 20 inches. The special points we
have considered as to entrance of all branch ducts into the main duct
tangentially, gradual tapering of the main trunk, and collection of the dust in
filter-bags, are noticeable. Further, when one set of rollers is not in use the
raising of the hood automatically cuts off the draught through it. (Drawing
supplied by the Sturtevant Engineering Company, Limited, London.)

Ducts.—The main duct should be of metal (steel, sheet-iron, or


zinc); it should be circular in shape, have as straight and short a
course as possible, and be tapered in such manner that the area of
cross-section at any point shall equal the combined areas of all the
branch pipes which have entered it at that point (Fig. 3). Proper
dimensions must be studied in relation to the size of the fan and the
work to be done. Wooden ducts, unless chosen for specific reasons,
such as the presence of acid in the fumes to be removed, are very
unsatisfactory, as it is difficult to maintain them in an air-tight
condition or to make branch pipes enter with rounded junctions.
Where several branch ducts enter a main duct, situation of the fan
midway between them has advantage, not only in saving metal in
piping, but also in causing the distance of the fan from the farthest
branch duct to be only half what it would be were the fan placed at
the end of the system (see Fig. 7, p. 217). Further, the sectional area
of the two collecting ducts will be less than that of one main duct,
and greater uniformity of flow thereby secured. Where the two ducts
join up into the single duct of the fan, the bends must be easy;
otherwise the draughts would collide and neutralize one another.
Branch ducts, if they cannot be made tangential to a rounded curve,
should enter the main duct at an angle of 30 degrees, as by so doing
equalization of the draught at different openings is made fairly
uniform. The very common defect of a right-angle joint diminishes
the draught by nearly one-half. Branch ducts should never be made
to enter a main duct on the outer side of a bend, because at this
point the pressure of the current of air inside the duct is increased.
They should join up on the inside of a bend, where the pressure is
reduced.
Hoods and Air-Guides.—As the object of hoods is to
concentrate the draught on the fumes or dust to be removed from
the worker, position in regard to origin of the fumes or dust requires
first consideration. The more restricted the opening consistent with
unimpeded work, the more effective is the draught, and the less
disturbed will it be by cross-currents in the workroom. Pendock lays
it down as a useful principle that the area of the front opening into
the hood should not be more than four times that of the exhaust
throat—i.e., the point of junction of the hood and duct (Fig. 4). Not
less important is it that the draught should operate below the
breathing level. Preference as to the direction to be given to the
exhaust current should be in the order named: (1) Downwards; (2)
downwards and backwards combined; (3) backwards and upwards
combined; and (4) upwards only. Use should be made, for the
removal of the fumes or dust, of any initial current of hot air set up
from a bath of molten metal or from a heated metallic surface, as in
vitreous enamelling. Hence under such circumstances only (3) and
(4) need be considered. Generally hoods applied err in having too
wide an opening, or they are placed too far away from the source of
danger. They require sometimes to be adjustable to suit different-
sized articles. Care is necessary to see that, when a hood has been
adjusted for large articles, it is readjusted for smaller-sized articles.
The principle of ventilation downwards and backwards is recognized
as right for grinding and polishing on a wheel, since the tangential
current set up by the wheel in its rotation is utilized. Pug-mills in
paint-works are perhaps best ventilated by applying the exhaust to a
dome-shaped hood covering the posterior half of the mill. Edge-
runners must be encased, with an exhaust pipe attached to the
casing and sliding doors or shutters for introduction or removal of
material (Fig. 5). A small negative pressure inside the casing is all
that is necessary, so as to insure passage of air inwards and not
outwards. Branch ducts must protect the casks out of which material
is scooped, and the receptacle into which it is discharged. In
scooping out dry colour from a barrel, it is unwise to attempt to
remove the dust created at every displacement of air on removal of a
scoopful by means of a hood suspended over the barrel. Instead, the
last joint of the duct should be a telescopic one, so that it can be
lowered into the barrel, and be kept at a distance of about 6 inches
above the material. The air is thus drawn downwards into the barrel
(Fig. 6).
Fig. 4 shows a well-designed arrangement of hoods, duct, and fan, in the packing
of white lead, and the filter-bags for collecting the dust so removed. An
additional safeguard is introduced, as the casks stand upon grids through which
a down-draught is maintained by connecting the space underneath with the
exhaust system. (Drawing supplied by the Sturtevant Engineering Company,
Limited, London.)

Processes such as colour-dusting, aerographing, ware-cleaning,


enamel-brushing, and the like, are best carried out at benches under
hoods with glass tops. Air will enter from in front, and carry the dust
or spray away into the exhaust duct placed at the back of the bench.
Fig. 5 shows a pan mill with edge runners fitted with casing (partially open). The
casing is connected to a powerful fan, and branch ducts with telescopic terminal
sections control the dust in scooping out from the barrel, in feeding into the mill,
and at the point where the ground material is discharged.

Collection of Dust.—Frequently no heed is paid to the


collection of the dust. Sometimes a dust chamber is arranged to
intercept it on the far side of the fan, or attempt is made to blow the
dust into a tank of water. The fine dust of which we are speaking
cannot be satisfactorily collected by either of these methods, nor
even by a cyclone separator, so useful for the collection of many
kinds of dust. In lead works generally, the dust removed by the fan is
best collected in filter-bags made of some porous fabric. Various
efficient filters constructed on these lines by Messrs. Henry Simon,
Ltd.; Messrs. Beth and Co., Ltd.; and the Sturtevant Engineering
Company, Ltd., are on the market.
Fig. 6 shows an arrangement of piping with balanced telescopic joints fitted to a
Sirocco dust fan for removal of dust, in an electric accumulator works, when
scooping out litharge from a cask into the receptacle prior to emptying the
weighed quantity into the mixing machine, also under a hood connected with the
exhaust system. (Illustration supplied by Davidson and Company, Limited,
Belfast.)

In collecting the dust, care must be taken to provide an adequate


outlet for the spent air, so as to prevent creation of a source of
friction in front which might destroy the effectiveness of the
installation.
Fig. 7.—Exhaust Ventilation on the Patent “Pentarcomb” Principle applied
to Linotype and Monotype Machines in Printing Works, as installed by
the Zephyr Ventilating Company, Bristol.
P, Patent “pentarcomb” for equalizing exhaust; V, patent “pentarcomb” for general
ventilation; D, main and branch ducts; F, fan; U, upcast from fan; M, hoods over
metal-pots of monotype machines, constructed to raise and lower, and swing out
and in with metal-pot; L, hoods over metal-pots of linotype machines,
constructed to raise and lower.
In the illustration “pentarcomb” grids connect the branch ducts over the metal-pots
of mono and linotype machines with the main duct. The “pentarcomb” grids are
arranged also elsewhere in the main duct itself to assist in the general
ventilation of the workroom. The hoods over the metal-pots are constructed to
be raised and lowered, and to swing out and in radially with the melting-pot arm.
(Drawings supplied by the Zephyr Ventilating Company, Bristol.)

In order to secure equality of flow from a number of branched


ducts, the Zephyr Ventilating Company apply a special grating of
curved and slanting inlets—the “pentarcomb”—to each branch duct.
The air passing through the comb is split up into numerous small
columns, and the inclination of the curve which each is made to take
is such as to reduce friction to a minimum. By means of this device
we have found, in a trunk with twenty branches, the draught at the
one farthest from the fan as serviceable as that next to it. The
method is illustrated applied locally to remove the fumes from
linotype machines, and generally in the main duct for removal of foul
air near the ceiling.
Where electricity is available as a motive power for driving the fan,
some modification in the views expressed as to the curvature of the
pipes and system of installation can be allowed. In a red lead plant,
for instance, it may be desirable to have the pipes leading to the
sifter or packing machine with sharp angles, so as to prevent
tendency of such heavy dust to collect in them. The electric current
allows a fan to be installed at any point desired; and if applied with
knowledge that the increased friction due to an acute angle has to be
overcome, the result may be quite satisfactory.
The various forms of vacuum cleaning apparatus with
mouthpieces designed to aspirate the dust from different surfaces
are sure to be increasingly used. In our opinion, wherever electric
power is available, they will obviate barbarous methods involving use
of hand-brushes to collect dust from machines, such as those for
litho-dusting or for sweeping lead dust from benches and floors, or
use of bellows to blow out the dust from compositors’ cases.
Finally, the carrying out of lead processes by automatic methods
and with the interior of the casing under a negative pressure, so that
the material is transported from one process to another by means of
worms or conveyors, is everywhere to be aimed at. Or, again, it has
been found possible on a commercial scale, by means of
compressed air in a closed system of receivers and pipes, to force
material in very fine state of division from one place to another, as,
for instance, of litharge from the cask into the mixing machine for
preparation of the paste for manufacture of accumulator plates,
without risk of contact.
Indication of the efficiency of the draught may be gained by
holding smoke-paper at the orifice of the hood. The definition of
efficient exhaust in some regulations for the removal of fumes, as in
the Tinning Regulations, is that it shall not be deemed to be efficient
unless it removes smoke generated at the point where the fume
originates. Accurate gauging, however, of the draught can only be
done with an anemometer, so as to determine the number of linear
and cubic feet passing through the throat per minute. Only rarely
does one find an occupier alive to the value of the use of such an
instrument. The importance of this point has been recognized in the
Regulations for Heading of Yarn, by the requirement that the speed
of each exhaust opening shall be determined once in every three
months at least, and recorded in the general register. We prefer to
use Davis’s[A] self-timing anemometer, which gives readings in feet
per second without the need of a watch. Other useful anemometers
—Casella’s or Negretti and Zambra’s—require to be timed.
[A] It is not available for velocities exceeding 1,200 linear feet per minute.

The details of all routine observations on localized exhaust


ventilation might well be entered on a card hung up in the workroom.
Such a card drawn up by our colleagues, Miss Lovibond and Mr. C.
R. Pendock, has the following headings:

FIRM .......... PROCESS ..........


Fans: No. .......... Kind .......... Size ..........
Maker ..........
Motive power .......... H.P. ..........
Method of driving ...
Other load .......... Condition of driving
Screen .......... Dust collection ..........
Direction ..........
Periodic cleaning ..........
Hoods: No. .......... Kind .......... Size ..........
Structure ..........
Distance between each ..........
Ducts: No. .......... Kind ..........
Size .......... Length ..........Section ..........
Structure ..........
Periodic cleaning ..........
Fresh-Air Kind ..........
Inlets: No. .......... Position ..........
Size ..........
Fixed or temporary ..........

Hood: Position Date ..... Date .....


Reference of Anemo- External External
Number. meter. Conditions ..... Conditions ..... Re
Area Volume Area Volume
of Speed C.F. of Speed C.F.
Throat. F. p.m. p.m. Throat. F. p.m. p.m.

Frequent cleaning and inspection of exhaust installations are very


important, as accumulation of dust greatly impedes the flow of air at
all points of the system. The person employed in cleaning the fan
should wear a respirator. Hoods and ducts should always be cleaned
with the exhaust in full action.

REFERENCES.
[1] Annual Report of the Chief Inspector of Factories for 1910, p. 172.
[2] Ibid., pp. 172, 173.
[3] G. Elmhirst Duckering: A Report on an Experimental Investigation into
the Conditions of Work in Tinning Workshops, and Appendices. Included in
Special Report on Dangerous or Injurious Processes in the Coating of Metal
with Lead or a Mixture of Lead and Tin. Cd. 3793. Wyman and Sons, Ltd.
Price 1s.
G. Elmhirst Duckering: The Cause of Lead Poisoning in the Tinning of
Metals. Journal of Hygiene, vol. viii., pp. 474-503, 1908.
G. Elmhirst Duckering: Report on an Investigation of the Air of Workplaces
in Potteries. Included as Appendix XLIX. in Report of the Departmental
Committee appointed to inquire into the Dangers attendant on the Use of
Lead, and the Danger or Injury to Health arising from Dust and Other
Causes in the Manufacture of Earthenware and China, vol. ii., pp. 93-113,
1910. Cd. 5278. Price 1s. 9d.
[4] G. Elmhirst Duckering: Annual Report of the Chief Inspector of
Factories for 1910, p. 47.
[5] C. R. Pendock (one of H.M. Inspectors of Factories): Report on Systems
of Ventilation in Use in Potteries. Included as Appendix XLVIII. in vol. ii. of
Potteries Committee’s Report referred to under[3].
C. R. Pendock: Second Report of the Departmental Committee appointed to
inquire into the Ventilation of Factories and Workshops, part i., and
especially part ii., 1907. Cd. 3552 and 3553. Price together, 4s. 8d.
Other works referred to include—Construction des Usines au Point de Vue de
l’Hygiène, by Ingénieur-Architecte Maniguet. Ch. Béranger, Paris, 1906;
Hygiène Industrielle, by MM. Leclerc de Pulligny, Boulin, and others. J. B.
Baillière et Fils, Paris, 1908; and many excellently illustrated trade
catalogues issued by ventilating engineering firms, such as the Sturtevant
Engineering Company, Ltd., London; Henry Simon, Ltd., Manchester;
Davidson and Company, Ltd., Belfast; John Gibbs and Son, Liverpool.
CHAPTER XIII
PREVENTIVE MEASURES AGAINST LEAD
POISONING—Continued

Periodical Examination.—In various codes of regulations a


surgeon is required to make periodical medical examination of the
workers. The term “surgeon” is defined as the “Certifying Factory
Surgeon of the district, or a duly qualified medical practitioner,
appointed by written certificate of the Chief Inspector of Factories,
which appointment shall be subject to such conditions as may be
specified in that certificate.” The wording of the regulation varies
somewhat in different codes, but the intention in all is the same, and
the following example from the Tinning Regulations will indicate the
purpose and scope:
“Every person employed in tinning shall be examined by the surgeon once in
every three months (or at such shorter or longer intervals as may be prescribed in
writing by the Chief Inspector of Factories), on a day of which due notice shall be
given to all concerned. The surgeon shall have the power of suspension as
regards all persons employed in tinning, and no such person after suspension
shall be employed in tinning without written sanction from the surgeon entered in
the health register.
“Every person employed in tinning shall present himself at the appointed time for
examination by the surgeon. No person employed in tinning shall, after
suspension, work at tinning without written sanction from the surgeon entered in
the health register.”

Under the Special Rules for white-lead works, examination is


required at weekly intervals; under the Special Rules for
Earthenware and China, Manufacture of Litho-Transfers and Red
Lead, and under the Regulations for Electric Accumulators, and
Paints and Colours, monthly; under the Regulations for Tinning, Yarn
dyed with Chromate of Lead, and Enamelling, at quarterly intervals,
subject to the limitation or extension specified in the regulation
quoted.
The limitation as to quarterly examination is useful to meet
conditions, on the one hand, where special incidence calls for
increased safeguards; and, on the other, relaxation, by reason of
adoption of special processes or measures lessening risk. Thus, in a
yarn-dyeing factory, in consequence of occurrence of six cases
within five months, a weekly instead of a quarterly examination was
prescribed. After eight months, as no further cases were reported, a
monthly examination was substituted for the weekly, and eventually,
with continued absence of illness, the normal quarterly examination
was resumed.
An appointed time for the surgeon’s attendance at the factory has
been found necessary, because, in conformity with the literal wording
of the regulation, the occupier should not continue to employ a
worker who, for one reason or another, has not been examined by
the surgeon during the prescribed interval. With knowledge of the
date and hour posted in a conspicuous place in the factory, excuse
for absence becomes difficult. Alteration by the surgeon of his
appointed time should, whenever possible, be given beforehand.
Surgeons in the past frequently made examination of the persons
employed with the view of taking them unawares, and so of
precluding special preparation beforehand—a practice which had its
advantages; but they are outweighed by the hardship inflicted on
workers who were unavoidably absent, as, for example, night-
workers. A health register is supplied to all occupiers where
periodical medical examination is enjoined, the headings of which
and manner of entry are indicated later on in this chapter.
The objects which the surgeon should have in mind in making his
examination are:
1. To prevent lead poisoning and minimize lead absorption.
2. To obtain information for the occupier and Inspector of Factories
of the relative danger of one process and another with a view to
adoption of remedial measures.
In safeguarding the health of the workers, he should make effort to
gain their confidence, in order to be able to attach proper value to
statement as to subjective symptoms. Suspicion in their minds that
the examination is made solely in the interests of the employer
militates against success, and increases inclination to conceal
symptoms and to give untruthful answers as to the state of health
since the last examination. In our opinion, the surgeon will best carry
out the first object by attention to the second. The study of
thousands of reports on cases of lead poisoning convinces us that
90 per cent. at least are due to inhalation of dust and fumes. The
surgeon, therefore, should utilize the earliest sign of lead absorption
to warn the occupier and inspector of conditions favourable to the
development of plumbism, and due probably either to some
unguarded spot in the manufacturing process whereby dust or fumes
are not being removed completely, or to ignorance or carelessness
(often excusable in the absence of proper instruction) on the part of
the worker. He should direct, therefore, especial attention to new
workers, not only because of their need for guidance as to
precautions to be observed and greater liability to attack during the
first year of employment, but also because development of signs in
them constitutes the surest guide to defects in the process of
manufacture. Occasionally symptoms in a worker may be so
menacing as to demand immediate suspension, but generally before
the power is exercised attempt to rectify the condition which gives
rise to them should be made. The surgeon can do much by
influencing the foremen and forewomen, who will necessarily come
before him for examination, in insisting on the supervision by them of
care and cleanliness by the workpeople under their charge. Should
suspension, despite attention in the manner suggested, be
necessary, he will recognize that transference to a non-lead process,
if feasible, is preferable to entire cessation from work in very many
cases. The surgeon, therefore, should know what departments are
possible alternatives to lead work.
The fact that an examination is made on factory premises, is
directed to detection and prevention, treatment taking a subordinate
place, and is often made on persons who, unlike hospital patients,
seek to conceal their symptoms, causes it to be an examination sui
generis. Hence the surgeon must trust his sight more than his
hearing. A surgeon with experience of such work has said: “The
worker in lead must be surveyed as an individual, and idiosyncrasies
must be carefully studied and allowed for; the ‘personal equation’ is
of vital importance”[1].
For the examination a well-lighted room affording privacy is
essential. While it is desirable for the surgeon periodically to see the
processes and conditions under which work is carried on, systematic
examinations of workers should not be made elsewhere than in a
private room. The custom of marshalling workers in a queue,
although perhaps unavoidable in many cases, is liable to detract
from the seriousness of the proceedings, a sense of which it should
be one of the aims of the examination to arouse. In discussing the
method of interrogation and usual examination, Dr. King Alcock[2],
Certifying Factory Surgeon of Burslem, says: “Note the general
manner assumed in answering questions and any indications of
carelessness in dress and toilet. Inquire into the state of digestion,
existence of colicky pains, regularity of bowels, menses, history of
pregnancies and miscarriages, whether before, in the intervals of, or
during lead employment; existence of headache, diplopia, or
amaurosis. Note the type, facies, state of teeth and nails,
complexion, speech, tongue, strength of grasp (if possible, with
dynamometer), any tremor in outstretched hand, resistance to
forcible flexion of wrist.... If strabismus is present, note whether of
old standing or recent; and if ocular troubles seem imminent,
examine for optic neuritis, either at once or at home (this is very
important, as cases of acute and serious optic neuritis still baffle
examination by their intermensual development).” He recommends
the surgeon, apart from entry in the health register, which must
necessarily be very brief, to keep a private notebook, and to enter in
it as a matter of routine such details as name, process, age, duration
of employment, condition (married or single), pregnancies, state of
bowels and menses, dental toilet, and any special point worthy of
note in individual workers. A card index, if in use, might conveniently
serve for such entries.
In the actual routine examination it may be useful to describe the
procedure where a large number of workers pass before the surgeon
in a white-lead works every week. The points noted are:
1. The general appearance of the man as he walks forward,
especially the face with regard to anæmia, which in the majority of
cases of early lead absorption is not a true anæmia, but is due to
vaso-motor spasm of the arterioles of the face and eyes. Frequently,
on speaking to a lead-worker, the face, apparently anæmic, flushes
directly.
2. The brightness of the eyes, state of the pupils, and condition of
the conjunctiva and of the ocular muscles.
3. The mouth should next be examined, and search made for any
evidence of blue line around the gum.
4. The gait should be watched both on advancing to, and retiring
from, the surgeon. If necessary, the man should be made to walk a
few steps. Although the peroneal type of palsy is extremely rare, the
possibility of its occurrence should never be absent from the mind of
the surgeon.
5. The man should then be directed to stretch his hands out in
front of him, with wrists extended and fingers widely spread.
Presence or absence of tremor should be looked for, and the
condition of the finger-nails, as to the practice of biting, etc. The
extensor power should then be tested, firstly of the fingers. While the
hands of the workman remain outstretched, the surgeon places the
forefinger of his hand in the outstretched palm of the workman, and
the ball of the thumb upon the extreme tip of each finger, and by
gently pulling it down, noting the spring present in the muscles. This
test is probably the most delicate there is for detection of early
extensor paralysis. The condition of the lumbricals and interossei are
noted on movement of the fingers. The extensors of the wrist are
then further examined, the workman being directed to flex his arm at
the elbow and strongly pronate the wrist, so that the palm of the
hand is directed forwards. He is then told to close the fist when the
surgeon endeavours to flex the wrist, the workman at the same time
resisting by forcible extension of his wrist. Ordinarily the extensor
communis digitorum and minimi digiti are sufficiently powerful to
resist a very powerful pull upon the wrist; and if the wrist is found to
yield, it is a sign that the muscles are affected. Sometimes the
strength of the wrists and fingers is judged by the surgeon placing
his palms on the dorsum of the patient’s outstretched hands, and
seeing whether the patient can be prevented from lifting them
without flexing the wrists or finger-joints.
The test detects (1) paralysis which has been recovered from to a
large extent; (2) commencing partial paralysis; and (3) weakness of
muscular power, especially in those who have worked in lead for a
number of years. This weakness appears to be an effect of lead
upon the muscular tissue or dependent on debility, the result of lead
absorption, and independent of nerve implication. We have known
the condition to remain unaltered for years, and also to undergo
alteration, being at times absent for months together. Occasionally
reports of definite paralysis refer to pre-existing weakness.
6. The pulse is next noted. The pulse-rate need not ordinarily be
counted, but if it is either very slow or fast careful examination at the
conclusion of the general inspection should be made.
It is well to make all these points before asking any questions.
After they are completed inquiry as to regularity of the bowels,
existence of pain or discomfort, would follow. The speech should be
noted, as slurring or hesitating speech is occasionally associated
with early lead poisoning.
All these points can be gone through quite rapidly, and at the
conclusion of the general examination, if judgment is in suspension,
careful examination in the routine medical manner should be made.
In some factories all new workers are examined by the surgeon
before they commence work in dangerous processes. At any rate, a
list of such persons should be given to the surgeon at his visit, as
naturally the question of personal fitness for employment should be
decided at his first examination. Conditions which should lead to
rejection are tubercular disease of every kind, idiopathic epilepsy, all
forms of mental disease or weakness (hysteria, feeble-mindedness,
and neurasthenia), obvious alcoholism, women who are pregnant or
who give a history of repeated miscarriages prior to work in lead,
persons with marked errors of refraction unless corrected by
glasses, kidney disease of all kinds, evidence of previous chronic
saturnism, and bad oral sepsis. Special attention will have to be paid
to casual labourers, and it should be the aim of the surgeon to
discourage this class of labour in lead industries. Work under special
rules or regulations requires to be carried out under strict discipline,
and this it is extremely difficult to maintain on other than regular
workers, who recognize the need for cleanliness and observance of
regulations.
Other aids to diagnosis cannot be carried out as a matter of
routine, but will necessarily be used in particular cases, such as
ophthalmoscopic examination of the fundus, electrical reactions of
muscles, analysis of the urine, and examination of the blood-
pressure.
A few words may be added on the significance of the two
commonest signs—the blue line and anæmia. It cannot be too
strongly insisted on that presence of the Burtonian line on the gums
is, as a rule, indicative of lead absorption, and not of lead poisoning.
As a danger signal its value is immense, and hardly less so its value
in clinching diagnosis in doubtful cases. Whenever the line is seen
risk is imminent, and poisoning (not necessarily of the individual in
whom it is pronounced) among the workers is inevitable in the
absence of adoption of precautions. Unfortunately, careful dental
toilet, which the surgeon will necessarily lay stress on, may prevent
development, or the practice, when adopted, cause disappearance
of the line after the lapse of a few months. Under these
circumstances, the merest trace will have all the significance of the
fully-developed line in a worker neglectful of care of the teeth.
Among new workers a commencing blue line should be strong
evidence of the need for dust removal at some point in the process
of manufacture. The line, in our experience, is dense in occupations
giving rise to fumes or to dust of compounds of lead, but
comparatively rare in those handling metallic lead or its alloys, as
compositors, tea-lead rollers, solderers, and the like.
Some degree of pallor is so commonly met with in adolescence
that it is the progressive development of the anæmia which the
surgeon must especially watch for. As a danger signal, therefore, it
has the same significance nearly as the blue line; but when lead
absorption has affected the elements in the blood, progressive
anæmia in new workers, attributable to the employment, and
showing no tendency to improve after watching for a few months, is
an indication for suspension or transference to other work. In older
workers, with a duration of employment of five years or more, there
may be a quasi-pathognomonic pallor which does not vary from year
to year. In them it must be supposed that an equilibrium has been
established, and development of other symptoms, such as tremor,
wrist weakness, or albuminuria, becomes significant. Attention has
already been directed to the distinct saturnine facies associated with
anæmia, and characterized by loss of fat, particularly noticeable in
the orbit and buccinator region of the face. “So far as the question of
any worker’s suspension is concerned,” says Dr. King Alcock, “I
prefer to make my instinctive primâ facie distrust of a saturnine pallor
the basis for action. The pallor of plumbism cannot be summed up in
hæmoglobin and corpuscular content; it is the expression of a
complex toxæmia resulting from defective assimilation and
excretion”[3].
The knowledge the surgeon should gain of the idiosyncrasies of
the workers by his periodical examination will enable him to appraise
at their proper value the nature and degree of the symptoms in
notified cases.
Sometimes a rule is made that no lead-worker who has suffered
from an attack of plumbism should be allowed to resume work. This
we consider too harsh a measure. It may be true for painters, but
when remedial measures, such as locally applied exhaust
ventilation, can be applied, with consequent removal of the danger in
the process at which the poisoning has arisen, prohibition of
employment seems an unnecessarily drastic measure.
The health register in general use where periodic medical
examination is required in pursuance of special rules and regulations
is divided into two parts, in each of which entries by the surgeon are
required at each visit.
Part I.

List of Persons Employed in Processes. Particulars of Examina


First Employed
Worker’s Name, in such Process. Date Date Date
No. in full. Process. Age. Date. Result. Result. Result.
(1) (2) (3) (4) (5) (6) (7) (8)
Part II.

Particulars of any Directions


given by the Surgeon.
Reference to Any Certificate of Suspension
Part 1. Date of Number of or Certificate permitting
Examina- Persons Resumption of Work Signa
Page. Col. tion. Examined. must be entered here in full. of Surg
(1) (2) (3) (4) (5) (6)

In Part I. of the register the surgeon should, at the times of


examination, enter the date at the head of one of the columns
numbered 6 to 9; and in the space below, opposite the name of each
person examined on that date, a brief note (see next page) of the
condition found.
In Part II. he should again enter, in Column 3, the date of
examination, with a statement of the total numbers examined on that
occasion (Column 4); and in Column 5 any certificate of suspension
from work, or certificate permitting resumption of work, and
particulars of any other direction given by him, appending his
signature in Column 6.
It is the duty of the occupier to enter in Part I. the following
particulars with regard to each person examined: (1) Name in full
(Column 2); (2) the process in which he or she is employed (Column
3); (3) age when first employed (Column 4); and (4) date of first
employment in that process (Column 5); and these particulars, in

You might also like