Roy学Kubernetes(8):Kubernetes之Service

Service是Kubernetes中的关键对象,Kubernetes将运行在一组pod上的应用程序公开为网络服务的抽象方法。为应用程序实现自动化的服务发现,为Pods提供了自己的IP地址和一组Pod的单个DNS名称,并且可以在它们之间进行负载均衡。

Service的由来

阅读全文

Roy学Kubernetes(7):Kubernetes之initContainers

什么是initContainers?

初始化容器,顾名思义容器启动的时候,会先启动可一个或多个容器,如果有多个,那么这几个initContainers按照定义的顺序依次执行,只有所有的initContainers执行完成功(返回状态为0)后,主容器才会启动。如果Pod的initContainers失败,Kubernetes会不断地重启该Pod,直到initContainers容器成功为止。但是,如果Pod对应的restartPolicy值为Never,它是不会重新启动。

阅读全文

Roy学Docker(6):容器镜像

如果你读完前面几章,应该掌握了docker的基本概念和用法,但是心里头肯定有个疑惑:docker的镜像是如何而来,此篇即将告诉你答案。

Docker镜像是容器的基础。 Image镜像是根文件系统更改的有序集合,以及在容器运行时内使用的相应执行参数。 镜像通常包含堆叠在彼此顶部的分层文件系统的并集。 它没有状态,且永远不会改变。

阅读全文

Roy学Docker(5):容器运行参数

前一章我们讲过如何创建一个容器,本章将继续讲解容器创建时的各类自定义参数,借助这些参数,实现我们对服务的各类需求,如端口监听、目录映射、环境变量配置等。

我们还是先看容器创建参数帮助命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
[root@node1 ~]# docker run --help

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

Options:
--add-host list Add a custom host-to-IP mapping (host:ip) (default [])
-a, --attach list Attach to STDIN, STDOUT or STDERR (default [])
--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--blkio-weight-device weighted-device Block IO weight (relative device weight) (default [])
--cap-add list Add Linux capabilities (default [])
--cap-drop list Drop Linux capabilities (default [])
--cgroup-parent string Optional parent cgroup for the container
--cidfile string Write the container ID to the file
--cpu-count int CPU count (Windows only)
--cpu-percent int CPU percent (Windows only)
--cpu-period int Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period int Limit CPU real-time period in microseconds
--cpu-rt-runtime int Limit CPU real-time runtime in microseconds
-c, --cpu-shares int CPU shares (relative weight)
--cpus decimal Number of CPUs (default 0.000)
--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
--credentialspec string Credential spec for managed service account (Windows only)
-d, --detach Run container in background and print container ID
--detach-keys string Override the key sequence for detaching a container
--device list Add a host device to the container (default [])
--device-read-bps throttled-device Limit read rate (bytes per second) from a device (default [])
--device-read-iops throttled-device Limit read rate (IO per second) from a device (default [])
--device-write-bps throttled-device Limit write rate (bytes per second) to a device (default [])
--device-write-iops throttled-device Limit write rate (IO per second) to a device (default [])
--disable-content-trust Skip image verification (default true)
--dns list Set custom DNS servers (default [])
--dns-option list Set DNS options (default [])
--dns-search list Set custom DNS search domains (default [])
--entrypoint string Overwrite the default ENTRYPOINT of the image
-e, --env list Set environment variables (default [])
--env-file list Read in a file of environment variables (default [])
--expose list Expose a port or a range of ports (default [])
--group-add list Add additional groups to join (default [])
--health-cmd string Command to run to check health
--health-interval duration Time between running the check (ns|us|ms|s|m|h) (default 0s)
--health-retries int Consecutive failures needed to report unhealthy
--health-timeout duration Maximum time to allow one check to run (ns|us|ms|s|m|h) (default 0s)
--help Print usage
-h, --hostname string Container host name
--init Run an init inside the container that forwards signals and reaps processes
--init-path string Path to the docker-init binary
-i, --interactive Keep STDIN open even if not attached
--io-maxbandwidth string Maximum IO bandwidth limit for the system drive (Windows only)
--io-maxiops uint Maximum IOps limit for the system drive (Windows only)
--ip string Container IPv4 address (e.g. 172.30.100.104)
--ip6 string Container IPv6 address (e.g. 2001:db8::33)
--ipc string IPC namespace to use
--isolation string Container isolation technology
--kernel-memory string Kernel memory limit
-l, --label list Set meta data on a container (default [])
--label-file list Read in a line delimited file of labels (default [])
--link list Add link to another container (default [])
--link-local-ip list Container IPv4/IPv6 link-local addresses (default [])
--log-driver string Logging driver for the container
--log-opt list Log driver options (default [])
--mac-address string Container MAC address (e.g. 92:d0:c6:0a:29:33)
-m, --memory string Memory limit
--memory-reservation string Memory soft limit
--memory-swap string Swap limit equal to memory plus swap: '-1' to enable unlimited swap
--memory-swappiness int Tune container memory swappiness (0 to 100) (default -1)
--name string Assign a name to the container
--network string Connect a container to a network (default "default")
--network-alias list Add network-scoped alias for the container (default [])
--no-healthcheck Disable any container-specified HEALTHCHECK
--oom-kill-disable Disable OOM Killer
--oom-score-adj int Tune host's OOM preferences (-1000 to 1000)
--pid string PID namespace to use
--pids-limit int Tune container pids limit (set -1 for unlimited)
--privileged Give extended privileges to this container
-p, --publish list Publish a container's port(s) to the host (default [])
-P, --publish-all Publish all exposed ports to random ports
--read-only Mount the container's root filesystem as read only
--restart string Restart policy to apply when a container exits (default "no")
--rm Automatically remove the container when it exits
--runtime string Runtime to use for this container
--security-opt list Security Options (default [])
--shm-size string Size of /dev/shm, default value is 64MB
--sig-proxy Proxy received signals to the process (default true)
--stop-signal string Signal to stop a container, SIGTERM by default (default "SIGTERM")
--stop-timeout int Timeout (in seconds) to stop a container
--storage-opt list Storage driver options for the container (default [])
--sysctl map Sysctl options (default map[])
--tmpfs list Mount a tmpfs directory (default [])
-t, --tty Allocate a pseudo-TTY
--ulimit ulimit Ulimit options (default [])
-u, --user string Username or UID (format: <name|uid>[:<group|gid>])
--userns string User namespace to use
--uts string UTS namespace to use
-v, --volume list Bind mount a volume (default [])
--volume-driver string Optional volume driver for the container
--volumes-from list Mount volumes from the specified container(s) (default [])
-w, --workdir string Working directory inside the container

阅读全文

Roy学Kubernetes(6):Kubernetes之Pod生命周期

Pod是Kubernetes中服务运行的最小单元,所有我们有必要对它的生命周期做更详细的了解。

Pod的状态

Pod有如下几种状态,通过kubelet get pod获取status字段查看

阅读全文

Roy学Docker(4):容器使用

Docker提供强大的命令行工具docker来管理你的容器,我们来看如何用它来管理容器,先查看容器管理帮助:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@node1 ~]# docker container --help

Usage: docker container COMMAND

Manage containers

Options:
--help Print usage

Commands:
attach Attach to a running container
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
exec Run a command in a running container
export Export a container's filesystem as a tar archive
inspect Display detailed information on one or more containers
kill Kill one or more running containers
logs Fetch the logs of a container
ls List containers
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
prune Remove all stopped containers
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
run Run a command in a new container
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
wait Block until one or more containers stop, then print their exit codes

Run 'docker container COMMAND --help' for more information on a command.

阅读全文

Roy学Kubernetes(5):Kubernetes安装

虽然kubernetes安装方式有多种,推荐使用kubeadm安装,操作非常方便,极大的提高了部署效率,以下为测试验证过程。

软件版本:

阅读全文

Roy学Docker(3):配置Docker服务

Docker服务的一些默认配置,可能不太适合我们使用。例如默认仓库源在国外,访问极慢;默认家目录为/var/lib/docker,可能不是我们想要的存储位置等等。虽然Docker支持服务运行时添加参数来自定义修改这些配置,但我推荐另一种json格式的配置方式:配置文件daemon.json,通俗易懂,配置方便(二种类型的配置参数不能冲突)。

阅读全文

Roy学Docker(2):Docker在CentOS下的安装

Docker现在已支持Linux、MacOS、Windows多个平台安装,但是为拥有更好的使用体验,建议大家在各类linux(包括MacOS)上测试使用Docker。此次仅以CentOS7上安装为例。CentOS从6.5(64bit)版本开始支持Docker,为了体验更好的Docker功能,建议使用CentOS7来安装。

阅读全文

Roy学Kubernetes(4):Kubernetes对象属性

在Kubernetes系统中,Kubernetes对象是持久化的实体。Kubernetes使用这些实体去表示整个集群的状态。它们描述了如下信息:

  • 哪些容器化应用在运行(以及在哪个节点上)
  • 可以被应用使用的资源
  • 关于应用运行时表现的策略,比如重启策略、升级策略,以及容错策略

阅读全文