{"id":7565,"date":"2023-01-04T21:40:23","date_gmt":"2023-01-04T12:40:23","guid":{"rendered":"https:\/\/lab4ict.com\/system\/?p=7565"},"modified":"2023-01-09T10:31:08","modified_gmt":"2023-01-09T01:31:08","slug":"kubeadm%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%81%a7kubernates%e3%81%ae%e3%82%af%e3%83%a9%e3%82%b9%e3%82%bf%e7%92%b0%e5%a2%83%e3%82%92%e6%a7%8b%e7%af%89%e3%81%99%e3%82%8b%ef%bc%81","status":"publish","type":"post","link":"https:\/\/lab4ict.com\/system\/archives\/7565","title":{"rendered":"kubeadm\u30b3\u30de\u30f3\u30c9\u3067Kubernates\u306e\u30af\u30e9\u30b9\u30bf\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\uff01"},"content":{"rendered":"<p>kubeadm\u30b3\u30de\u30f3\u30c9\u3067Kubernates\u306e\u30af\u30e9\u30b9\u30bf\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\uff01<br \/>\n<!--more--><\/p>\n<h2>\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30ce\u30fc\u30c9\u3068\u30ef\u30fc\u30ab\u30fc\u30ce\u30fc\u30c9\u306e\u540d\u524d\u89e3\u6c7a\u3092\u53ef\u80fd\u3068\u3059\u308b\uff01<\/h2>\n<p>\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30ce\u30fc\u30c9\u3068\u30ef\u30fc\u30ab\u30fc\u30ce\u30fc\u30c9\u306e\u540d\u524d\u89e3\u6c7a\u3092\/etc\/hosts\u3042\u308b\u3044\u306f\u3001DNS\u3067\u540d\u524d\u89e3\u6c7a\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002<\/p>\n<h2>Kubernates\u74b0\u5883\u3092\u521d\u671f\u5316\u3059\u308b\uff01<\/h2>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ sudo kubeadm init --pod-network-cidr=10.200.0.0\/16\r\n&#x5B;sudo] password for usradmin: \r\n&#x5B;init] Using Kubernetes version: v1.26.0\r\n&#x5B;preflight] Running pre-flight checks\r\n\t&#x5B;WARNING Hostname]: hostname &quot;vmsk8s81&quot; could not be reached\r\n\t&#x5B;WARNING Hostname]: hostname &quot;vmsk8s81&quot;: lookup vmsk8s81 on 10.1.20.1:53: no such host\r\n\t&#x5B;WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'\r\n&#x5B;preflight] Pulling images required for setting up a Kubernetes cluster\r\n&#x5B;preflight] This might take a minute or two, depending on the speed of your internet connection\r\n&#x5B;preflight] You can also perform this action in beforehand using 'kubeadm config images pull'\r\n&#x5B;certs] Using certificateDir folder &quot;\/etc\/kubernetes\/pki&quot;\r\n&#x5B;certs] Generating &quot;ca&quot; certificate and key\r\n&#x5B;certs] Generating &quot;apiserver&quot; certificate and key\r\n&#x5B;certs] apiserver serving cert is signed for DNS names &#x5B;kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local vmsk8s81] and IPs &#x5B;10.96.0.1 10.1.97.81]\r\n&#x5B;certs] Generating &quot;apiserver-kubelet-client&quot; certificate and key\r\n&#x5B;certs] Generating &quot;front-proxy-ca&quot; certificate and key\r\n&#x5B;certs] Generating &quot;front-proxy-client&quot; certificate and key\r\n&#x5B;certs] Generating &quot;etcd\/ca&quot; certificate and key\r\n&#x5B;certs] Generating &quot;etcd\/server&quot; certificate and key\r\n&#x5B;certs] etcd\/server serving cert is signed for DNS names &#x5B;localhost vmsk8s81] and IPs &#x5B;10.1.97.81 127.0.0.1 ::1]\r\n&#x5B;certs] Generating &quot;etcd\/peer&quot; certificate and key\r\n&#x5B;certs] etcd\/peer serving cert is signed for DNS names &#x5B;localhost vmsk8s81] and IPs &#x5B;10.1.97.81 127.0.0.1 ::1]\r\n&#x5B;certs] Generating &quot;etcd\/healthcheck-client&quot; certificate and key\r\n&#x5B;certs] Generating &quot;apiserver-etcd-client&quot; certificate and key\r\n&#x5B;certs] Generating &quot;sa&quot; key and public key\r\n&#x5B;kubeconfig] Using kubeconfig folder &quot;\/etc\/kubernetes&quot;\r\n&#x5B;kubeconfig] Writing &quot;admin.conf&quot; kubeconfig file\r\n&#x5B;kubeconfig] Writing &quot;kubelet.conf&quot; kubeconfig file\r\n&#x5B;kubeconfig] Writing &quot;controller-manager.conf&quot; kubeconfig file\r\n&#x5B;kubeconfig] Writing &quot;scheduler.conf&quot; kubeconfig file\r\n&#x5B;kubelet-start] Writing kubelet environment file with flags to file &quot;\/var\/lib\/kubelet\/kubeadm-flags.env&quot;\r\n&#x5B;kubelet-start] Writing kubelet configuration to file &quot;\/var\/lib\/kubelet\/config.yaml&quot;\r\n&#x5B;kubelet-start] Starting the kubelet\r\n&#x5B;control-plane] Using manifest folder &quot;\/etc\/kubernetes\/manifests&quot;\r\n&#x5B;control-plane] Creating static Pod manifest for &quot;kube-apiserver&quot;\r\n&#x5B;control-plane] Creating static Pod manifest for &quot;kube-controller-manager&quot;\r\n&#x5B;control-plane] Creating static Pod manifest for &quot;kube-scheduler&quot;\r\n&#x5B;etcd] Creating static Pod manifest for local etcd in &quot;\/etc\/kubernetes\/manifests&quot;\r\n&#x5B;wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory &quot;\/etc\/kubernetes\/manifests&quot;. This can take up to 4m0s\r\n&#x5B;apiclient] All control plane components are healthy after 10.503284 seconds\r\n&#x5B;upload-config] Storing the configuration used in ConfigMap &quot;kubeadm-config&quot; in the &quot;kube-system&quot; Namespace\r\n&#x5B;kubelet] Creating a ConfigMap &quot;kubelet-config&quot; in namespace kube-system with the configuration for the kubelets in the cluster\r\n&#x5B;upload-certs] Skipping phase. Please see --upload-certs\r\n&#x5B;mark-control-plane] Marking the node vmsk8s81 as control-plane by adding the labels: &#x5B;node-role.kubernetes.io\/control-plane node.kubernetes.io\/exclude-from-external-load-balancers]\r\n&#x5B;mark-control-plane] Marking the node vmsk8s81 as control-plane by adding the taints &#x5B;node-role.kubernetes.io\/control-plane:NoSchedule]\r\n&#x5B;bootstrap-token] Using token: 2gtmrt.uliw8ddw1mot49xw\r\n&#x5B;bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles\r\n&#x5B;bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes\r\n&#x5B;bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials\r\n&#x5B;bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token\r\n&#x5B;bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster\r\n&#x5B;bootstrap-token] Creating the &quot;cluster-info&quot; ConfigMap in the &quot;kube-public&quot; namespace\r\n&#x5B;kubelet-finalize] Updating &quot;\/etc\/kubernetes\/kubelet.conf&quot; to point to a rotatable kubelet client certificate and key\r\n&#x5B;addons] Applied essential addon: CoreDNS\r\n&#x5B;addons] Applied essential addon: kube-proxy\r\n\r\nYour Kubernetes control-plane has initialized successfully!\r\n\r\nTo start using your cluster, you need to run the following as a regular user:\r\n\r\n  mkdir -p $HOME\/.kube\r\n  sudo cp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\r\n  sudo chown $(id -u):$(id -g) $HOME\/.kube\/config\r\n\r\nAlternatively, if you are the root user, you can run:\r\n\r\n  export KUBECONFIG=\/etc\/kubernetes\/admin.conf\r\n\r\nYou should now deploy a pod network to the cluster.\r\nRun &quot;kubectl apply -f &#x5B;podnetwork].yaml&quot; with one of the options listed at:\r\n  https:\/\/kubernetes.io\/docs\/concepts\/cluster-administration\/addons\/\r\n\r\nThen you can join any number of worker nodes by running the following on each as root:\r\n\r\nkubeadm join 10.1.97.81:6443 --token 2gtmrt.uliw8ddw1mot49xw \\\r\n\t--discovery-token-ca-cert-hash sha256:8e7676f789f71f63e5d659da3d239cedc9e0a0523449a48d114bfbb8bc9fa3b7\r\n<\/pre>\n<p>\u30e1\u30fc\u30c3\u30bb\u30fc\u30b8\u51fa\u529b\u306e\u3068\u304a\u308a\u3001kubeadm\u74b0\u5883\u3092\u6574\u3048\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1,2,3]; title: ; notranslate\" title=\"\">\r\n$ mkdir -p $HOME\/.kube\r\n$ sudo cp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\r\n$ sudo chown $(id -u):$(id -g) $HOME\/.kube\/config\r\n<\/pre>\n<h2>\u30ef\u30fc\u30ab\u30fc\u30ce\u30fc\u30c9\u3092\u767b\u9332\u3059\u308b\uff01<\/h2>\n<p>\u30ef\u30fc\u30ab\u30fc\u30ce\u30fc\u30c9\u3092\u767b\u9332\u3057\u307e\u3059\u3002\u4eca\u56de\u306f\u3001\u300cvmsk8s91\u300d\u3068\u300cvmsk8s92\u300d\u3044\u3046\u30de\u30b7\u30f3\u304b\u3089\u767b\u9332\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ sudo kubeadm join 10.1.97.81:6443 --token 64yr1e.zl3ykzqa1m9bss2z        --discovery-token-ca-cert-hash sha256:8e7676f789f71f63e5d659da3d239cedc9e0a0523449a48d114bfbb8bc9fa3b7 \r\n&#x5B;preflight] Running pre-flight checks\r\n&#x5B;preflight] Reading configuration from the cluster...\r\n&#x5B;preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'\r\n&#x5B;kubelet-start] Writing kubelet configuration to file &quot;\/var\/lib\/kubelet\/config.yaml&quot;\r\n&#x5B;kubelet-start] Writing kubelet environment file with flags to file &quot;\/var\/lib\/kubelet\/kubeadm-flags.env&quot;\r\n&#x5B;kubelet-start] Starting the kubelet\r\n&#x5B;kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...\r\n&#x5B;kubelet-check] Initial timeout of 40s passed.\r\n\r\nThis node has joined the cluster:\r\n* Certificate signing request was sent to apiserver and a response was received.\r\n* The Kubelet was informed of the new secure connection details.\r\n\r\nRun 'kubectl get nodes' on the control-plane to see this node join the cluster.\r\n<\/pre>\n<p>\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d7\u30ec\u30fc\u30f3\u3067\u3001\u30ce\u30fc\u30c9\u304c\u8ffd\u52a0\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ kubectl get node\r\nNAME       STATUS     ROLES           AGE     VERSION\r\nvmsk8s81   NotReady   control-plane   4m48s   v1.26.0\r\nvmsk8s91   NotReady   &lt;none&gt;          2m42s   v1.26.0\r\nvmsk8s92   NotReady   &lt;none&gt;          2m      v1.26.0\r\n<\/pre>\n<h2>Calico\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\uff01<\/h2>\n<p>Calico\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1,2]; title: ; notranslate\" title=\"\">\r\n$ kubectl create -f https:\/\/raw.githubusercontent.com\/projectcalico\/calico\/v3.24.5\/manifests\/tigera-operator.yaml\r\n$ kubectl create -f https:\/\/raw.githubusercontent.com\/projectcalico\/calico\/v3.24.5\/manifests\/custom-resources.yaml\r\n<\/pre>\n<h2>\u30ce\u30fc\u30c9\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\uff01<\/h2>\n<p>\u30ce\u30fc\u30c9\u306e\u72b6\u614b\u304c\u3059\u3079\u3066\u3001Ready\u306b\u306a\u3063\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ kubectl get node\r\nNAME       STATUS   ROLES           AGE   VERSION\r\nvmsk8s81   Ready    control-plane   64m   v1.26.0\r\nvmsk8s91   Ready    &lt;none&gt;          62m   v1.26.0\r\nvmsk8s92   Ready    &lt;none&gt;          61m   v1.26.0\r\n<\/pre>\n<h2>Nginx\u3092\u52d5\u4f5c\u3055\u305b\u3066\u307f\u308b\uff01<\/h2>\n<p>Nginx\u3092\u52d5\u4f5c\u3055\u305b\u3066\u307f\u307e\u3059\u3002<\/p>\n<h3>YAML\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3059\u308b\uff01<\/h3>\n<p>\u4ee5\u4e0b\u306eYAML\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ cat nginx.yaml \r\napiVersion: v1\r\nkind: Pod\r\nmetadata:\r\n  name: nginx\r\nspec:\r\n  containers:\r\n  - image: nginx:latest\r\n    name: nginx\r\n<\/pre>\n<h3>Kubernates\u306e\u74b0\u5883\u306b\u9069\u7528\u3059\u308b\uff01<\/h3>\n<p>YAML\u30d5\u30a1\u30a4\u30eb\u3092Kubernates\u306e\u74b0\u5883\u306b\u9069\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ kubectl apply -f nginx.yaml\r\npod\/nginx created\r\n<\/pre>\n<p>Nginx\u306ePod\u304c\u52d5\u4f5c\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ kubectl get pods\r\nNAME    READY   STATUS    RESTARTS   AGE\r\nnginx   1\/1     Running   0          60s\r\n<\/pre>\n<h3>Pod\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\uff01<\/h3>\n<p>Nginx\u306ePod\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1,6,11]; title: ; notranslate\" title=\"\">\r\n$ kubectl describe pod nginx\r\nName:             nginx\r\nNamespace:        default\r\nPriority:         0\r\nService Account:  default\r\nNode:             vmsk8s91\/10.1.97.91\r\nStart Time:       Mon, 09 Jan 2023 08:50:25 +0900\r\nLabels:           &lt;none&gt;\r\nAnnotations:      &lt;none&gt;\r\nStatus:           Running\r\nIP:               10.88.0.5\r\nIPs:\r\n  IP:  10.88.0.5\r\n  IP:  2001:4860:4860::5\r\nContainers:\r\n  nginx:\r\n    Container ID:   containerd:\/\/2a3e827647d101632026fb91758011691cb0bbdd002ba29bcb377aeb3a61840a\r\n    Image:          nginx:latest\r\n    Image ID:       docker.io\/library\/nginx@sha256:0047b729188a15da49380d9506d65959cce6d40291ccfb4e039f5dc7efd33286\r\n    Port:           &lt;none&gt;\r\n    Host Port:      &lt;none&gt;\r\n    State:          Running\r\n      Started:      Mon, 09 Jan 2023 08:50:28 +0900\r\n    Ready:          True\r\n    Restart Count:  0\r\n    Environment:    &lt;none&gt;\r\n    Mounts:\r\n      \/var\/run\/secrets\/kubernetes.io\/serviceaccount from kube-api-access-86rwh (ro)\r\nConditions:\r\n  Type              Status\r\n  Initialized       True \r\n  Ready             True \r\n  ContainersReady   True \r\n  PodScheduled      True \r\nVolumes:\r\n  kube-api-access-86rwh:\r\n    Type:                    Projected (a volume that contains injected data from multiple sources)\r\n    TokenExpirationSeconds:  3607\r\n    ConfigMapName:           kube-root-ca.crt\r\n    ConfigMapOptional:       &lt;nil&gt;\r\n    DownwardAPI:             true\r\nQoS Class:                   BestEffort\r\nNode-Selectors:              &lt;none&gt;\r\nTolerations:                 node.kubernetes.io\/not-ready:NoExecute op=Exists for 300s\r\n                             node.kubernetes.io\/unreachable:NoExecute op=Exists for 300s\r\nEvents:\r\n  Type    Reason     Age   From               Message\r\n  ----    ------     ----  ----               -------\r\n  Normal  Scheduled  2m2s  default-scheduler  Successfully assigned default\/nginx to vmsk8s91\r\n  Normal  Pulling    2m1s  kubelet            Pulling image &quot;nginx:latest&quot;\r\n  Normal  Pulled     2m    kubelet            Successfully pulled image &quot;nginx:latest&quot; in 1.589679623s (1.58968523s including waiting)\r\n  Normal  Created    2m    kubelet            Created container nginx\r\n  Normal  Started    119s  kubelet            Started container nginx\r\n\r\n<\/pre>\n<p>Nginx\u304c\u300cvmsk8s91\u300d\u4e0a\u3067\u3001\u300c10.88.0.5\u300d\u3067\u52d5\u4f5c\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<h3>Nginx\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\uff01<\/h3>\n<p>\u300cvmsk8s91\u300d\u4e0a\u3067curl\u30b3\u30de\u30f3\u30c9\u3067\u30a2\u30af\u30bb\u30b9\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ curl 10.88.0.5\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Welcome to nginx!&lt;\/title&gt;\r\n&lt;style&gt;\r\nhtml { color-scheme: light dark; }\r\nbody { width: 35em; margin: 0 auto;\r\nfont-family: Tahoma, Verdana, Arial, sans-serif; }\r\n&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;h1&gt;Welcome to nginx!&lt;\/h1&gt;\r\n&lt;p&gt;If you see this page, the nginx web server is successfully installed and\r\nworking. Further configuration is required.&lt;\/p&gt;\r\n\r\n&lt;p&gt;For online documentation and support please refer to\r\n&lt;a href=&quot;http:\/\/nginx.org\/&quot;&gt;nginx.org&lt;\/a&gt;.&lt;br\/&gt;\r\nCommercial support is available at\r\n&lt;a href=&quot;http:\/\/nginx.com\/&quot;&gt;nginx.com&lt;\/a&gt;.&lt;\/p&gt;\r\n\r\n&lt;p&gt;&lt;em&gt;Thank you for using nginx.&lt;\/em&gt;&lt;\/p&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p>Nginx\u306e\u30c8\u30c3\u30d7\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<h3>Nginx\u306ePod\u3092\u524a\u9664\u3059\u308b\uff01<\/h3>\n<p>\u6700\u5f8c\u306b\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30ce\u30fc\u30c9\u3067\u3001Nginx\u306ePod\u3092\u524a\u9664\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1,3]; title: ; notranslate\" title=\"\">\r\n$ kubectl delete pod nginx\r\npod &quot;nginx&quot; deleted\r\n$ kubectl get pods\r\nNo resources found in default namespace.\r\n<\/pre>\n<h2>\u52d5\u4f5c\u3057\u306a\u3044\u5834\u5408\u306f\u30fb\u30fb\u30fb<\/h2>\n<p>\u52d5\u4f5c\u3057\u306a\u3044\u5834\u5408\u306f\u3001containerd\u3068\u3001kublet\u306e\u30b5\u30fc\u30d3\u30b9\u306e\u30ed\u30b0\u3092\u898b\u3066\u3001\u30a8\u30e9\u30fc\u5185\u5bb9\u3092\u78ba\u8a8d\u3059\u308b\u3068\u89e3\u6c7a\u306b\u305f\u3069\u308a\u3051\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1,2]; title: ; notranslate\" title=\"\">\r\n$ journalctl -xeu conatinerd\r\n$ journalctl -xeu kubulet\r\n<\/pre>\n<p>\u5b9f\u884c\u4e2d\u306b\u3001\u6700\u65b0\u306e\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u306e\u3082\u3088\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\n$ journalctl -xef\r\n<\/pre>\n<h2>\u304a\u308f\u308a\u306b<\/h2>\n<p>kubeadm\u30b3\u30de\u30f3\u30c9\u3067\u30011\u500b\u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30ce\u30fc\u30c9\u30012\u500b\u306e\u30ef\u30fc\u30ab\u30fc\u30ce\u30fc\u30c9\u306e\u69cb\u6210\u306eKubernates\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u3066\u3001\u52d5\u4f5c\u78ba\u8a8d\u3068\u3057\u3066Nginx\u306ePod\u3092\u52d5\u4f5c\u3055\u305b\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<h2>\u53c2\u8003\u60c5\u5831<\/h2>\n<ul>\n<li><a href=\"https:\/\/projectcalico.docs.tigera.io\/getting-started\/kubernetes\/quickstart\" target=\"_blank\" rel=\"noopener\">Quickstart for Calico on Kubernetes<\/a><\/li>\n<\/ul>\n<h2>\u95a2\u9023\u8a18\u4e8b<\/h2>\n<div class=\"sc_getpost\"><a class=\"clearfix\" href=\"https:\/\/lab4ict.com\/system\/archives\/7436\" ><div class=\"sc_getpost_thumb post-box-thumbnail__wrap\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODdhAQABAPAAAN3d3QAAACwAAAAAAQABAAACAkQBADs=\" width=\"150\" height=\"150\" alt=\"\u3010\u8a18\u4e8b\u4e00\u89a7\u3011Kubernates\u3092\u4f7f\u3044\u3053\u306a\u3059\uff01\" loading=\"lazy\" data-src=\"https:\/\/lab4ict.com\/system\/wp-content\/uploads\/2023\/01\/eyecatch_kubernates_01-150x150.png\" class=\"lazyload\"><\/div><div class=\"title\">\u3010\u8a18\u4e8b\u4e00\u89a7\u3011Kubernates\u3092\u4f7f\u3044\u3053\u306a\u3059\uff01<\/div><div class=\"substr\">Kubernates\u3092\u4f7f\u3044\u3053\u306a\u3059\u305f\u3081\u306e\u8a18\u4e8b\u4e00\u89a7\u3092\u63b2\u8f09\u3057\u307e\u3059\u3002...<\/div><\/a><\/div>\n<h2>\u95a2\u9023\u66f8\u7c4d\uff08Amazon\uff09<\/h2>\n<p><iframe sandbox=\"allow-popups allow-scripts allow-modals allow-forms allow-same-origin\" style=\"width:120px;height:240px;\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\" src=\"\/\/rcm-fe.amazon-adsystem.com\/e\/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=infotecr-22&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B08FZX8PYW&linkId=5af13f3365669758cf1ee39990aa836e\"><\/iframe><\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>kubeadm\u30b3\u30de\u30f3\u30c9\u3067Kubernates\u306e\u30af\u30e9\u30b9\u30bf\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\uff01<\/p>\n","protected":false},"author":1,"featured_media":7498,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[180],"tags":[],"class_list":["post-7565","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernates"],"_links":{"self":[{"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/posts\/7565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/comments?post=7565"}],"version-history":[{"count":0,"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/posts\/7565\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/media\/7498"}],"wp:attachment":[{"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/media?parent=7565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/categories?post=7565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lab4ict.com\/system\/wp-json\/wp\/v2\/tags?post=7565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}