티스토리 뷰

# 컨테이너 busybox 에서 외부 DB 서버 접속 테스트

참고유튜브 : https://www.youtube.com/watch?v=CXrrkl4Zamc&t=105s

도커네트워크.pptx
0.52MB

 

# docker 의 네트워크 생성하기 

$ docker network create --driver bridge --subnet 192.168.100.0/24  --gateway 192.168.100.254 mynet

Create a network
[root@m-k8s podtest]# docker network create --driver bridge --subnet 192.168.100.0/24 --gateway 192.168.100.254 mynet
81c2f6e1baae3f0e918fec4a4d2b3e3c4b4c220da459880d1da5c28b4c6c844c


[root@m-k8s podtest]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
fda3e8a5f2e6   bridge    bridge    local
35f51fa9cef9   host      host      local
81c2f6e1baae   mynet     bridge    local
8d73da63f0fa   none      null      local

# mynet 의 브릿지가 생성확인

# mynet 에 대한 네트워크 체크

$ docker network inspect mynet

[root@m-k8s podtest]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "81c2f6e1baae3f0e918fec4a4d2b3e3c4b4c220da459880d1da5c28b4c6c844c",
        "Created": "2023-06-11T00:20:35.46032778+09:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.100.0/24",
                    "Gateway": "192.168.100.254"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

# subnet 과 gateway 확인

#고정이이피 설정 192.168.100.100 설정

[root@m-k8s vagrant]# docker run -it --name c1 --net mynet --ip 192.168.100.100 busybox
/ #
/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
34: eth0@if35: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
    link/ether 02:42:c0:a8:64:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.100/24 brd 192.168.100.255 scope global eth0
       valid_lft forever preferred_lft forever
/ #

#고정아이피 설정확인 192.168.100.100

#핑테스트

아래는 도커 내부안
/ # ping -c 2 192.168.29.15
PING 192.168.29.15 (192.168.29.15): 56 data bytes
64 bytes from 192.168.29.15: seq=0 ttl=63 time=1.135 ms
64 bytes from 192.168.29.15: seq=1 ttl=63 time=0.706 ms

#외부 mysql 서버 통신 (mysql  Server IP : 192.168.29.15)

#mysql wordpress 설치 테스트 

 

[root@m-k8s vagrant]# docker run -d --name mysql -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7
Unable to find image 'mysql:5.7' locally
5.7: Pulling from library/mysql
e83e8f2e82cc: Extracting [====================================>              ]  37.22MB/50.5MB
0f23deb01b84: Download complete
f5bda3b184ea: Download complete
ed17edbc6604: Download complete
33a94a6acfa7: Download complete
f153bd2953e4: Download complete
ab532edfb813: Download complete
c76bdfe4f3d0: Download complete
8a7ffe2f2551: Download complete
857ada4fbbcc: Download complete
b7c508404c3c: Download complete
[root@m-k8s vagrant]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                   NAMES
2919ef1ef2c9   mysql:5.7   "docker-entrypoint.s…"   13 minutes ago   Up 13 minutes   3306/tcp, 33060/tcp     mysql
cc1c59770ac3   nginx       "/docker-entrypoint.…"   6 hours ago      Up 6 hours      0.0.0.0:32770->80/tcp   web99
114d866b6232   nginx       "/docker-entrypoint.…"   6 hours ago      Up 6 hours      0.0.0.0:32769->80/tcp   web3
102008183a94   nginx       "/docker-entrypoint.…"   6 hours ago      Up 6 hours      0.0.0.0:80->80/tcp      web9

mysql:5.7 docker 확인

 

 

 

 

#볼륨정보 /dbdata

[root@m-k8s vagrant]# cd /dbdata/
[root@m-k8s dbdata]# ll
total 188484
-rw-r-----. 1 polkitd input       56 Jun 11 01:38 auto.cnf
-rw-------. 1 polkitd input     1676 Jun 11 01:38 ca-key.pem
-rw-r--r--. 1 polkitd input     1112 Jun 11 01:38 ca.pem
-rw-r--r--. 1 polkitd input     1112 Jun 11 01:39 client-cert.pem
-rw-------. 1 polkitd input     1676 Jun 11 01:39 client-key.pem
-rw-r-----. 1 polkitd input     1318 Jun 11 01:39 ib_buffer_pool
-rw-r-----. 1 polkitd input 79691776 Jun 11 01:39 ibdata1
-rw-r-----. 1 polkitd input 50331648 Jun 11 01:39 ib_logfile0
-rw-r-----. 1 polkitd input 50331648 Jun 11 01:38 ib_logfile1
-rw-r-----. 1 polkitd input 12582912 Jun 11 01:39 ibtmp1
drwxr-x---. 2 polkitd input     4096 Jun 11 01:39 mysql
lrwxrwxrwx. 1 polkitd input       27 Jun 11 01:39 mysql.sock -> /var/run/mysqld/mysqld.sock
drwxr-x---. 2 polkitd input     8192 Jun 11 01:39 performance_schema
-rw-------. 1 polkitd input     1680 Jun 11 01:39 private_key.pem
-rw-r--r--. 1 polkitd input      452 Jun 11 01:39 public_key.pem
-rw-r--r--. 1 polkitd input     1112 Jun 11 01:39 server-cert.pem
-rw-------. 1 polkitd input     1676 Jun 11 01:39 server-key.pem
drwxr-x---. 2 polkitd input     8192 Jun 11 01:39 sys

# /dbdata

워드 프레스 설치

[root@m-k8s podtest]# docker run -d --name wordpress --link mysql:mysql -e WORDPRESS_DB_PASSWORD=wordpress -p 80:80 wordpress:4
Unable to find image 'wordpress:4' locally
4: Pulling from library/wordpress
a5a6f2f73cd8: Downloading [=========================>                         ]  11.48MB/22.49MB
633e0d1cd2a3: Download complete
fcdfdf7118ba: Downloading [======>                                            ]  9.187MB/67.43MB
4e7dc76b1769: Download complete
c425447c8835: Downloading [==============>                                    ]  4.852MB/17.13MB
75780b7b9977: Waiting
33ed51bc30e8: Waiting
7c4215700bc4: Waiting
ef55a760eb7a: Waiting
d982e3946ac5: Waiting
a38e2fdf4f50: Waiting
09f702917a0a: Waiting
df1d46358537: Waiting
9b0d5695ec42: Waiting
7abe1c1f0479: Waiting
db1df7737fbd: Waiting
da5248206256: Waiting
e850a08a7c7e: Waiting
e5e7ecd1752b: Waiting

 

#설치

#mysql 설치 
[root@m-k8s dbdata]# docker run -d --name mysql -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7
a17634a8f43e82ab80817282f1d821eaaf51e10b593736029d94a9660b20aff9

#wordpress  설치 
[root@m-k8s dbdata]# docker run -d --name wordpress1 --link mysql:mysql -e WORDPRESS_DB_PASSWORD=wordpress -p 80:80 wordpress:4
393dcef1b9d27e8561566a4b75ab2f3e90facdbf76eb17f9d64bea662e7f6af9

[root@m-k8s dbdata]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED         STATUS         PORTS                 NAMES
393dcef1b9d2   wordpress:4   "docker-entrypoint.s…"   3 seconds ago   Up 2 seconds   0.0.0.0:80->80/tcp    wordpress1
a17634a8f43e   mysql:5.7     "docker-entrypoint.s…"   8 seconds ago   Up 7 seconds   3306/tcp, 33060/tcp   mysql

# 서버아이피로 접속 : http://192.168.29.10 web 으로 화면 접속

passwd : JqJhGse$RUwGbA7g2x

성공!

로그인후 게시판 확인!

 

아래 /DBDATA 경로에 /wordpress 경로확인!

그림으로 확인해보면..

 

$docker inspect 393dcef1b9d2 (wordpress의 IP는 172.17.0.3)

 

$docker inspect a17634a8f43e    (mysql 의 IP는 172.17.0.2)

[root@m-k8s wordpress]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                 NAMES
393dcef1b9d2   wordpress:4   "docker-entrypoint.s…"   15 minutes ago   Up 15 minutes   0.0.0.0:80->80/tcp    wordpress1
a17634a8f43e   mysql:5.7     "docker-entrypoint.s…"   15 minutes ago   Up 15 minutes   3306/tcp, 33060/tcp   mysql


[root@m-k8s wordpress]# docker inspect 393dcef1b9d2
[
    {
        "Id": "393dcef1b9d27e8561566a4b75ab2f3e90facdbf76eb17f9d64bea662e7f6af9",
        "Created": "2023-06-10T17:04:08.760942069Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "apache2-foreground"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 31824,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-06-10T17:04:09.072055994Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:67daae3fda616760e26d42cf747a965599191f3cc8e6f35b132dad811951bedf",
        "ResolvConfPath": "/var/lib/docker/containers/393dcef1b9d27e8561566a4b75ab2f3e90facdbf76eb17f9d64bea662e7f6af9/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/393dcef1b9d27e8561566a4b75ab2f3e90facdbf76eb17f9d64bea662e7f6af9/hostname",
        "HostsPath": "/var/lib/docker/containers/393dcef1b9d27e8561566a4b75ab2f3e90facdbf76eb17f9d64bea662e7f6af9/hosts",
        "LogPath": "/var/lib/docker/containers/393dcef1b9d27e8561566a4b75ab2f3e90facdbf76eb17f9d64bea662e7f6af9/393dcef1b9d27e8561566a4b75ab2f3e90facdbf76eb17f9d64bea662e7f6af9-json.log",
        "Name": "/wordpress1",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "80/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "80"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": [
                "/mysql:/wordpress1/mysql"
            ],
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/cf4e7ec1e9de9f0846c9733ed7c070cd2261f8460f5d8ffaaf52463e8e83fe85-init/diff:/var/lib/docker/overlay2/17d93ffbb916f1808682c63344f41ff81cbd9afdc9d92f1f895c6069a92d0d24/diff:/var/lib/docker/overlay2/5b9ba002a211ea50da17574495231716a53982c85c05a52b1823ddd33a9c3dd2/diff:/var/lib/docker/overlay2/adee7f5483b48692da204dda221b3a02c29c9224a01cb2f91f6aa60068ac31fe/diff:/var/lib/docker/overlay2/13fb68ef076f2264c7c55f170829c82d069f68fd029657b4af36863018afc989/diff:/var/lib/docker/overlay2/398d1fbf22ef9d09d2d32d28babebf2d70ea5eed96a3db317754bdece2d8aee1/diff:/var/lib/docker/overlay2/dd873d4569729814ce5b02eab29f9729f6325f39025432def1312c2f44411c3d/diff:/var/lib/docker/overlay2/1c8da492dc9c33aa31abc81246bc754a44d7cd4d0102e95225749fd7563ff844/diff:/var/lib/docker/overlay2/abbe45ed4e22650bc3c2a56836ed6a617ea967717677e2e0917022c4831b646a/diff:/var/lib/docker/overlay2/7ebe7d544955a6f00f074a2d1beb0d145e6f1d6f7d6123b3f8126caf4305a6d3/diff:/var/lib/docker/overlay2/45c219e16b7b563776b88d76f3449a081ea875440aa50b6150e7205bce2be3db/diff:/var/lib/docker/overlay2/72711bccb480c8ab6f67894bbf1c1575d98da82feca846bd04098db254c5b80d/diff:/var/lib/docker/overlay2/8909738efe4665a16c9417321ab025295a7d8a2d248fb0d82eaea83122ceb574/diff:/var/lib/docker/overlay2/35e6dc5964f7cf365ee8a20f58dfb9146812a1e55406b6e7d6710394072ffe75/diff:/var/lib/docker/overlay2/b25def814d5beee2e184e4fc4925e5c0c61d42a5cbe0252e8f7758a805d26b44/diff:/var/lib/docker/overlay2/dee4394f1574e48e05835ecb900e8befc9268a54ce5b0aed34da2a50da4baa5f/diff:/var/lib/docker/overlay2/915d70d8e60c5e9ef2ee33967f5640168ba933393681d397b54e712926778764/diff:/var/lib/docker/overlay2/0e06003c0842baae65232a078b3baeea215d011264a64a9c1c4b72fa1d2f7aaa/diff:/var/lib/docker/overlay2/95259078fefca9a426acd06666cb6172fc5d239848c8cd4e517bf4296ded0cb5/diff:/var/lib/docker/overlay2/e4125f4bc890f5da7fa124249dd72818ac6afdc420b7136cb9229b767940c7b0/diff",
                "MergedDir": "/var/lib/docker/overlay2/cf4e7ec1e9de9f0846c9733ed7c070cd2261f8460f5d8ffaaf52463e8e83fe85/merged",
                "UpperDir": "/var/lib/docker/overlay2/cf4e7ec1e9de9f0846c9733ed7c070cd2261f8460f5d8ffaaf52463e8e83fe85/diff",
                "WorkDir": "/var/lib/docker/overlay2/cf4e7ec1e9de9f0846c9733ed7c070cd2261f8460f5d8ffaaf52463e8e83fe85/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "volume",
                "Name": "23e7a4f5757c770715cad96ba573ef488c25c0b898a2967bae414bf1d51b4189",
                "Source": "/var/lib/docker/volumes/23e7a4f5757c770715cad96ba573ef488c25c0b898a2967bae414bf1d51b4189/_data",
                "Destination": "/var/www/html",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "393dcef1b9d2",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "WORDPRESS_DB_PASSWORD=wordpress",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "PHPIZE_DEPS=autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c",
                "PHP_INI_DIR=/usr/local/etc/php",
                "APACHE_CONFDIR=/etc/apache2",
                "APACHE_ENVVARS=/etc/apache2/envvars",
                "PHP_EXTRA_BUILD_DEPS=apache2-dev",
                "PHP_EXTRA_CONFIGURE_ARGS=--with-apxs2 --disable-cgi",
                "PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2",
                "PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2",
                "PHP_LDFLAGS=-Wl,-O1 -Wl,--hash-style=both -pie",
                "GPG_KEYS=1729F83938DA44E27BA0F4D3DBDB397470D12172 B1B44D8F021E4E2D6021E995DC9FF8D3EE5AF27F",
                "PHP_VERSION=7.2.12",
                "PHP_URL=https://secure.php.net/get/php-7.2.12.tar.xz/from/this/mirror",
                "PHP_ASC_URL=https://secure.php.net/get/php-7.2.12.tar.xz.asc/from/this/mirror",
                "PHP_SHA256=989c04cc879ee71a5e1131db867f3c5102f1f7565f805e2bb8bde33f93147fe1",
                "PHP_MD5=",
                "WORDPRESS_VERSION=4.9.8",
                "WORDPRESS_SHA1=0945bab959cba127531dceb2c4fed81770812b4f"
            ],
            "Cmd": [
                "apache2-foreground"
            ],
            "Image": "wordpress:4",
            "Volumes": {
                "/var/www/html": {}
            },
            "WorkingDir": "/var/www/html",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "3355188bf4d3f3f00c4cdab50b4c8b355c1684136da73b2744d74bffb843e5ae",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "80"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/3355188bf4d3",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "e2ed07f0cd9d1ddc7a0848f2c5ec5ec49b868896bce46f4de778c3b7867a4b6f",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "fda3e8a5f2e6d57bcd0de0248ca9a8b5edc43c50d5798f84f3df43a236231b45",
                    "EndpointID": "e2ed07f0cd9d1ddc7a0848f2c5ec5ec49b868896bce46f4de778c3b7867a4b6f",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

$docker inspect a17634a8f43e

[root@m-k8s wordpress]# docker inspect a17634a8f43e
[
    {
        "Id": "a17634a8f43e82ab80817282f1d821eaaf51e10b593736029d94a9660b20aff9",
        "Created": "2023-06-10T17:04:03.773794397Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "mysqld"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 31620,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-06-10T17:04:04.089375422Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:dd6675b5cfea17abb655ea8229cbcfa5db9d0b041f839db0c24228c2e18a4bdf",
        "ResolvConfPath": "/var/lib/docker/containers/a17634a8f43e82ab80817282f1d821eaaf51e10b593736029d94a9660b20aff9/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/a17634a8f43e82ab80817282f1d821eaaf51e10b593736029d94a9660b20aff9/hostname",
        "HostsPath": "/var/lib/docker/containers/a17634a8f43e82ab80817282f1d821eaaf51e10b593736029d94a9660b20aff9/hosts",
        "LogPath": "/var/lib/docker/containers/a17634a8f43e82ab80817282f1d821eaaf51e10b593736029d94a9660b20aff9/a17634a8f43e82ab80817282f1d821eaaf51e10b593736029d94a9660b20aff9-json.log",
        "Name": "/mysql",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/dbdata:/var/lib/mysql"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/557ecfb317526ce7d7574901925de29345273d9ab78c45596da2f1ea87c24d93-init/diff:/var/lib/docker/overlay2/09d9cf9d8ea8318b9141b0faca69614b8d2c4017c53a511c8037fa40ca81a734/diff:/var/lib/docker/overlay2/35fafbc49ea9ed79d4c7225f69ceeb0faae649170af3c16382a79b27bbb850f1/diff:/var/lib/docker/overlay2/3b42af17cb9980a3548b4da89ea74ca4d1f195ecf6df60379b78f5ea8396648a/diff:/var/lib/docker/overlay2/acce5956cbc2332b69256a4302d94f42527325da4320a19bde40e56e1b9fb7c0/diff:/var/lib/docker/overlay2/26858eae8d8337dc74948efb4db7b9e2408e7803b7e42356499d71f461b59928/diff:/var/lib/docker/overlay2/36b85f12b63f8a36089c869ffada8ae4f023b51aece2f3436c0085fa50b9af1d/diff:/var/lib/docker/overlay2/a4f12ba131b83f72c80f2afd25d7b64dd8e1ff80b8290ffa7afdd924ab9c4c52/diff:/var/lib/docker/overlay2/596ded3e1a10f1d20e92106ef5957482f0f61e5c63b2cd2eab7e06b08c5835e5/diff:/var/lib/docker/overlay2/d9a2784daf7b553bd2e5e6c6477fba05902356863e9c47ef852b3ab9fffd6237/diff:/var/lib/docker/overlay2/b07edd488d97ef0e7c70ef319f42643efda681211240e1a7f6a0d4424a402645/diff:/var/lib/docker/overlay2/433cb41d22542eddaeb405a7e69f218677c4ae3be112c447e267be75f9950996/diff",
                "MergedDir": "/var/lib/docker/overlay2/557ecfb317526ce7d7574901925de29345273d9ab78c45596da2f1ea87c24d93/merged",
                "UpperDir": "/var/lib/docker/overlay2/557ecfb317526ce7d7574901925de29345273d9ab78c45596da2f1ea87c24d93/diff",
                "WorkDir": "/var/lib/docker/overlay2/557ecfb317526ce7d7574901925de29345273d9ab78c45596da2f1ea87c24d93/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/dbdata",
                "Destination": "/var/lib/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "a17634a8f43e",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3306/tcp": {},
                "33060/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "MYSQL_ROOT_PASSWORD=wordpress",
                "MYSQL_PASSWORD=wordpress",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "GOSU_VERSION=1.16",
                "MYSQL_MAJOR=5.7",
                "MYSQL_VERSION=5.7.42-1.el7",
                "MYSQL_SHELL_VERSION=8.0.33-1.el7"
            ],
            "Cmd": [
                "mysqld"
            ],
            "Image": "mysql:5.7",
            "Volumes": {
                "/var/lib/mysql": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "35ac31d2035a1f683fd82c731f827f14395c3bfe0211e2d6815ef77f3f71154f",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "3306/tcp": null,
                "33060/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/35ac31d2035a",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "81c66938d0b1c391e575e664a20e0e7dbc99603ebbc3f7f9a4a266b5493a2fc0",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "fda3e8a5f2e6d57bcd0de0248ca9a8b5edc43c50d5798f84f3df43a236231b45",
                    "EndpointID": "81c66938d0b1c391e575e664a20e0e7dbc99603ebbc3f7f9a4a266b5493a2fc0",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

 

#기타 테스트

[root@m-k8s podtest]# k get svc
NAME       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
backend    ClusterIP   10.99.167.77   <none>        80/TCP    5h17m
frontend   ClusterIP   10.108.39.22   <none>        80/TCP    5h17m

[root@m-k8s podtest]# k get po
NAME                                   READY   STATUS              RESTARTS   AGE
auth-5f45bf5f74-dg78g                  1/1     Running             0          5h37m
auth-5f45bf5f74-mt482                  1/1     Running             0          5h37m
dpl-nginx-6c9676dd9c-gjrrd             1/1     Terminating         0          6d19h
myweb-rs-9rgwk                         1/1     Terminating         0          6d14h
myweb-rs-sqj25                         1/1     Terminating         0          6d14h
nginx-deployment-764c6958d5-bhf4f      1/1     Terminating         0          6d13h
nginx-deployment-764c6958d5-f2g5s      1/1     Terminating         0          6d13h
webapp-7d66bc6c7f-7m692                1/1     Running             0          5h37m
webapp-7d66bc6c7f-r5fbd                1/1     Running             0          5h37m



[root@m-k8s podtest]# kubectl describe deployments hello-world
Name:                   hello-world
Namespace:              cymtest
CreationTimestamp:      Sat, 10 Jun 2023 14:04:21 +0900
Labels:                 app.kubernetes.io/name=load-balancer-example
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app.kubernetes.io/name=load-balancer-example
Replicas:               5 desired | 5 updated | 5 total | 5 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app.kubernetes.io/name=load-balancer-example
  Containers:
   hello-world:
    Image:        gcr.io/google-samples/node-hello:1.0
    Port:         8080/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   hello-world-644f58f5f4 (5/5 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  2m11s  deployment-controller  Scaled up replica set hello-world-644f58f5f4 to 5




[root@m-k8s podtest]# k describe deploy hello-world
Name:                   hello-world
Namespace:              cymtest
CreationTimestamp:      Sat, 10 Jun 2023 14:04:21 +0900
Labels:                 app.kubernetes.io/name=load-balancer-example
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app.kubernetes.io/name=load-balancer-example
Replicas:               5 desired | 5 updated | 5 total | 5 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app.kubernetes.io/name=load-balancer-example
  Containers:
   hello-world:
    Image:        gcr.io/google-samples/node-hello:1.0
    Port:         8080/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   hello-world-644f58f5f4 (5/5 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  2m35s  deployment-controller  Scaled up replica set hello-world-644f58f5f4 to 5


[root@m-k8s podtest]# k get po
NAME                                   READY   STATUS              RESTARTS   AGE
auth-5f45bf5f74-dg78g                  1/1     Running             0          5h39m
auth-5f45bf5f74-mt482                  1/1     Running             0          5h39m
hello-world-644f58f5f4-cn72d           1/1     Running             0          2m40s
hello-world-644f58f5f4-h557b           1/1     Running             0          2m40s
hello-world-644f58f5f4-swg9k           1/1     Running             0          2m40s
hello-world-644f58f5f4-vbj5w           1/1     Running             0          2m40s
hello-world-644f58f5f4-xc9fq           1/1     Running             0          2m40s
myweb-rs-9rgwk                         1/1     Terminating         0          6d14h
myweb-rs-sqj25                         1/1     Terminating         0          6d14h
nginx-deployment-764c6958d5-bhf4f      1/1     Terminating         0          6d14h
nginx-deployment-764c6958d5-f2g5s      1/1     Terminating         0          6d14h
webapp-7d66bc6c7f-7m692                1/1     Running             0          5h40m
webapp-7d66bc6c7f-r5fbd                1/1     Running             0          5h40m


[root@m-k8s podtest]# k describe deploy auth
Name:                   auth
Namespace:              cymtest
CreationTimestamp:      Sat, 10 Jun 2023 08:27:29 +0900
Labels:                 app=auth
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=auth
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=auth
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   auth-5f45bf5f74 (2/2 replicas created)
Events:          <none>
[root@m-k8s podtest]# k describe deploy nginx
Name:                   nginx-deployment
Namespace:              cymtest
CreationTimestamp:      Sun, 04 Jun 2023 00:06:13 +0900
Labels:                 app=nginx
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               3 desired | 3 updated | 3 total | 0 available | 3 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:
      /nfs from nfsvol1 (rw)
  Volumes:
   nfsvol1:
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    192.168.29.14
    Path:      /mnt/cym_nfs_share
    ReadOnly:  false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      False   MinimumReplicasUnavailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-764c6958d5 (3/3 replicas created)
Events:          <none>

[root@m-k8s podtest]# k describe deploy nginx
Name:                   nginx-deployment
Namespace:              cymtest
CreationTimestamp:      Sun, 04 Jun 2023 00:06:13 +0900
Labels:                 app=nginx
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=nginx
Replicas:               3 desired | 3 updated | 3 total | 0 available | 3 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=nginx
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:
      /nfs from nfsvol1 (rw)
  Volumes:
   nfsvol1:
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    192.168.29.14
    Path:      /mnt/cym_nfs_share
    ReadOnly:  false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      False   MinimumReplicasUnavailable
OldReplicaSets:  <none>
NewReplicaSet:   nginx-deployment-764c6958d5 (3/3 replicas created)
Events:          <none>

[root@m-k8s podtest]# kubectl get replicasets
NAME                             DESIRED   CURRENT   READY   AGE
auth-5f45bf5f74                  2         2         2       6h30m
dpl-nginx-6c9676dd9c             2         2         0       6d20h
hello-world-644f58f5f4           5         5         5       53m
myweb-rs                         3         3         0       6d15h
nfs-pod-provisioner-85c495c588   1         1         0       6d15h
nginx-deployment-764c6958d5      3         3         0       6d14h
webapp-7d66bc6c7f                2         2         2       6h30m


[root@m-k8s podtest]# kubectl describe replicasets
Name:           auth-5f45bf5f74
Namespace:      cymtest
Selector:       app=auth,pod-template-hash=5f45bf5f74
Labels:         app=auth
                pod-template-hash=5f45bf5f74
Annotations:    deployment.kubernetes.io/desired-replicas: 2
                deployment.kubernetes.io/max-replicas: 3
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/auth
Replicas:       2 current / 2 desired
Pods Status:    2 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=auth
           pod-template-hash=5f45bf5f74
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:           <none>




Name:           dpl-nginx-6c9676dd9c
Namespace:      cymtest
Selector:       app=dpl-nginx,pod-template-hash=6c9676dd9c
Labels:         app=dpl-nginx
                pod-template-hash=6c9676dd9c
Annotations:    deployment.kubernetes.io/desired-replicas: 2
                deployment.kubernetes.io/max-replicas: 3
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/dpl-nginx
Replicas:       2 current / 2 desired
Pods Status:    2 Running / 1 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=dpl-nginx
           pod-template-hash=6c9676dd9c
  Containers:
   master:
    Image:        nginx
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:
      /mnt from pvc-volume (rw)
  Volumes:
   pvc-volume:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  nfs-pvc
    ReadOnly:   false
Events:         <none>


Name:           hello-world-644f58f5f4
Namespace:      cymtest
Selector:       app.kubernetes.io/name=load-balancer-example,pod-template-hash=644f58f5f4
Labels:         app.kubernetes.io/name=load-balancer-example
                pod-template-hash=644f58f5f4
Annotations:    deployment.kubernetes.io/desired-replicas: 5
                deployment.kubernetes.io/max-replicas: 7
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/hello-world
Replicas:       5 current / 5 desired
Pods Status:    5 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app.kubernetes.io/name=load-balancer-example
           pod-template-hash=644f58f5f4
  Containers:
   hello-world:
    Image:        gcr.io/google-samples/node-hello:1.0
    Port:         8080/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age   From                   Message
  ----    ------            ----  ----                   -------
  Normal  SuccessfulCreate  53m   replicaset-controller  Created pod: hello-world-644f58f5f4-cn72d
  Normal  SuccessfulCreate  53m   replicaset-controller  Created pod: hello-world-644f58f5f4-h557b
  Normal  SuccessfulCreate  53m   replicaset-controller  Created pod: hello-world-644f58f5f4-xc9fq
  Normal  SuccessfulCreate  53m   replicaset-controller  Created pod: hello-world-644f58f5f4-swg9k
  Normal  SuccessfulCreate  53m   replicaset-controller  Created pod: hello-world-644f58f5f4-vbj5w


Name:         myweb-rs
Namespace:    cymtest
Selector:     app=web
Labels:       <none>
Annotations:  <none>
Replicas:     3 current / 3 desired
Pods Status:  3 Running / 2 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=web
  Containers:
   myweb:
    Image:        httpd
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:
      /usr/local/apache2/htdocs from myvol (rw)
  Volumes:
   myvol:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  mypvc-dynamic
    ReadOnly:   false
Events:         <none>


Name:           nfs-pod-provisioner-85c495c588
Namespace:      cymtest
Selector:       app=nfs-pod-provisioner,pod-template-hash=85c495c588
Labels:         app=nfs-pod-provisioner
                pod-template-hash=85c495c588
Annotations:    deployment.kubernetes.io/desired-replicas: 1
                deployment.kubernetes.io/max-replicas: 1
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/nfs-pod-provisioner
Replicas:       1 current / 1 desired
Pods Status:    1 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:           app=nfs-pod-provisioner
                    pod-template-hash=85c495c588
  Service Account:  nfs-pod-provisioner-sa
  Containers:
   nfs-pod-provisioner:
    Image:      quay.io/external_storage/nfs-client-provisioner:latest
    Port:       <none>
    Host Port:  <none>
    Environment:
      PROVISIONER_NAME:  nfs-test
      NFS_SERVER:        192.168.29.14
      NFS_PATH:          /mnt/cym_nfs_share
    Mounts:
      /persistentvolumes from nfs-provisioner-v (rw)
  Volumes:
   nfs-provisioner-v:
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    192.168.29.14
    Path:      /mnt/cym_nfs_share
    ReadOnly:  false
Events:        <none>


Name:           nginx-deployment-764c6958d5
Namespace:      cymtest
Selector:       app=nginx,pod-template-hash=764c6958d5
Labels:         app=nginx
                pod-template-hash=764c6958d5
Annotations:    deployment.kubernetes.io/desired-replicas: 3
                deployment.kubernetes.io/max-replicas: 4
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/nginx-deployment
Replicas:       3 current / 3 desired
Pods Status:    3 Running / 2 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=nginx
           pod-template-hash=764c6958d5
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:
      /nfs from nfsvol1 (rw)
  Volumes:
   nfsvol1:
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    192.168.29.14
    Path:      /mnt/cym_nfs_share
    ReadOnly:  false
Events:        <none>


Name:           webapp-7d66bc6c7f
Namespace:      cymtest
Selector:       app=webapp,pod-template-hash=7d66bc6c7f
Labels:         app=webapp
                pod-template-hash=7d66bc6c7f
Annotations:    deployment.kubernetes.io/desired-replicas: 2
                deployment.kubernetes.io/max-replicas: 3
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/webapp
Replicas:       2 current / 2 desired
Pods Status:    2 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=webapp
           pod-template-hash=7d66bc6c7f
  Containers:
   nginx:
    Image:        nginx:1.14.2
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:           <none>
[root@m-k8s podtest]# kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
service/my-service exposed
[root@m-k8s podtest]# kubectl get services my-service
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
my-service   LoadBalancer   10.103.10.223   192.168.29.21   8080:31451/TCP   6s



[root@m-k8s podtest]# kubectl describe services my-service
Name:                     my-service
Namespace:                cymtest
Labels:                   app.kubernetes.io/name=load-balancer-example
Annotations:              <none>
Selector:                 app.kubernetes.io/name=load-balancer-example
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.103.10.223
IPs:                      10.103.10.223
LoadBalancer Ingress:     192.168.29.21
Port:                     <unset>  8080/TCP
TargetPort:               8080/TCP
NodePort:                 <unset>  31451/TCP
Endpoints:                172.16.221.157:8080,172.16.221.158:8080,172.16.221.159:8080 + 2 more...
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason        Age   From                Message
  ----    ------        ----  ----                -------
  Normal  IPAllocated   22s   metallb-controller  Assigned IP ["192.168.29.21"]
  Normal  nodeAssigned  22s   metallb-speaker     announcing from node "w1-k8s"
[root@m-k8s podtest]# kubectl describe services my-service
Name:                     my-service
Namespace:                cymtest
Labels:                   app.kubernetes.io/name=load-balancer-example
Annotations:              <none>
Selector:                 app.kubernetes.io/name=load-balancer-example
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.103.10.223
IPs:                      10.103.10.223
LoadBalancer Ingress:     192.168.29.21
Port:                     <unset>  8080/TCP
TargetPort:               8080/TCP
NodePort:                 <unset>  31451/TCP
Endpoints:                172.16.221.157:8080,172.16.221.158:8080,172.16.221.159:8080 + 2 more...
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason        Age   From                Message
  ----    ------        ----  ----                -------
  Normal  IPAllocated   44s   metallb-controller  Assigned IP ["192.168.29.21"]
  Normal  nodeAssigned  44s   metallb-speaker     announcing from node "w1-k8s"



[root@m-k8s podtest]# kubectl get pods --output=wide
NAME                                   READY   STATUS              RESTARTS   AGE     IP               NODE     NOMINATED NO                                                                                                                                     DE   READINESS GATES
auth-5f45bf5f74-dg78g                  1/1     Running             0          6h33m   172.16.221.156   w1-k8s   <none>                                                                                                                                                <none>
auth-5f45bf5f74-mt482                  1/1     Running             0          6h33m   172.16.221.155   w1-k8s   <none>                                                                                                                                                <none>
dpl-nginx-6c9676dd9c-gjrrd             1/1     Terminating         0          6d20h   172.16.103.135   w2-k8s   <none>                                                                                                                                                <none>
hello-world-644f58f5f4-cn72d           1/1     Running             0          56m     172.16.221.158   w1-k8s   <none>                                                                                                                                                <none>
hello-world-644f58f5f4-h557b           1/1     Running             0          56m     172.16.221.160   w1-k8s   <none>                                                                                                                                                <none>
hello-world-644f58f5f4-swg9k           1/1     Running             0          56m     172.16.221.157   w1-k8s   <none>                                                                                                                                                <none>
hello-world-644f58f5f4-vbj5w           1/1     Running             0          56m     172.16.221.161   w1-k8s   <none>                                                                                                                                                <none>
hello-world-644f58f5f4-xc9fq           1/1     Running             0          56m     172.16.221.159   w1-k8s   <none>                                                                                                                                                <none>
myweb-rs-9rgwk                         1/1     Terminating         0          6d15h   172.16.103.140   w2-k8s   <none>                                                                                                                                                <none>
myweb-rs-sqj25                         1/1     Terminating         0          6d15h   172.16.103.139   w2-k8s   <none>                                                                                                                                                <none>
nginx-deployment-764c6958d5-bhf4f      1/1     Terminating         0          6d14h   172.16.103.143   w2-k8s   <none>                                                                                                                                                <none>
nginx-deployment-764c6958d5-f2g5s      1/1     Terminating         0          6d14h   172.16.103.144   w2-k8s   <none>                                                                                                                                                <none>
webapp-7d66bc6c7f-7m692                1/1     Running             0          6h33m   172.16.221.153   w1-k8s   <none>                                                                                                                                                <none>
webapp-7d66bc6c7f-r5fbd                1/1     Running             0          6h33m   172.16.221.154   w1-k8s   <none>                                                                                                                                                <none>


[root@m-k8s podtest]# kubectl get pods --output=wide
NAME                                   READY   STATUS              RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
auth-5f45bf5f74-dg78g                  1/1     Running             0          6h33m   172.16.221.156   w1-k8s   <none>           <none>
auth-5f45bf5f74-mt482                  1/1     Running             0          6h33m   172.16.221.155   w1-k8s   <none>           <none>
dpl-nginx-6c9676dd9c-gjrrd             1/1     Terminating         0          6d20h   172.16.103.135   w2-k8s   <none>           <none>
hello-world-644f58f5f4-cn72d           1/1     Running             0          56m     172.16.221.158   w1-k8s   <none>           <none>
hello-world-644f58f5f4-h557b           1/1     Running             0          56m     172.16.221.160   w1-k8s   <none>           <none>
hello-world-644f58f5f4-swg9k           1/1     Running             0          56m     172.16.221.157   w1-k8s   <none>           <none>
hello-world-644f58f5f4-vbj5w           1/1     Running             0          56m     172.16.221.161   w1-k8s   <none>           <none>
hello-world-644f58f5f4-xc9fq           1/1     Running             0          56m     172.16.221.159   w1-k8s   <none>           <none>
myweb-rs-9rgwk                         1/1     Terminating         0          6d15h   172.16.103.140   w2-k8s   <none>           <none>
myweb-rs-sqj25                         1/1     Terminating         0          6d15h   172.16.103.139   w2-k8s   <none>           <none>
nginx-deployment-764c6958d5-bhf4f      1/1     Terminating         0          6d14h   172.16.103.143   w2-k8s   <none>           <none>
nginx-deployment-764c6958d5-f2g5s      1/1     Terminating         0          6d14h   172.16.103.144   w2-k8s   <none>           <none>
webapp-7d66bc6c7f-7m692                1/1     Running             0          6h33m   172.16.221.153   w1-k8s   <none>           <none>
webapp-7d66bc6c7f-r5fbd                1/1     Running             0          6h33m   172.16.221.154   w1-k8s   <none>           <none>


[root@m-k8s podtest]# curl http://192.168.29.21:8080
Hello Kubernetes![root@m-k8s podtest]# curl http://192.168.29.21:80
^C
[root@m-k8s podtest]# curl http://192.168.29.21:8080
[root@m-k8s podtest]#
[root@m-k8s podtest]# vi node.yaml


[root@m-k8s podtest]# docker
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit
Management Commands:
  app*        Docker App (Docker Inc., v0.9.1-beta3)
  builder     Manage builds
  buildx*     Docker Buildx (Docker Inc., v0.10.0-docker)
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  image       Manage images
  manifest    Manage Docker image manifests and manifest lists
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  scan*       Docker Scan (Docker Inc., v0.23.0)
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes


Commands:
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  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
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  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
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  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
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

[root@m-k8s podtest]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:0f:f7:2d brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 59063sec preferred_lft 59063sec
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:aa:e7:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.29.10/24 brd 192.168.29.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:5b:cf:30:82 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
5: tunl0@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
    inet 172.16.171.64/32 scope global tunl0
       valid_lft forever preferred_lft forever
6: cali6b6682b027a@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
7: calif82daecbb69@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 1
8: calie680cd7a74e@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 2


[root@m-k8s podtest]# docker run -it --name c1 busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
71d064a1ac7d: Pull complete
Digest: sha256:b58e890a4eaaaf8a8b756af0632442acdc2a630fe771825403c8e51cb140d14c
Status: Downloaded newer image for busybox:latest

/ # exit

[root@m-k8s podtest]# brctl show
bash: brctl: command not found

[root@m-k8s podtest]# docker run -it --name c2 busybox
/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
11: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
/ # exit

[root@m-k8s podtest]# docker run -it --name c3 busybox
/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
13: eth0@if14: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
/ # exit
/ # ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=55 time=45.631 ms
64 bytes from 8.8.8.8: seq=1 ttl=55 time=45.448 ms
64 bytes from 8.8.8.8: seq=2 ttl=55 time=86.985 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 45.448/59.354/86.985 ms


[root@m-k8s podtest]# curl localhost:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

[root@m-k8s podtest]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:0f:f7:2d brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 55995sec preferred_lft 55995sec
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:aa:e7:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.29.10/24 brd 192.168.29.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:5b:cf:30:82 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
5: tunl0@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
    inet 172.16.171.64/32 scope global tunl0
       valid_lft forever preferred_lft forever
6: cali6b6682b027a@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
7: calif82daecbb69@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 1
8: calie680cd7a74e@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 2
24: veth76cb046@if23: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether 6a:e3:41:d8:89:26 brd ff:ff:ff:ff:ff:ff link-netnsid 3


[root@m-k8s podtest]# curl localhost:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@m-k8s podtest]# curl localhost:32769
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@m-k8s podtest]# curl localhost:32769
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@m-k8s podtest]# docker run -P 80 -d --name web10 nginx
Unable to find image '80:latest' locally
docker: Error response from daemon: pull access denied for 80, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
[root@m-k8s podtest]# docker run -P -d --name web99 nginx
cc1c59770ac3bba398310cad4ab350888458193150b3097015d61d058da76617

[root@m-k8s podtest]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                   NAMES
cc1c59770ac3   nginx     "/docker-entrypoint.…"   35 seconds ago   Up 34 seconds   0.0.0.0:32770->80/tcp   web99
114d866b6232   nginx     "/docker-entrypoint.…"   7 minutes ago    Up 7 minutes    0.0.0.0:32769->80/tcp   web3
102008183a94   nginx     "/docker-entrypoint.…"   7 minutes ago    Up 7 minutes    0.0.0.0:80->80/tcp      web9
[root@m-k8s podtest]# docker network

Usage:  docker network COMMAND

Manage networks

Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

Run 'docker network COMMAND --help' for more information on a command.
[root@m-k8s podtest]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
fda3e8a5f2e6   bridge    bridge    local
35f51fa9cef9   host      host      local
8d73da63f0fa   none      null      local


[root@m-k8s podtest]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
fda3e8a5f2e6   bridge    bridge    local
35f51fa9cef9   host      host      local
8d73da63f0fa   none      null      local


[root@m-k8s podtest]#
[root@m-k8s podtest]#
[root@m-k8s podtest]# docker network --help

 

댓글