本記事が参考になるシチュエーション
- すでにKubernetesのノード構築をしている
- ノード構築はkubeadmを使ってセットアップをする
- 過去構築してからホストノードのIP情報の変更がある
初期構築時の手順
kubeadmについて
kubeadmとは
kubeadmはKubernetesコミュニティが公式に提供している簡易な構築ツールです。Kubernetesを構成するコンポーネントや証明書、各種設定ファイルを自動で作成し、素早くKubernetesクラスタを作成できます。
kubeadmを使ったkubernetesインストール手順
vagrant@vagrant:~$ sudo su -
# install kubernetes
# x.x.x.xはapi-serverが待ち受けるnicのip addressを指定する。
root@vagrant:~# kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=x.x.x.x --ignore-preflight-errors all
# To make kubectl work for your non-root user
root@vagrant:~# exit
vagrant@vagrant:~$ mkdir -p $HOME/.kube
vagrant@vagrant:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
vagrant@vagrant:~$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
# install CNI (Flannel)
vagrant@vagrant:~$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
–apiserver-advertise-address=x.x.x.x ここにホストサーバー側のアドレスを指定する
出来上がった/etc/kubernetes/admin.conf を
$HOME/.kube/config にコピーしてkubectl apply コマンドにてflannel.ymlを適用することで構築が完了する。
kubeadmで作成されるファイル等
xxxxx@xxxx-----xxx000100:/etc/kubernetes$ ls -al
合計 56
drwxr-xr-x 4 root root 4096 2月 17 16:42 .
drwxr-xr-x 129 root root 12288 2月 17 16:42 ..
-rw------- 1 root root 5452 2月 17 16:42 admin.conf
-rw------- 1 root root 5484 2月 17 16:42 controller-manager.conf
-rw------- 1 root root 5540 2月 17 16:42 kubelet.conf
drwx------ 2 root root 4096 2月 17 16:42 manifests
drwxr-xr-x 3 root root 4096 2月 17 16:42 pki
-rw------- 1 root root 5436 2月 17 16:42 scheduler.conf
ubunts利用のためtree がインストールされていない状況。見栄え悪くてすいません。
admin.conf
apiVersion: v1
clusters:
- cluster:
certificate-authority-data:
文字列がたくさん羅列されている
server: https://10.xx.xxx.xx:xxxx
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data:
文字列がたくさん羅列されている
client-key-data:
文字列がたくさん羅列されている
さっきkubeadm init コマンドで指定したserverIPが記載されている。
ホストIPが変わったあと初期と同様の手順を再実行した結果
初期構築と同じ手順を踏んで再構築した
以下構築したnodeの状態を確認するコマンド実行結果
xxx@xxxxx:/etc/kubernetes$ kubectl describe node
Name: xxxxxxxxx
Roles: master
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=xxxxxxx
kubernetes.io/os=linux
node-role.kubernetes.io/master=
Annotations: flannel.alpha.coreos.com/backend-data: {"VtepMAC":"7a:68:b7:20:3b:8a"}
flannel.alpha.coreos.com/backend-type: vxlan
flannel.alpha.coreos.com/kube-subnet-manager: true
flannel.alpha.coreos.com/public-ip: xxxxxxxxxx
kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
node.alpha.kubernetes.io/ttl: 0
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Mon, 11 Nov 2019 14:01:37 +0900
Taints: <none>
Unschedulable: false
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
MemoryPressure False Fri, 17 Dec 2021 15:14:44 +0900 Mon, 11 Nov 2019 14:01:33 +0900 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Fri, 17 Dec 2021 15:14:44 +0900 Mon, 11 Nov 2019 14:01:33 +0900 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Fri, 17 Dec 2021 15:14:44 +0900 Mon, 11 Nov 2019 14:01:33 +0900 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Fri, 17 Dec 2021 15:14:44 +0900 Tue, 27 Oct 2020 13:42:41 +0900 KubeletReady kubelet is posting ready status. AppArmor enabled
Addresses:
InternalIP: xxxxxx
Hostname: xxxxxx
Capacity:
cpu: 16
ephemeral-storage: 575261800Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 49318132Ki
pods: 110
Allocatable:
cpu: 16
ephemeral-storage: 530161274003
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 49215732Ki
pods: 110
System Info:
Machine ID: 6bb14d41837d4561bad8576ecf6cd571
System UUID: 36363238-3238-4e43-3737-353130485244
Boot ID: 8d1f6576-9b70-48e9-a7aa-e175ee1d7b11
Kernel Version: 5.0.0-32-generic
OS Image: Ubuntu 18.04.3 LTS
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://19.3.4
Kubelet Version: v1.16.2
Kube-Proxy Version: v1.16.2
PodCIDR: 10.244.0.0/24
PodCIDRs: 10.244.0.0/24
Non-terminated Pods: (20 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
confluence confluence-756cc84558-gdf7g 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2y103d
confluence2 confluence2-84f8ddb488-8hnt9 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2y84d
confluence3 confluence3-dc9ddf655-qmbqp 0 (0%) 0 (0%) 0 (0%) 0 (0%) 701d
confluence4 confluence4-85cc478c54-tnr2z 0 (0%) 0 (0%) 0 (0%) 0 (0%) 701d
jira-to-slack jira-to-slack-769bb5f895-thx9r 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2y69d
jira jira-5f8464dd77-pnmlw 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2y67d
jira2 jira2-6644795cdc-xj2nf 0 (0%) 0 (0%) 0 (0%) 0 (0%) 250d
jira3 jira3-685fbc5676-6lxxm 0 (0%) 0 (0%) 0 (0%) 0 (0%) 701d
jira4 jira4-7fbd554cb9-2ph8m 0 (0%) 0 (0%) 0 (0%) 0 (0%) 250d
jira5 jira5-68fc66fd86-cd8qz 0 (0%) 0 (0%) 0 (0%) 0 (0%) 626d
jira6 jira6-5bd85c568c-x54mg 0 (0%) 0 (0%) 0 (0%) 0 (0%) 626d
jira7 jira7-56c7f4c5b8-mg7k9 0 (0%) 0 (0%) 0 (0%) 0 (0%) 232d
kube-system coredns-5644d7b6d9-l265j 100m (0%) 0 (0%) 70Mi (0%) 170Mi (0%) 2y105d
kube-system coredns-5644d7b6d9-shzcs 100m (0%) 0 (0%) 70Mi (0%) 170Mi (0%) 2y82d
kube-system etcd-w27os-----nssv000100 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2y105d
kube-system kube-apiserver-w27os-----nssv000100 250m (1%) 0 (0%) 0 (0%) 0 (0%) 2y82d
kube-system kube-controller-manager-w27os-----nssv000100 200m (1%) 0 (0%) 0 (0%) 0 (0%) 2y82d
kube-system kube-flannel-ds-amd64-hp6xr 100m (0%) 100m (0%) 50Mi (0%) 50Mi (0%) 485d
kube-system kube-proxy-tnqtd 0 (0%) 0 (0%) 0 (0%) 0 (0%) 2y82d
kube-system kube-scheduler-w27os-----nssv000100 100m (0%) 0 (0%) 0 (0%) 0 (0%) 2y82d
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 850m (5%) 100m (0%)
memory 190Mi (0%) 390Mi (0%)
ephemeral-storage 0 (0%) 0 (0%)
Events: <none>
IPaddress の赤文字の部分が旧構築時のIPからupdateされていない。
nodeにデプロイした各種podの状態を確認した結果
xxxx@xxxx:~/jira$ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
confluence confluence-756cc84558-gdf7g 1/1 Running 1 2y103d
confluence2 confluence2-84f8ddb488-8hnt9 1/1 Running 1 2y84d
confluence3 confluence3-dc9ddf655-qmbqp 1/1 Running 1 701d
confluence4 confluence4-85cc478c54-tnr2z 1/1 Running 1 701d
jira-to-slack jira-to-slack-769bb5f895-thx9r 1/1 Running 3 2y69d
jira jira-5f8464dd77-pnmlw 1/1 Running 3 2y67d
jira2 jira2-6644795cdc-xj2nf 1/1 Running 9 250d
jira3 jira3-685fbc5676-6lxxm 1/1 Running 3 701d
jira4 jira4-7fbd554cb9-2ph8m 1/1 Running 2 250d
jira5 jira5-68fc66fd86-cd8qz 1/1 Running 3 626d
jira6 jira6-5bd85c568c-x54mg 1/1 Running 3 626d
jira7 jira7-56c7f4c5b8-mg7k9 1/1 Running 0 232d
kube-system coredns-5644d7b6d9-l265j 1/1 Running 1 2y105d
kube-system coredns-5644d7b6d9-shzcs 1/1 Running 1 2y82d
kube-system etcd-w27os-----nssv000100 1/1 Running 1 2y105d
kube-system kube-apiserver-w27os-----nssv000100 1/1 Running 1 2y82d
kube-system kube-controller-manager-w27os-----nssv000100 1/1 Running 4 2y82d
kube-system kube-flannel-ds-amd64-hp6xr 1/1 Running 1 485d
kube-system kube-proxy-tnqtd 1/1 Running 1 2y82d
kube-system kube-scheduler-w27os-----nssv000100 1/1 Running 4 2y82d
statusはRunningのため動いてはいる模様。
Podの1つのserviceの状態確認結果
xxx@xxxxx:~/jira$ kubectl get svc -n jira
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
jira NodePort 10.105.25.153 <none> 8080:30001/TCP 2y67d
podの状態確認
xxx@xxxxx:~/jira$ kubectl describe pods -A
Name: confluence-756cc84558-gdf7g
Namespace: confluence
Priority: 0
Node: xxxxxxxx/xx.xx.xx.xxx
Start Time: Wed, 13 Nov 2019 16:01:49 +0900
Labels: app=confluence
pod-template-hash=756cc84558
tier=confluence
Annotations: <none>
Status: Running
IP: 10.244.0.130
IPs:
IP: 10.244.0.130
Controlled By: ReplicaSet/confluence-756cc84558
Containers:
confluence:
Container ID: docker://8d74ac6f601e2df167150a8a6d53877df0120fb431572af9067
Image: atlassian/confluence-server:latest
Image ID: docker-pullable://atlassian/confluence-server@sha256:cad46ec
Port: 8090/TCP
Host Port: 0/TCP
State: Running
Started: Mon, 14 Jun 2021 01:25:32 +0900
Last State: Terminated
Reason: Error
Exit Code: 255
Started: Mon, 16 Nov 2020 19:04:40 +0900
Finished: Mon, 14 Jun 2021 01:24:40 +0900
Ready: True
Restart Count: 1
Environment: <none>
Mounts:
/var/atlassian/application-data/confluence from confluence-persistent-stor
/var/run/secrets/kubernetes.io/serviceaccount from default-token-kjtp9 (ro
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
confluence-persistent-storage:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in
ClaimName: confluence-pv-claim
ReadOnly: false
default-token-kjtp9:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-kjtp9
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events: <none>
podの状態を確認してみても赤文字の通り古いIP情報から更新がされていない状況。
主筋とは
基礎に対して短辺を形成する鉄筋のこと
辺が短いと支える建物の圧力によるたわみが少ないから下側で支える

なにわリーマンゆうき

あやたろう

なにわリーマンゆうき

あやたろう

なにわリーマンゆうき

あやたろう
コメント