Home
News
Forum
Wiki
Blog
Contents
Gallery
Movies
Downloads
About NSL
If you want to see English page, please click "English" Button at Left.
[
タイトル一覧
|
ページ一覧
|
新規
|
単語検索
|
最終更新
|
ヘルプ
]
Kubernetes
をテンプレートにして作成
[
トップ
]
[ ]
開始行:
** Kubernetes
- 別名 k8s
- Podによるクラスター構築環境
- 勉強中
- [[kubectl>./kubectl]]
- [[helm>./helm]]
- RANCHER https://qiita.com/suzukihi724/items/00b167c6f5f...
#br
- https://qiita.com/ishida0503/items/f3b62b02dec4f6fef42f
#br
**** ''Check !!!! 後でチェックする.''
- kubectl config set-context $(kubectl config current-con...
#br
** Install (CentOS8)
- オンプレ用
#br
*** swap を止める
# swapoff -a
- 再起動するとまた有効になるので,/etc/fstab でスワップ行...
#br
*** firewalld を止める.
#br
*** routing の適用設定
- /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
-sysctl --system
#br
*** 本体のインストール
**** K8sリポジトリ(RHEL7)
- /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kube...
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key...
exclude=kube*
- yum install -y ipvsadm iproute-tc
- yum install -y kubelet kubeadm kubectl --disableexclude...
#br
**** RHEL7 ではなくて,最新版を手動で入れる.
- yum install -y socat iproute-tc ipvsadm conntrack-tools
- バイナリのダウンロード
cd /usr/bin
RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.tx...
curl -L --remote-name-all https://storage.googleapis.com...
chmod a+rx /usr/bin/kube*
- /usr/lib/systemd/system/kubelet.service
[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=https://kubernetes.io/docs/
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10
[Install]
WantedBy=multi-user.target
- /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubecon...
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubel...
# This is a file that "kubeadm init" and "kubeadm join" ...
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of ...
# the .NodeRegistration.KubeletExtraArgs object in the c...
EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUB...
#br
*** cgroup の設定
- /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"
- 設定しないと kubeadm が正常に動作しない
#br
*** クラスター構築
**** kubeadm
- kubeadm init --pod-network-cidr=10.128.0.0/16 --service...
-- --control-plane-endpoint は内部 DNSのIP:Port を指定す...
- 作られるファイル
-- /var/lib/etcd/
-- /var/lib/kubelet
-- /etc/kubernetes
-- /etc/cni/net.d
#br
- もう一度設定する場合は,kubeadm reset を行う
-- ネットワークインターフェイスを作った場合は,削除して置...
-- 何かリセットできない.... 関連ファイル削除,関連プロセ...
#br
**** minikube
- 別のクラスター構築ツール.
#br
*** 環境設定
- mkdir ~/.kube
- cp /etc/kubernetes/admin.conf ~/.kube/config
- または
- export KUBECONFIG=/etc/kubernetes/admin.conf
#br
*** 仮想ネットワーク設定 CNI(calico)
**** Create a single-host Kubernetes cluster
- https://docs.projectcalico.org/getting-started/kubernet...
kubectl create -f https://docs.projectcalico.org/manifes...
wget https://docs.projectcalico.org/manifests/custom-res...
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
- /etc/NetworkManager/conf.d/calico.conf で以下の設定が...
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tu...
**** calicoctl
- 各ソフトのバージョンを合わせる.
- Install calicoctl as a binary on a single host
cd /usr/local/bin
curl -o calicoctl -O -L "https://github.com/projectcali...
chmod a+rx calicoctl
ln -s calicoctl kubectl-calico
-- kubectl calico -h でチェック
- Install calicoctl as a container on a single host
docker pull calico/ctl:v3.20.0
- Install calicoctl as a Kubernetes pod
kubectl apply -f https://docs.projectcalico.org/manifest...
- 確認
kubectl exec -ti -n kube-system calicoctl -- /calicoctl ...
#br
***** 他の方法
- その1
curl -L https://docs.projectcalico.org/manifests/calico....
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
cat - > calico.yaml
kubectl apply -f calico.yaml
watch kubectl get pods -n calico-system
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl get nodes -o wide
- その2
cat <<EOF > /etc/NetworkManager/conf.d/calico.conf
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tu...
EOF
wget https://docs.projectcalico.org/v3.15/manifests/cali...
vi calico.yaml (correct IP)
kubectl apply -f calico.yaml
watch kubectl get pods -n calico-system
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl get nodes -o wide
*** Worker node
- 初期化で kubeadm join コマンドを打つ.
-- ex) kubeadm join 172.22.1.75:6443 --token nmtraf.wfzxu...
- マスタの /etc/kubernetes/admin.conf をコピーすると,kub...
#br
*** MetalLB Load Balancer
- https://zaki-hmkc.hatenablog.com/entry/2020/07/10/235944
kubectl edit configmap -n kube-system kube-proxy
kubectl apply -f https://raw.githubusercontent.com/metal...
kubectl apply -f https://raw.githubusercontent.com/metal...
kubectl get ns
kubectl get pod -n metallb-system
kubectl create secret generic -n metallb-system memberli...
vi l2-configuration.yaml
kubectl apply -f l2-configuration.yaml
kubectl get service
- [[l2-configuration.yaml>./l2-configuration.yaml]]
#br
** Getting first
- kubeadm はデフォルト状態では --type=LoadBalancer が使用...
-- EXTERNA-IP が pending のままになる.
#br
*** nginx
- https://qiita.com/suzukihi724/items/241f7241d297a2d4a55c
#br
**** MetalLB を使用した場合
kubectl run nginx --image=nginx:1.11.3
kubectl get pod
kubectl expose pod nginx --port=80 --type=LoadBalancer ...
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.128.0.1 <none> ...
nginx LoadBalancer 10.128.44.222 172.22.1.70 ...
- 172.22.1.70:80 へのアクセスで Webに接続可
#br
*** OLD: nginx
**** Start
kubectl run nginx --image=nginx:1.11.3
kubectl get pod
kubectl expose pod nginx --external-ip=172.22.1.75 --po...
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.128.0.1 <none> ...
nginx ClusterIP 10.128.175.104 192.168.27.43 ...
- access to http://192.168.27.43
- IP を自分のもの以外にしても,アクセスポイントはできる....
#br
**** Stop
kubectl delete service nginx
kubectl get service
kubectl delete pod nginx
kubectl get pod
#br
**** LoadBalancer
- IPを指定した場合,--type=LoadBalancer を付けると,その...
- その場合,ポートは通常の 80番 と LoadBalancerが指定した...
# kubectl expose pod nginx --external-ip=172.22.1.75 --...
# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.96.0.1 <none> ...
nginx LoadBalancer 10.107.28.138 172.22.1.75 ...
- --external-ip を指定しない場合は,pending となる
# kubectl expose pod nginx --port=80 --type=LoadBalance...
# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP...
kubernetes ClusterIP 10.96.0.1 <none> ...
nginx LoadBalancer 10.107.28.138 172.22.1.75...
nginx2 LoadBalancer 10.107.150.209 <pending> ...
- pending 状態のサービスには,kubectl edit service -n ......
spec:
allocateLoadBalancerNodePorts: true
clusterIP: 10.128.90.50
clusterIPs:
- 10.128.90.50
externalIPs:
- 192.168.27.43
externalTrafficPolicy: Cluster
**** 自分のIP以外でも指定可能
# kubectl expose pod nginx --port 80 --external-ip=192.1...
# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.128.0.1 <none> ...
nginx ClusterIP 10.128.175.104 192.168.27.43 ...
nginx2 ClusterIP 10.128.175.124 192.168.27.44 ...
#br
*** JupyterHub
- [[JupyterHub>./JupyterHub]]
#br
終了行:
** Kubernetes
- 別名 k8s
- Podによるクラスター構築環境
- 勉強中
- [[kubectl>./kubectl]]
- [[helm>./helm]]
- RANCHER https://qiita.com/suzukihi724/items/00b167c6f5f...
#br
- https://qiita.com/ishida0503/items/f3b62b02dec4f6fef42f
#br
**** ''Check !!!! 後でチェックする.''
- kubectl config set-context $(kubectl config current-con...
#br
** Install (CentOS8)
- オンプレ用
#br
*** swap を止める
# swapoff -a
- 再起動するとまた有効になるので,/etc/fstab でスワップ行...
#br
*** firewalld を止める.
#br
*** routing の適用設定
- /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
-sysctl --system
#br
*** 本体のインストール
**** K8sリポジトリ(RHEL7)
- /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kube...
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key...
exclude=kube*
- yum install -y ipvsadm iproute-tc
- yum install -y kubelet kubeadm kubectl --disableexclude...
#br
**** RHEL7 ではなくて,最新版を手動で入れる.
- yum install -y socat iproute-tc ipvsadm conntrack-tools
- バイナリのダウンロード
cd /usr/bin
RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.tx...
curl -L --remote-name-all https://storage.googleapis.com...
chmod a+rx /usr/bin/kube*
- /usr/lib/systemd/system/kubelet.service
[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=https://kubernetes.io/docs/
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10
[Install]
WantedBy=multi-user.target
- /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubecon...
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubel...
# This is a file that "kubeadm init" and "kubeadm join" ...
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of ...
# the .NodeRegistration.KubeletExtraArgs object in the c...
EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUB...
#br
*** cgroup の設定
- /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"
- 設定しないと kubeadm が正常に動作しない
#br
*** クラスター構築
**** kubeadm
- kubeadm init --pod-network-cidr=10.128.0.0/16 --service...
-- --control-plane-endpoint は内部 DNSのIP:Port を指定す...
- 作られるファイル
-- /var/lib/etcd/
-- /var/lib/kubelet
-- /etc/kubernetes
-- /etc/cni/net.d
#br
- もう一度設定する場合は,kubeadm reset を行う
-- ネットワークインターフェイスを作った場合は,削除して置...
-- 何かリセットできない.... 関連ファイル削除,関連プロセ...
#br
**** minikube
- 別のクラスター構築ツール.
#br
*** 環境設定
- mkdir ~/.kube
- cp /etc/kubernetes/admin.conf ~/.kube/config
- または
- export KUBECONFIG=/etc/kubernetes/admin.conf
#br
*** 仮想ネットワーク設定 CNI(calico)
**** Create a single-host Kubernetes cluster
- https://docs.projectcalico.org/getting-started/kubernet...
kubectl create -f https://docs.projectcalico.org/manifes...
wget https://docs.projectcalico.org/manifests/custom-res...
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
- /etc/NetworkManager/conf.d/calico.conf で以下の設定が...
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tu...
**** calicoctl
- 各ソフトのバージョンを合わせる.
- Install calicoctl as a binary on a single host
cd /usr/local/bin
curl -o calicoctl -O -L "https://github.com/projectcali...
chmod a+rx calicoctl
ln -s calicoctl kubectl-calico
-- kubectl calico -h でチェック
- Install calicoctl as a container on a single host
docker pull calico/ctl:v3.20.0
- Install calicoctl as a Kubernetes pod
kubectl apply -f https://docs.projectcalico.org/manifest...
- 確認
kubectl exec -ti -n kube-system calicoctl -- /calicoctl ...
#br
***** 他の方法
- その1
curl -L https://docs.projectcalico.org/manifests/calico....
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
sed '/ - name: CALICO_DISABLE_FILE_LOGGING/i...
cat - > calico.yaml
kubectl apply -f calico.yaml
watch kubectl get pods -n calico-system
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl get nodes -o wide
- その2
cat <<EOF > /etc/NetworkManager/conf.d/calico.conf
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tu...
EOF
wget https://docs.projectcalico.org/v3.15/manifests/cali...
vi calico.yaml (correct IP)
kubectl apply -f calico.yaml
watch kubectl get pods -n calico-system
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl get nodes -o wide
*** Worker node
- 初期化で kubeadm join コマンドを打つ.
-- ex) kubeadm join 172.22.1.75:6443 --token nmtraf.wfzxu...
- マスタの /etc/kubernetes/admin.conf をコピーすると,kub...
#br
*** MetalLB Load Balancer
- https://zaki-hmkc.hatenablog.com/entry/2020/07/10/235944
kubectl edit configmap -n kube-system kube-proxy
kubectl apply -f https://raw.githubusercontent.com/metal...
kubectl apply -f https://raw.githubusercontent.com/metal...
kubectl get ns
kubectl get pod -n metallb-system
kubectl create secret generic -n metallb-system memberli...
vi l2-configuration.yaml
kubectl apply -f l2-configuration.yaml
kubectl get service
- [[l2-configuration.yaml>./l2-configuration.yaml]]
#br
** Getting first
- kubeadm はデフォルト状態では --type=LoadBalancer が使用...
-- EXTERNA-IP が pending のままになる.
#br
*** nginx
- https://qiita.com/suzukihi724/items/241f7241d297a2d4a55c
#br
**** MetalLB を使用した場合
kubectl run nginx --image=nginx:1.11.3
kubectl get pod
kubectl expose pod nginx --port=80 --type=LoadBalancer ...
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.128.0.1 <none> ...
nginx LoadBalancer 10.128.44.222 172.22.1.70 ...
- 172.22.1.70:80 へのアクセスで Webに接続可
#br
*** OLD: nginx
**** Start
kubectl run nginx --image=nginx:1.11.3
kubectl get pod
kubectl expose pod nginx --external-ip=172.22.1.75 --po...
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.128.0.1 <none> ...
nginx ClusterIP 10.128.175.104 192.168.27.43 ...
- access to http://192.168.27.43
- IP を自分のもの以外にしても,アクセスポイントはできる....
#br
**** Stop
kubectl delete service nginx
kubectl get service
kubectl delete pod nginx
kubectl get pod
#br
**** LoadBalancer
- IPを指定した場合,--type=LoadBalancer を付けると,その...
- その場合,ポートは通常の 80番 と LoadBalancerが指定した...
# kubectl expose pod nginx --external-ip=172.22.1.75 --...
# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.96.0.1 <none> ...
nginx LoadBalancer 10.107.28.138 172.22.1.75 ...
- --external-ip を指定しない場合は,pending となる
# kubectl expose pod nginx --port=80 --type=LoadBalance...
# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP...
kubernetes ClusterIP 10.96.0.1 <none> ...
nginx LoadBalancer 10.107.28.138 172.22.1.75...
nginx2 LoadBalancer 10.107.150.209 <pending> ...
- pending 状態のサービスには,kubectl edit service -n ......
spec:
allocateLoadBalancerNodePorts: true
clusterIP: 10.128.90.50
clusterIPs:
- 10.128.90.50
externalIPs:
- 192.168.27.43
externalTrafficPolicy: Cluster
**** 自分のIP以外でも指定可能
# kubectl expose pod nginx --port 80 --external-ip=192.1...
# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP ...
kubernetes ClusterIP 10.128.0.1 <none> ...
nginx ClusterIP 10.128.175.104 192.168.27.43 ...
nginx2 ClusterIP 10.128.175.124 192.168.27.44 ...
#br
*** JupyterHub
- [[JupyterHub>./JupyterHub]]
#br
ページ名:
サイト内 検索
高度な検索
ログイン
ユーザー名:
パスワード:
パスワード紛失
新規登録
サブ メニュー
新着情報
Books
リンク
サイトマップ
e-Learning
TUIS 認証局証明書
ミニカレンダー
2025年 5月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<今日>
オンライン状況
108 人のユーザが現在オンラインです。 (5 人のユーザが xpwiki を参照しています。)
登録ユーザ: 0
ゲスト: 108
もっと...
アクセスカウンタ
今日 :
昨日 :
総計 :
Powered by XOOPS Cube 2.1© 2001-2006
XOOPS Cube Project
Design by
XoopsDesign.com