9: 2021-09-09 (木) 15:56:28 iseki |
10: 2021-09-09 (木) 19:04:00 iseki |
| - Podによるクラスター構築環境 | | - Podによるクラスター構築環境 |
| - 勉強中 | | - 勉強中 |
| + | |
| - [[kubectl>./kubectl]] | | - [[kubectl>./kubectl]] |
| + | - [[helm>./helm]] |
| + | |
| - RANCHER https://qiita.com/suzukihi724/items/00b167c6f5f2ddeca718 | | - RANCHER https://qiita.com/suzukihi724/items/00b167c6f5f2ddeca718 |
| #br | | #br |
| *** firewalld を止める. [#k1b76d7b] | | *** firewalld を止める. [#k1b76d7b] |
| #br | | #br |
- | *** iptables の適用設定 [#k9224b53] | + | *** routing の適用設定 [#k9224b53] |
| - /etc/sysctl.d/k8s.conf | | - /etc/sysctl.d/k8s.conf |
| net.bridge.bridge-nf-call-ip6tables = 1 | | net.bridge.bridge-nf-call-ip6tables = 1 |
| KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs" | | KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs" |
| | | |
- | *** 初期化 [#q2a9d75b] | + | - 設定しないと kubeadm が正常に動作しない |
- | - kubeadm init --pod-network-cidr=10.128.0.0/16 | + | #br |
| + | |
| + | *** 初期化 (kubeadm) [#w53f530b] |
| + | - kubeadm init --control-plane-endpoint=172.22.1.75 --pod-network-cidr=10.128.0.0/16 --service-cidr 10.128.0.0/16 |
| -- /var/lib/etcd/ | | -- /var/lib/etcd/ |
| -- /var/lib/kubelet | | -- /var/lib/kubelet |
| -- /etc/kubernetes | | -- /etc/kubernetes |
| -- /etc/cni/net.d | | -- /etc/cni/net.d |
| + | #br |
| - もう一度設定する場合は,kubeadm reset を行う | | - もう一度設定する場合は,kubeadm reset を行う |
| -- ネットワークインターフェイスを作った場合は,削除して置く.ex) ip link delete flannel.1 | | -- ネットワークインターフェイスを作った場合は,削除して置く.ex) ip link delete flannel.1 |
| -- 何かリセットできない.... 関連ファイル削除,関連プロセス皆殺し... | | -- 何かリセットできない.... 関連ファイル削除,関連プロセス皆殺し... |
| + | #br |
| + | - 初期化設定は他にも色々あるらしい. |
| + | -- minikube とか |
| #br | | #br |
| | | |
| | | |
| *** 仮想ネットワーク設定 CNI(calico) [#aa02daa6] | | *** 仮想ネットワーク設定 CNI(calico) [#aa02daa6] |
| + | **** 個人的推奨 [#e0c8ef81] |
| + | - https://docs.projectcalico.org/getting-started/kubernetes/quickstart |
| + | |
| + | kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml |
| + | wget https://docs.projectcalico.org/manifests/custom-resources.yaml |
| + | vi custom-resources.yaml (correct IP) |
| + | kubectl create -f custom-resources.yaml |
| + | |
| + | watch kubectl get pods -n calico-system |
| + | kubectl taint nodes --all node-role.kubernetes.io/master- |
| + | kubectl get nodes -o wide |
| + | |
| + | ***** Alt 1 [#a2d229df] |
| curl -L https://docs.projectcalico.org/manifests/calico.yaml | \ | | curl -L https://docs.projectcalico.org/manifests/calico.yaml | \ |
| sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i\ # ADD' | \ | | sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i\ # ADD' | \ |
| cat - > calico.yaml | | cat - > calico.yaml |
| kubectl apply -f calico.yaml | | kubectl apply -f calico.yaml |
- | - or | + | |
| + | watch kubectl get pods -n calico-system |
| + | kubectl taint nodes --all node-role.kubernetes.io/master- |
| + | kubectl get nodes -o wide |
| + | |
| + | ***** Alt 2 [#i1978737] |
| cat <<EOF > /etc/NetworkManager/conf.d/calico.conf | | cat <<EOF > /etc/NetworkManager/conf.d/calico.conf |
| [keyfile] | | [keyfile] |
| unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico | | unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico |
| EOF | | EOF |
- | kubectl apply -f https://docs.projectcalico.org/v3.15/manifests/calico.yaml | + | wget https://docs.projectcalico.org/v3.15/manifests/calico.yaml |
- | - or | + | vi calico.yaml (correct IP) |
| + | kubectl apply -f calico.yaml |
| | | |
- | - https://docs.projectcalico.org/getting-started/kubernetes/quickstart | |
- | kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml | |
- | wget https://docs.projectcalico.org/manifests/custom-resources.yaml | |
- | vi custom-resources.yaml | |
- | kubectl create -f custom-resources.yaml | |
| watch kubectl get pods -n calico-system | | watch kubectl get pods -n calico-system |
| kubectl taint nodes --all node-role.kubernetes.io/master- | | kubectl taint nodes --all node-role.kubernetes.io/master- |
| -- ex) kubeadm join 172.22.1.75:6443 --token nmtraf.wfzxuqzqti5unh9f --discovery-token-ca-cert-hash sha256:13d681e6bd6466503666bbb... | | -- ex) kubeadm join 172.22.1.75:6443 --token nmtraf.wfzxuqzqti5unh9f --discovery-token-ca-cert-hash sha256:13d681e6bd6466503666bbb... |
| #br | | #br |
- | ** helm [#daa60f7c] | + | ** Getting first [#o1bbd83d] |
- | curl https://raw.githubusercontent.com/helm/helm/HEAD/scripts/get-helm-3 | bash | + | - kubeadm はデフォルト状態では --type=LoadBalancer が使用できないという情報あり? |
| + | -- EXTERNA-IP が pending のままになる. |
| + | #br |
| + | |
| + | *** nginx [#f3a9efea] |
| + | **** Start [#x082d3f7] |
| + | kubectl run nginx --image=nginx:1.11.3 |
| + | kubectl get pod |
| + | kubectl expose pod nginx--external-ip=172.22.1.75 --port=80 |
| + | kubectl get service |
| + | |
| + | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
| + | kubernetes ClusterIP 10.128.0.1 <none> 443/TCP 15m |
| + | nginx ClusterIP 10.128.175.104 192.168.27.43 80/TCP 3s |
| + | - access to http://192.168.27.43 |
| + | - IP を自分のもの以外にしても,アクセスポイントはできる.ルーティングしていないから外部からはアクセス不可. |
| + | #br |
| + | |
| + | **** Stop [#k5b28d74] |
| + | kubectl delete service nginx |
| + | kubectl get service |
| + | kubectl delete pod nginx |
| + | kubectl get pod |
| + | #br |
| + | |
| + | **** LoadBalancer [#meaea643] |
| + | - IPを指定した場合,--type=LoadBalancer を付けると,そのまま通る. |
| + | - その場合,ポートは通常の 80番 と LoadBalancerが指定した番号,どちらも使用できる? |
| + | |
| + | # kubectl expose pod nginx --external-ip=172.22.1.75 --port=80 --type=LoadBalancer |
| + | # kubectl get service |
| + | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
| + | kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 80m |
| + | nginx LoadBalancer 10.107.28.138 172.22.1.75 80:32348/TCP 4s |
| + | - --external-ip を指定しない場合は,pending となる |
| + | |
| + | # kubectl expose pod nginx --port=80 --type=LoadBalancer --name=nginx2 |
| + | # kubectl get service |
| + | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
| + | kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 95m |
| + | nginx LoadBalancer 10.107.28.138 172.22.1.75 80:32348/TCP 14m |
| + | nginx2 LoadBalancer 10.107.150.209 <pending> 80:31353/TCP 7s |
| + | |
| + | **** 自分のIP以外でも指定可能 [#i0993ac6] |
| + | # kubectl expose pod nginx --port 80 --external-ip=192.168.27.44 --name=nginx2 |
| + | # kubectl get service |
| + | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
| + | kubernetes ClusterIP 10.128.0.1 <none> 443/TCP 67m |
| + | nginx ClusterIP 10.128.175.104 192.168.27.43 80/TCP 51m |
| + | nginx2 ClusterIP 10.128.175.124 192.168.27.44 80/TCP 4m53s |
| + | #br |