Docker関連 - mitsuaki0717/shino-repo GitHub Wiki

==========
●Dockerを入れてみる
==========
構築編
・インストール

  1. rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
  2. sudo yum install docker-io -y —enablerepo=epel
  3. service docker start

ブリッジを作成する場合に必要?

  1. yum install util-linux-ng

以下でリポジトリを追加

  1. subscription-manager repos —enable=rhel-7-server-extras-rpms
  2. subscription-manager repos —enable=rhel-7-server-optional-rpms
  1. yum install docker docker-registry
  2. yum install device-mapper-libs device-mapper-event-libs
  1. systemctl start docker.service

・ブリッジインタフェースを作成
</etc/sysconfig/network-scripts/ifcfg-br0>
下記を記載
TYPE=Bridge
DEVICE=br0
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=10.2.124.190

</etc/sysconfig/network-scripts/ifcfg-eth0>
下記を記載
HWADDR=00:50:56:b8:0a:51
TYPE=Ethernet
NAME=eth0
DEVICE=eth0
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
BRIDGE=br0

・既存ブリッジ(デフォルト)の削除

  1. service docker stop
  2. ip link set dev docker0 down
  3. brctl delbr docker0

・新規ブリッジ作成

  1. brctl addbr bridge0
  2. ip addr add 192.168.5.1/24 dev bridge0
  3. ip link set dev bridge0 up
  4. ip addr show

・コンテナイメージの追加、削除
<コンテナイメージの追加>
以下のコマンドでrhelのコンテナイメージをダウンロードできる。

  1. docker pull registry.access.redhat.com/rhel
  2. docker pull registry.access.redhat.com/rhel6

<コンテナイメージの削除>

  1. docker rmi <REPOSITORY 又は IMAGE ID>

<コンテナイメージ一覧を表示>

  1. docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    registry.access.redhat.com/rhel6 latest 16dce89b71c9 7 days ago 198.9 MB
    registry.access.redhat.com/rhel7 latest ccd44b3a3dc0 12 days ago 192.7 MB

・コンテナの基本操作
<Dockerブリッジの作成>

  1. docker network create -o “com.docker.network.bridge.enable_ip_masquerade”=“true” -o “com.docker.network.bridge.name”=“br0” —gateway 10.2.124.189 —subnet 10.2.124.0/24 —ip-range 10.2.124.192/30 test_nw

<Dockerブリッジの削除>

  1. docker network rm test_nw

<コンテナとブリッジの接続>

  1. docker network connect test_nw test1

—ip
IPアドレスを指定

<コンテナとブリッジの接続>

  1. docker network disconnect test_nw test1

<コンテナ作成>

  1. docker run -it rhel7:latest /bin/bash
    -itオプションでシェルを起動してログインする
  1. docker run —privileged —name test4 —hostname test4 —network test_nw -d rhel7-ssh /sbin/init
    コンテナ作成時のオプション

—privileged
コンテナ内ではデフォルトではsystemctlやserviceコマンド等が使用できない
そのためコンテナ作成時にこのオプションを付与してコンテナを作成する。

—name
Docker上でコンテナに付与するコンテナ名

—hostname
コンテナのホスト名

—network
接続するDockerブリッジを指定

—detach(-d)
バックグラウンドでコンテナを実行する

—ip
IPアドレスを指定

—volume(-v)
ホストとのディレクトリ共有
書式は以下
<dockerホストの共有ディレクトリ>:<コンテナ側のマウントポイント>:<オプション省略可>
/host/directory:/container-directory:ro

<コンテナ削除>

  1. docker rm <コンテナID又はコンテナ名>

<コンテナ一覧>

  1. docker ps -a

<コンテナ起動>

  1. docker start <コンテナID又はコンテナ名>

<コンテナ停止>

  1. docker stop <コンテナID又はコンテナ名>

<コンテナにログイン>

  1. docker exec -it <コンテナID又はコンテナ名> /bin/bash

<dockerイメージの保存>

  1. docker commit <コンテナID又はコンテナ名>
  2. docker commit test1 rhel7-ssh

コンテナからネットワーク接続ができない場合はarpテーブルにゲートウェイ(その他必要なネクストホップ)の
以下のコマンドでarpテーブルを確認
arp -a
MACアドレスを追加する。コマンドは以下
arp -s <IPアドレス> <MACアドレス>

==========
●Mesos DC/OSでDockerを管理してみる
==========
●構築
■共通設定
・hostsにMaster、Agentの名前解決が出来るよう記載する
・OSの言語設定をen_US.utf8に設定する
localectl set-locale LANG=en_US.utf8
cat /etc/locale.conf
reboot
printenv LANG
echo ‘export LANG=en_US.utf8’ >> /root/.bash_profile

・セキュリティの無効化
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
getenforce

・IPフォワーディングを有効化
vi /etc/sysctl.d/99-sysctl.conf
以下を追記
net.ipv4.conf.all.forwarding=1

有効化
sysctl —system

■マスターノードの設定
=Dockerエンジンのインストール=
・リポジトリの登録
vi /etc/yum.repos.d/docker.repo
以下追記
[docker]
name=Docker Repository – Centos $releasever
baseurl=http://yum.dockerproject.org/repo/main/centos/$releasever
enabled=1
gpgcheck=1
gpgkey=http://yum.dockerproject.org/gpg

vi /etc/yum.conf
以下追記
proxy=http://<プロキシIP>:8080

vi .bash_profile
以下追記
export http_proxy=http://<プロキシIP>:8080
export https_proxy=http://<プロキシIP>:8080
export no_proxy=localhost,MESOS-DCM01

source /root/.bash_profile

・dockerエンジンインストール
yum install -y docker-engine-1.13.1 docker-engine-selinux-1.13.1

・Mesos DC/OSに必要なパッケージのインストール
yum install -y epel-release
yum install -y tar xz unzip curl ipset ntp nfs-utils
systemctl start ntpd
systemctl enable ntpd
systemctl stop chronyd
systemctl disable chronyd
yum install -y python-pip
pip install —upgrade pip
pip install virtualenv

groupadd nogroup

・Dockerサービスの設定
cd /etc/systemd/system
cp /usr/lib/systemd/system/docker.service .
vi ./docker.service
以下編集
EnvironmentFile=-/etc/sysconfig/docker ←追記
EnvironmentFile=-/etc/sysconfig/docker-storage ←追記
EnvironmentFile=-/etc/sysconfig/docker-network ←追記
ExecStart=/usr/bin/dockerd \
$OPTIONS \ ←追記
$DOCKER_STORAGE_OPTIONS \ ←追記
$DOCKER_NETWORK_OPTIONS \ ←追記
$ADD_REGISTRY \ ←追記
$BLOCK_REGISTRY \ ←追記
$INSECURE_REGISTRY ←追記
ExecReload=/bin/kill -s HUP $MAINPID

systemctl daemon-reload

・Docker-networkの設定
vi /etc/sysconfig/docker-network
以下を追記
http_proxy=http://<プロキシIP>:8080
https_proxy=http://<プロキシIP>:8080
no_proxy=localhost,MESOS-DCM01,/var/run/docker.sock

・Docker-storageの設定
vi /etc/sysconfig/docker-storage
以下追記
DOCKER_STORAGE_OPTIONS=“—storage-driver=overlay”

・Dockerの設定
vi /etc/sysconfig/docker
以下追記
OPTIONS=’’
DOCKER_CERT_PATH=/etc/docker

・Dockerエンジンの起動
systemctl start docker.service
systemctl status docker.service
systemctl enable docker.service

起動確認
ps -ef |grep dockerd |grep -v grep
root 1753 1 2 12:37 ? 00:00:00 /usr/bin/dockerd —storage-driver=overlay

dockerエンジンの動作確認
docker search sentos:6.8
docker pull sentos:6.8
docker run —rm -it centos:6.8 cat /etc/redhat-release

・マスターノードのブートストラップ構築
mkdir /opt/dcos-setup
cd /opt/dcos-setup/
export http_proxy=http://<プロキシIP>:8080
export https_proxy=http://<プロキシIP>:8080
export no_proxy=localhost,MESOS-DCM01
curl -O https://downloads.dcos.io/dcos/stable/dcos_generate_config.sh

・ip-datectスクリプトの作成
cd /opt/dcos-setup/
mkdir -p genconf
vi ./genconf/ip-detect
以下追記
#!/usr/bin/env bash
set -o nounset -o errexit
export PATH=/usr/sbin:/usr/bin:$PATH
echo $(ip addr show eth0 |grep -Eo ‘[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}’ | head -1)

chmod +x ./genconf/ip-detect
ls -lF ./genconf/ip-detect
./genconf/ip-detect

・マスターノード用YAMLファイル作成
vi genconf/config.yaml


bootstrap_url: http://MESOS-DCM01:8081
cluster_name: mesos-dcos
exhibitor_storage_backend: static
master_discovery: static
master_list:
- 10.2.124.180
resolvers:
- 10.2.124.190
- 8.8.8.8
use_proxy: ‘true’
http_proxy: http://<プロキシIP>:8080
https_proxy: http://<プロキシIP>:8080
no_proxy:
- ‘.mesos.test.com’

・dcos_generate_config.shの実行
bash ./dcos_generate_config.sh

・NGINXコンテナの起動
docker pull nginx:alpine
docker run -d —restart=unless-stopped -p 8081:80 -v /opt/dcos-setup/genconf/serve:/usr/share/nginx/html:ro —name=dcos-bootstrap-nginx nginx:alpine

・インストールスクリプトの入手
mkdir -p /tmp/dcos
cd /tmp/dcos
printenv http_proxy
printenv https_proxy
printenv no_proxy
curl -O http://MESOS-DCM01:8081/dcos_install.sh

file ./dcos_install.sh

bash ./dcos_install.sh master

systemctl status dcos-mesos-master.service |grep Active

・MesosthereDC/OS管理コマンドをインストール
mkdir -p ~/bin
cd ~/bin
printenv http_proxy
printenv https_proxy
printenv no_proxy
curl -O https://downloads.dcos.io/binaries/cli/linux/x86-64/dcos-1.9/dcos
file dcos
chmod +x ~/bin/dcos
ls -lF dcos

■エージェントノードの設定
=Dockerエンジンのインストール=
・リポジトリの追加
scp MESOS-DCM01:/etc/yum.repos.d/docker.repo /etc/yum.repos.d/
cat /etc/yum.repos.d/docker.repo
scp MESOS-DCM01:/etc/yum.conf /etc/
cat /etc/yum.conf |grep proxy
vi /root/.bash_profile
以下を追記
export http_proxy=http://<プロキシIP>:8080
export https_proxy=http://<プロキシIP>:8080
export no_proxy=localhost,MESOS-DCM01

source /root/.bash_profile

・dockerエンジンインストール
yum install -y docker-engine-1.13.1 docker-engine-selinux-1.13.1

yum install -y tar xz unzip curl ipset ntp nfs-utils
systemctl start ntpd
systemctl enable ntpd
systemctl stop chronyd
systemctl disable chronyd

groupadd nogroup

・dockerサービスの作成
scp MESOS-DCM01:/etc/systemd/system/docker.service /etc/systemd/system/

systemctl daemon-reload

・Docker設定ファイルのコピー
scp MESOS-DCM01:/etc/sysconfig/docker-network /etc/sysconfig/
cat /etc/sysconfig/docker-network

scp MESOS-DCM01:/etc/sysconfig/docker-storage /etc/sysconfig/
cat /etc/sysconfig/docker-storage

scp MESOS-DCM01:/etc/sysconfig/docker /etc/sysconfig/
cat /etc/sysconfig/docker

・docker起動設定

systemctl start docker
systemctl status docker
systemctl enable docker

ps -ef |grep dockerd |grep -v grep

dockerエンジンの動作確認
docker search sentos:6.8
docker pull sentos:6.8
docker run —rm -it centos:6.8 cat /etc/redhat-release

・インストールスクリプトの入手
mkdir -p /tmp/dcos
cd /tmp/dcos
printenv http_proxy
printenv https_proxy
printenv no_proxy

curl -O http://MESOS-DCM01:8081/dcos_install.sh

file ./dcos_install.sh

bash ./dcos_install.sh slave

■ポート番号設定
・エージェントノードサービス停止
systemctl kill -s SIGUSR1 dcos-mesos-slave
systemctl stop dcos-mesos-slave
rm -rf /var/lib/mesos/slave/meta/slaves/latest

・ポート番号の設定変更
cp /var/lib/dcos/mesos-resources /var/lib/dcos/mesos-resources.org
cat /var/lib/dcos/mesos-resources.org

vi /var/lib/dcos/mesos-resources
「{"begin": 1025, “end”: 2180}」の前に以下を追記する
{"begin": 80, “end”: 80}, {"begin": 443, “end”: 443},

・OS再起動
reboot

エージェントノードのサービス起動確認
systemctl status dcos-mesos-slave.service |grep -i Active

==========
●Apache MesosでDockerを管理してみる
==========
●構築
■共通設定
・hostsにMaster、Agentの名前解決が出来るよう記載する
・OSの言語設定をen_US.utf8に設定する
localectl set-locale LANG=en_US.utf8
cat /etc/locale.conf
reboot
printenv LANG
echo ‘export LANG=en_US.utf8’ >> /root/.bash_profile

・セキュリティの無効化
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
getenforce

・リポジトリの登録
yum install -y http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-3.noarch.rpm

・GUIをインストール
必須ではないっぽいけど入れました。

※yumで以下のエラーが出た場合
error: Failed to initialize NSS library
以下のURLに対策出てる
https://access.redhat.com/ja/solutions/3139361

以下の足りないRPMをインストール
libevent-2.0.21-4.el7.×8664.rpm
libevent-devel-2.0.21-4.el7.×86
64.rpm
それぞれweb上からダウンロードしてくること

■Masterの設定
リポジトリをインストール
※yumが使えない場合はrpmでインストールする
yum install -y epel-release
epel-release-7-10.noarch.rpm

以下の足りないRPMをインストール
libevent-2.0.21-4.el7.×8664.rpm
libevent-devel-2.0.21-4.el7.×86
64.rpm
それぞれweb上からダウンロードしてくること

・zookeeper mesos jqインストール
yum install -y mesosphere-zookeeper mesos jq

・クォーラムの設定
マスターノードの台数÷2以上に設定する
今回は1台なので1
echo 1 > /etc/mesos-master/quorum
cat /etc/mesos-master/quorum

・Zookeeperの設定
vi /etc/zookeeper/conf/zoo.cfg
以下を追記
server.1=<マスターノード名>:2888:3888
※複数台マスターがある場合は全台分記載する
server.1=<マスターノード名>:2888:3888
server.2=<マスターノード名>:2888:3888
     ・
     ・
     ・

echo 1 > /var/lib/zookeeper/myid
※マスターノードが複数ある場合はそれぞれ別のIDを設定する

cd /etc/mesos
cp zk zk.org
vi zk
以下を記載
zk://MESOS-MASTER01:2181/mesos
※マスターノードが複数ある場合の記載例
zk://<マスターノード1>:2181,<マスターノード2>:2181,<マスターノード3>:2181/mesos

・Mesosクラスター名の設定
vi /etc/default/mesos
以下を追記
CLUSTER=mesos-cluster01

・サービスの起動
systemctl disable mesos-slave
systemctl stop mesos-slave
systemctl status mesos-slave
systemctl start zookeeper
systemctl status zookeeper
systemctl enable zookeeper
systemctl start mesos-master
systemctl status mesos-master
systemctl enable mesos-master

■Agentの設定
・Mesosのインストール
yum install -y mesos

・Dockerのインストール
subscription-manager repos —enable=rhel-7-server-extras-rpms
subscription-manager repos —enable=rhel-7-server-optional-rpms
yum install docker

・dockerサービスの設定
cd /etc/systemd/system/
cp /usr/lib/systemd/system/docker.service .
vi docker.service

以下の個所を編集
ExecStart=/usr/bin/dockerd-current \

ExecStart=/usr/bin/dockerd \

LimitNOFILE=1048576
LimitNPROC=1048576

LimitNOFILE=infinity
LimitNPROC=infinity

追記
Delegate=yes

vi /etc/sysconfig/docker-network
以下を追記
http_proxy=http://<プロキシIP>:8080
https_proxy=http://<プロキシIP>:8080
no_proxy=localhost,MESOS-MASTER01,MESOS-AGENT01,MESOS-AGENT02,/var/run/docker.sock

vi /etc/sysconfig/docker
以下の指定を削除(何も指定しない)
OPTIONS=’’

systemctl start docker
systemctl enable docker
systemctl status docker

・Zookeeperの設定
vi /etc/mesos/zk
以下を記載
zk://MESOS-MASTER01:2181/mesos

vi /etc/mesos-slave/containerizers
docker,mesos
vi /etc/mesos-slave/executor_registration_timeout
10mins

・mesosサービスを起動
systemctl stop mesos-master
systemctl disable mesos-master
systemctl status mesos-master
systemctl start mesos-slave
systemctl enable mesos-slave
systemctl status mesos-slave

http://mesos-master01:5050

■Marathonの導入
・Marathonのインストール
mesos-Masterで実施
yum install -y marathon

systemctl start marathon
systemctl enable marathon
systemctl status marathon

http://mesos-master01:8080

■Chronosの導入
mesos-Masterで実施
・Chronosのインストール
yum install -y chronos

systemctl start chronos
systemctl enable chronos
systemctl status chronos

http://mesos-master01:4400

■Apache Auroraの導入
※MasterへAuroraスケジューラの導入
・Auroraのインストール
yum install http://apache.bintray.com/aurora/centos-7/aurora-scheduler-0.17.0-1.el7.centos.aurora.×8664.rpm
yum install http://apache.bintray.com/aurora/centos-7/aurora-tools-0.17.0-1.el7.centos.aurora.×86
64.rpm

・クラスタ設定
vi /etc/sysconfig/aurora-scheduler
※以下の項目にクラスタ名を設定
-cluster_name=‘aur-cluster’

vi /etc/aurora/clusters.json
※以下の項目にクラスタ名を設定
“name”: “aur-cluster”,

・データベースを設定
sudo -u aurora mkdir -p /var/lib/aurora/scheduler/db
ls -ld /var/lib/aurora/scheduler/db
sudo -u aurora mesos-log initialize —path=/var/lib/aurora/scheduler/db

・aurora-schedulerの起動
systemctl start aurora-scheduler
systemctl enable aurora-scheduler
systemctl status aurora-scheduler

※AgentへAuroraエグゼキューターの導入

yum install http://apache.bintray.com/aurora/centos-7/aurora-executor-0.17.0-1.el7.centos.aurora.×86_64.rpm

ps eocmd | grep “mesos-slave” | grep -v grep | tr ’ ’ ‘\n’ |grep "\-work_dir"
以下が表示されること
—work_dir=/var/lib/mesos

・Auroraエグゼキューターの設定
vi /etc/sysconfig/thermos

—port=1338 —mesos-root=/var/lib/mesos ←この行を追記 —log_to_disk=NONE

・Auroraエグゼキューターの起動
systemctl start thermos
systemctl enable thermos
systemctl status thermos

http://mesos-master01:8081

==========
●kubernetes(kubeadm)でDockerをクラスタ化してみる
==========
参考URL
https://qiita.com/hana_shin/items/6ffc378ad1045aa2940a

事前準備
hostsにクラスタに組み込むサーバの情報を記載
SELinux・Firewallは無効化しておく

以下のレポジトリを追加
vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

  1. subscription-manager repos —enable=rhel-7-server-extras-rpms
  2. subscription-manager repos —enable=rhel-7-server-optional-rpms

●マスターノードの設定

  1. yum install -y docker kubelet kubeadm kubernetes-cni
  1. systemctl enable docker && systemctl start docker
  2. systemctl enable kubelet && systemctl start kubelet
  3. kubeadm init

以下コマンド実行結果
================
Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run (as a regular user):

mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:
http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node
as root:

kubeadm join —token 4e8f3c.ac9b82f9bdc88842 10.2.124.184:6443

================

※以下のコマンド実行時エラーが出た場合の対応について

  1. kubeadm init
    以下エラーの内容
    [preflight] Some fatal errors occurred:
    /proc/sys/net/bridge/bridge-nf-call-iptables contents are not s et to 1

上記のエラーが出たら以下のコマンドを実行

  1. cat /proc/sys/net/bridge/bridge-nf-call-iptables
    設定値が「0」だった場合は以下で「1」に設定する
  2. echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

初期化が成功したらコマンド実行結果に倣ってコマンドを実行

  1. mkdir -p $HOME/.kube
  2. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  3. sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
    以下の行をコメントアウト
    Environment=“KUBELET_NETWORK_ARGS=—network-plugin=cni —cni-conf-dir=/etc/cni/net.d —cni-bin-dir=/opt/cni/bin”
  1. wget http://docs.projectcalico.org/v2.3/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
  2. ls calico.yaml
  3. kubectl apply -f calico.yaml
  4. systemctl daemon-reload
  5. systemctl restart kubelet

●ノードの設定

  1. yum install -y docker kubelet kubeadm kubernetes-cni
  2. systemctl enable docker && systemctl start docker
  3. systemctl enable kubelet && systemctl start kubelet
  4. vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
    以下の行をコメントアウト
    Environment=“KUBELET_NETWORK_ARGS=—network-plugin=cni —cni-conf-dir=/etc/cni/net.d —cni-bin-dir=/opt/cni/bin”
  1. kubeadm join —token 4e8f3c.ac9b82f9bdc88842 10.2.124.184:6443
    上記コマンド実行時、以下エラーが出た場合
    [preflight] Some fatal errors occurred:
    /proc/sys/net/bridge/bridge-nf-call-iptables contents are not s et to 1

上記のエラーが出たら以下のコマンドを実行

  1. cat /proc/sys/net/bridge/bridge-nf-call-iptables
    設定値が「0」だった場合は以下で「1」に設定する
  2. echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

ここまででインストール完了

●インストール後の確認
・kubectlコマンドの補完機能の有効化

  1. yum -y install bash-completion
  2. source <(kubectl completion bash)

・kubernetesバージョンの確認

  1. kubectl version
    Client Version: version.Info{Major:“1”, Minor:“7”, GitVersion:“v1.7.5”, GitCommit:“17d7182a7ccbb167074be7a87f0a68bd00d58d97”, GitTreeState:“clean”, BuildDate:“2017-08-31T09:14:02Z”, GoVersion:“go1.8.3”, Compiler:“gc”, Platform:“linux/amd64”}
    Server Version: version.Info{Major:“1”, Minor:“7”, GitVersion:“v1.7.6”, GitCommit:“4bc5e7f9a6c25dc4c03d4d656f2cefd21540e28c”, GitTreeState:“clean”, BuildDate:“2017-09-14T06:36:08Z”, GoVersion:“go1.8.3”, Compiler:“gc”, Platform:“linux/amd64”}

・ノードの確認

  1. kubectl get node -o wide
    NAME STATUS AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION
    kube-master01 Ready 24m v1.7.5 Red Hat Enterprise Linux 3.10.0-327.36.3.el7.×8664
    kube-node01 Ready 2m v1.7.5 Red Hat Enterprise Linux 3.10.0-327.36.3.el7.×86
    64

・Podの確認

  1. kubectl get pod —all-namespaces -o wide
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
    kube-system calico-etcd-4db6w 1/1 Running 0 10m 10.2.124.184 kube-master01
    kube-system calico-node-30qj9 2/2 Running 0 2m 10.2.124.185 kube-node01
    kube-system calico-node-t4k4z 2/2 Running 0 10m 10.2.124.184 kube-master01
    kube-system calico-policy-controller-1727037546-dlr7h 1/1 Running 0 10m 10.2.124.184 kube-master01
    kube-system etcd-kube-master01 1/1 Running 0 23m 10.2.124.184 kube-master01
    kube-system kube-apiserver-kube-master01 1/1 Running 0 23m 10.2.124.184 kube-master01
    kube-system kube-controller-manager-kube-master01 1/1 Running 0 23m 10.2.124.184 kube-master01
    kube-system kube-dns-2425271678-k5tdh 3/3 Running 0 24m 172.17.0.2 kube-master01
    kube-system kube-proxy-52tjg 1/1 Running 0 24m 10.2.124.184 kube-master01
    kube-system kube-proxy-n0jpp 1/1 Running 0 2m 10.2.124.185 kube-node01
    kube-system kube-scheduler-kube-master01 1/1 Running 0 23m 10.2.124.184 kube-master01

・サービスの確認

  1. kubectl get svc —all-namespaces
    NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT AGE
    default kubernetes 10.96.0.1 443/TCP 25m
    kube-system calico-etcd 10.96.232.136 6666/TCP 11m
    kube-system kube-dns 10.96.0.10 53/UDP,53/TCP 24m

以下サービスに対しアドレスが正しく引けているかを確認

  1. dig @10.96.0.10 kubernetes.default.svc.cluster.local +short
    10.96.0.1
  2. dig @10.96.0.10 calico-etcd.kube-system.svc.cluster.local +short
    10.96.232.136
  3. dig @10.96.0.10 kube-dns.kube-system.svc.cluster.local +short
    10.96.0.10

・ポートの確認

  1. lsof -i:6443 -P
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    kube-apis 3618 root 51u IPv4 75410 0t0 TCP *:6443 (LISTEN)
    kube-apis 3618 root 52u IPv4 75440 0t0 TCP kube-master01:6443→kube-master01:47182 (ESTABLISHED)
    kube-apis 3618 root 53u IPv4 77299 0t0 TCP kube-master01:6443→kube-master01:47238 (ESTABLISHED)
    kube-apis 3618 root 54u IPv4 75414 0t0 TCP localhost:39234→localhost:6443 (ESTABLISHED)
    kube-apis 3618 root 55u IPv4 127508 0t0 TCP kube-master01:6443→kube-master01:36740 (ESTABLISHED)
    kube-apis 3618 root 56u IPv4 75925 0t0 TCP kube-master01:6443→kube-master01:47194 (ESTABLISHED)
    kube-apis 3618 root 59u IPv4 75973 0t0 TCP kube-master01:6443→kube-master01:47206 (ESTABLISHED)
    kube-apis 3618 root 60u IPv4 128154 0t0 TCP kube-master01:6443→kube-master01:36744 (ESTABLISHED)
    kube-apis 3618 root 61u IPv4 88673 0t0 TCP kube-master01:6443→kube-master01:47974 (ESTABLISHED)
    kube-apis 3618 root 62u IPv4 127626 0t0 TCP kube-master01:6443→kube-master01:36742 (ESTABLISHED)
    kube-apis 3618 root 63u IPv4 97479 0t0 TCP kube-master01:6443→172.17.0.2:43510 (ESTABLISHED)
    kube-apis 3618 root 64u IPv4 75898 0t0 TCP localhost:6443→localhost:39234 (ESTABLISHED)
    kube-apis 3618 root 65u IPv4 110892 0t0 TCP kube-master01:6443→kube-node01:41672 (ESTABLISHED)
    kube-apis 3618 root 66u IPv4 110670 0t0 TCP kube-master01:6443→kube-node01:41628 (ESTABLISHED)
    kube-sche 3772 root 3u IPv4 75909 0t0 TCP kube-master01:47182→kube-master01:6443 (ESTABLISHED)
    kube-cont 3920 root 3u IPv4 75452 0t0 TCP kube-master01:47194→kube-master01:6443 (ESTABLISHED)
    kube-cont 3920 root 7u IPv4 75471 0t0 TCP kube-master01:47206→kube-master01:6443 (ESTABLISHED)
    kube-prox 4413 root 4u IPv4 76686 0t0 TCP kube-master01:47238→kube-master01:6443 (ESTABLISHED)
    kubelet 5844 root 14u IPv4 89398 0t0 TCP kube-master01:47974→kube-master01:6443 (ESTABLISHED)
  1. lsof -i:6666 -P
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    etcd 5671 root 5u IPv4 87821 0t0 TCP *:6666 (LISTEN)
    etcd 5671 root 8u IPv4 92348 0t0 TCP kube-master01:6666→kube-master01:59790 (ESTABLISHED)
    etcd 5671 root 9u IPv4 92349 0t0 TCP kube-master01:6666→kube-master01:59792 (ESTABLISHED)
    etcd 5671 root 10u IPv4 92350 0t0 TCP kube-master01:6666→kube-master01:59794 (ESTABLISHED)
    etcd 5671 root 11u IPv4 92351 0t0 TCP kube-master01:6666→kube-master01:59796 (ESTABLISHED)
    etcd 5671 root 12u IPv4 92352 0t0 TCP kube-master01:6666→kube-master01:59798 (ESTABLISHED)
    etcd 5671 root 13u IPv4 92353 0t0 TCP kube-master01:6666→kube-master01:59800 (ESTABLISHED)
    etcd 5671 root 14u IPv4 92354 0t0 TCP kube-master01:6666→kube-master01:59802 (ESTABLISHED)
    etcd 5671 root 15u IPv4 92355 0t0 TCP kube-master01:6666→kube-master01:59804 (ESTABLISHED)
    etcd 5671 root 16u IPv4 92356 0t0 TCP kube-master01:6666→kube-master01:59806 (ESTABLISHED)
    etcd 5671 root 17u IPv4 92357 0t0 TCP kube-master01:6666→kube-master01:59808 (ESTABLISHED)
    etcd 5671 root 18u IPv4 92358 0t0 TCP kube-master01:6666→kube-master01:59810 (ESTABLISHED)
    etcd 5671 root 19u IPv4 92360 0t0 TCP kube-master01:6666→kube-master01:59812 (ESTABLISHED)
    etcd 5671 root 20u IPv4 92122 0t0 TCP kube-master01:6666→kube-master01:59814 (ESTABLISHED)
    etcd 5671 root 21u IPv4 92123 0t0 TCP kube-master01:6666→kube-master01:59816 (ESTABLISHED)
    etcd 5671 root 22u IPv4 95236 0t0 TCP kube-master01:6666→kube-master01:59886 (ESTABLISHED)
    etcd 5671 root 23u IPv4 94515 0t0 TCP kube-master01:6666→kube-master01:59896 (ESTABLISHED)
    etcd 5671 root 24u IPv4 95249 0t0 TCP kube-master01:6666→kube-master01:59902 (ESTABLISHED)
    etcd 5671 root 25u IPv4 111301 0t0 TCP kube-master01:6666→kube-node01:54928 (ESTABLISHED)
    etcd 5671 root 26u IPv4 111302 0t0 TCP kube-master01:6666→kube-node01:54930 (ESTABLISHED)
    etcd 5671 root 27u IPv4 111304 0t0 TCP kube-master01:6666→kube-node01:54932 (ESTABLISHED)
    etcd 5671 root 28u IPv4 111305 0t0 TCP kube-master01:6666→kube-node01:54934 (ESTABLISHED)
    etcd 5671 root 29u IPv4 111307 0t0 TCP kube-master01:6666→kube-node01:54936 (ESTABLISHED)
    etcd 5671 root 30u IPv4 111309 0t0 TCP kube-master01:6666→kube-node01:54938 (ESTABLISHED)
    etcd 5671 root 31u IPv4 111311 0t0 TCP kube-master01:6666→kube-node01:54940 (ESTABLISHED)
    etcd 5671 root 32u IPv4 111313 0t0 TCP kube-master01:6666→kube-node01:54942 (ESTABLISHED)
    etcd 5671 root 33u IPv4 111315 0t0 TCP kube-master01:6666→kube-node01:54944 (ESTABLISHED)
    etcd 5671 root 34u IPv4 111317 0t0 TCP kube-master01:6666→kube-node01:54946 (ESTABLISHED)
    etcd 5671 root 35u IPv4 111319 0t0 TCP kube-master01:6666→kube-node01:54948 (ESTABLISHED)
    etcd 5671 root 36u IPv4 111321 0t0 TCP kube-master01:6666→kube-node01:54950 (ESTABLISHED)
    etcd 5671 root 37u IPv4 112318 0t0 TCP kube-master01:6666→kube-node01:54952 (ESTABLISHED)
    etcd 5671 root 38u IPv4 112320 0t0 TCP kube-master01:6666→kube-node01:54954 (ESTABLISHED)
    confd 6494 root 3u IPv4 92337 0t0 TCP kube-master01:59790→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 5u IPv4 92338 0t0 TCP kube-master01:59792→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 6u IPv4 92339 0t0 TCP kube-master01:59794→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 7u IPv4 92340 0t0 TCP kube-master01:59796→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 8u IPv4 92341 0t0 TCP kube-master01:59798→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 9u IPv4 92342 0t0 TCP kube-master01:59800→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 10u IPv4 92343 0t0 TCP kube-master01:59802→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 11u IPv4 92344 0t0 TCP kube-master01:59804→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 12u IPv4 92345 0t0 TCP kube-master01:59806→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 13u IPv4 92346 0t0 TCP kube-master01:59808→10.96.232.136:6666 (ESTABLISHED)
    confd 6494 root 14u IPv4 92347 0t0 TCP kube-master01:59810→10.96.232.136:6666 (ESTABLISHED)
    calico-fe 6496 root 3u IPv4 92100 0t0 TCP kube-master01:59812→10.96.232.136:6666 (ESTABLISHED)
    calico-fe 6496 root 10u IPv4 92109 0t0 TCP kube-master01:59814→10.96.232.136:6666 (ESTABLISHED)
    calico-fe 6496 root 11u IPv4 92110 0t0 TCP kube-master01:59816→10.96.232.136:6666 (ESTABLISHED)
    controlle 7041 root 5u IPv4 94507 0t0 TCP kube-master01:59886→10.96.232.136:6666 (ESTABLISHED)
    controlle 7041 root 8u IPv4 95243 0t0 TCP kube-master01:59896→10.96.232.136:6666 (ESTABLISHED)
    controlle 7041 root 13u IPv4 94519 0t0 TCP kube-master01:59902→10.96.232.136:6666 (ESTABLISHED)
  1. lsof -i:6667 -P
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    etcd 5671 root 3u IPv4 87820 0t0 TCP *:6667 (LISTEN)

https://qiita.com/mihirat/items/ebb0833d50c882398b0f

⚠️ **GitHub.com Fallback** ⚠️