**ノード数:3 **
**ノードシステム:CentOS 7.2 / 7.3 **
Kubernetesクラスター環境はマスターノードと複数のワーカーノードで構成されており、役割が異なれば環境構成も異なります。
3つのノードのIPが次の場合:
1 k8s-Master:192.168.1.12 k8s-Worker1:192.168.1.23 k8s-Worker2:192.168.1.3
手順1:ホスト名を変更する、SELinuxを無効にする、ファイアウォールを設定する、またはファイアウォールを無効にする
1 # ホスト名を変更してSELinuxを無効にする
2~]# hostnamectl set-hostname 'k8s-master'3~]# exec bash
4~]# setenforce 05~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/sysconfig/selinux
6 # ファイアウォールを設定する
7[ root@k8s-master ~]# firewall-cmd --permanent --add-port=6443/tcp
8[ root@k8s-master ~]# firewall-cmd --permanent --add-port=2379-2380/tcp
9[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10250/tcp
10[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10251/tcp
11[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10252/tcp
12[ root@k8s-master ~]# firewall-cmd --permanent --add-port=10255/tcp
13[ root@k8s-master ~]# firewall-cmd --reload
14[ root@k8s-master ~]# echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables
15 # またはファイアウォールを無効にします
16[ root@k8s-master ~]#systemctl stop firewalld && systemctl disable firewalld
手順2:Kubernetesソースを構成する
公式の例** [** [** https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/ ](https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/)] **では、ソースのKubernetesバージョンが古すぎて、執筆時点ではまだバージョン1.5.2です。このバージョンにはダッシュボードアクセスがあり、表示できます。問題、公式の例を使用しないことをお勧めします。
新しいソースを使用する:
1 # 作成する/etc/yum.repos.d/kubernetes.リポジトリファイル
2[ kubernetes]3 name=Kubernetes
4 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
5 enabled=16 gpgcheck=17 repo_gpgcheck=18 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
9 https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
ステップ3:KubeadmとDockerをインストールする
インストールする前に、以前の古いバージョンを完全に削除する必要があります。詳細については、CenOS yumremoveコマンドを参照してください。
1[ root@k8s-master ~]# yum install kubeadm docker -y
KubectlおよびDockerサービスを開始して有効にします
1[ root@k8s-master ~]# systemctl restart docker && systemctl enable docker
2[ root@k8s-master ~]# systemctl restart kubelet && systemctl enable kubelet
ステップ4:Kubernetesマスターを初期化する
1[ root@k8s-master ~]# kubeadm init
スワップオンがサポートされていないというエラーが表示された場合は、コマンドswapoff-aを使用してスワップ機能をオフにします。
しばらく待ってから正常に表示されますので、他人の写真を借りてください
生成されたトークンを保存するように注意してください。後で使用します
ステップ5:クラスターを使用して、次のファイルが現在のユーザーのマスター上にあり、他のユーザーがこのファイルなしでクラスターにアクセスできないことを確認します
1[ root@k8s-master ~]# mkdir -p $HOME/.kube
2[ root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
3[ root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config
ステップ6:ポッドネットワークをクラスターにデプロイする
ポッドネットワークの概要:クラスターステータスを準備完了にしてkube-dnsステータスを実行するには、異なるホストのコンテナーが相互に通信するようにポッドネットワークを展開します。PODネットワークは、ワーカーノード間のオーバーレイネットワークです。
1[ root@k8s-master ~]# export kubever=$(kubectl version | base64 | tr -d '\n')2[root@k8s-master ~]# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"3 serviceaccount "weave-net" created
4 clusterrole "weave-net" created
5 clusterrolebinding "weave-net" created
6 daemonset "weave-net" created
手順7:ノードのステータスを確認する
1[ root@k8s-master ~]# kubectl get nodes
2 NAME STATUS AGE VERSION
3 k8s-master Ready 1h v1.7.54[root@k8s-master ~]# kubectl get pods --all-namespaces
5 NAMESPACE NAME READY STATUS RESTARTS AGE
6 kube-system etcd-k8s-master 1/1 Running 0 57m
7 kube-system kube-apiserver-k8s-master 1/1 Running 0 57m
8 kube-system kube-controller-manager-k8s-master 1/1 Running 0 57m
9 kube-system kube-dns-2425271678-044ww 3/3 Running 0 1h
10 kube-system kube-proxy-9h259 1/1 Running 0 1h
11 kube-system kube-scheduler-k8s-master 1/1 Running 0 57m
12 kube-system weave-net-hdjzd 2/2 Running 0 7m
手順1:SELinuxを無効にして、ファイアウォールを構成します[マスターノード環境の構成手順1を参照してください]
ステップ2:Kubernetesソースを構成する[マスターノード環境の構成ステップ2を参照]
ステップ3:KubeadmとDockerをインストールします[マスターノード環境の構成ステップ3を参照]。ワーカーノードはdockerサービスを再起動するだけで済みます。
ステップ4:ワーカーノードをマスターノードのクラスターに追加します。トークンは、マスターによって初期化されたばかりのトークンです。
[ root@worker-node1 ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.1:6443
ポート10250が占有されているというエラーが報告された場合は、次のコマンドを実行して関連するプロセスを見つけ、それを強制終了します。
1 sudo lsof -i :102502 sudo kill [pid]
/ etc / kubernets /の下のファイルがすでに存在するというエラーが報告された場合は、それを削除して、上記の結合コマンドを実行してください。
ステップ5:マスターノードでクラスターの状況を観察します
1[ root@k8s-master ~]# kubectl get nodes
2 NAME STATUS AGE VERSION
3 k8s-master Ready 2h v1.7.54 worker-node1 Ready 20m v1.7.55 worker-node2 Ready 18m v1.7.56[root@k8s-master ~]#
1 git clone https://github.com/kubernetes/dashboard
1 cd dashboard/src/deploy/recommend
2 kubectl apply -f kubernetes-dashboard.yaml
1 # このメソッドには、ダッシュボードが開始されたマシンからのみアクセスできることに注意してください
2 kubectl proxy
3 Starting to serve on 127.0.0.1:80014 #ローカルブラウザに次のアドレスを入力してアクセスします
5 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
1 # 最初にkubernetesを変更します-ダッシュボードサービス
2 $ kubectl -n kube-system edit service kubernetes-dashboard
3 # 中型:ClusterIPをタイプに変更します:NodePort、保存
4 # 外部ポート番号を表示する
5 $ kubectl -n kube-system get service kubernetes-dashboard
6 NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
7 kubernetes-dashboard 10.100.124.90<nodes>443:31707/TCP 21h
8 # マスターを使用する(ダッシュボードを起動したマシンですか)Ipおよび31707ポートにアクセスできます。httpの代わりにhttpsプロトコルを使用するように注意してください
トークン方式を使用
1 # トークンを表示
2[ root@k8s-master ~]# kubectl get secret -n kube-system
3 # 名前名を選択-controller-token
4[ root@k8s-master ~]#kubectl describe secret/namespace-controller-token-4vvdq -n kube-system
5 Name: namespace-controller-token-4vvdq
6 Namespace: kube-system
7 Labels:<none>8 Annotations: kubernetes.io/service-account.name=namespace-controller
9 kubernetes.io/service-account.uid=84ff3777-ce8f-11e7-a967-f8bc124d5cbc
1011 Type: kubernetes.io/service-account-token
1213 Data
14====15 ca.crt:1025 bytes
16 namespace:11 bytes
17 token: eyDF4E4HuKNy6y..........Nd5xQDoCT0Pru-FdAzw
取得したトークンをブラウザのログインインターフェイスにコピーし、[サインイン]をクリックしてログインします。トークンごとに権限が異なるため、表示できるコンテンツが異なります。この点については、まだ検討していません。
1 # クラスタノードのステータスを表示する
2 kubectl get nodes
3 # 詳細なノード情報を表示する
4 kubectl describe nodes
5 # クラスタサービスのステータスを表示する
6 kubectl get pods --all-namespaces
7 # クラスタが実行されているIPを確認します
8 kubectl cluster-info
9 # マスターのさまざまなトークンを表示する
10 kubectl get secret -n kube-system
11 # 特定のトークンを表示する
12 kubectl describe secret/[token name]-n kube-system
【1】How to Install Kubernetes (k8s) 1.7 on CentOS 7 / RHEL 7 . [https://www.linuxtechi.com/install-kubernetes-1-7-centos7-rhel7/]
【2】README [https://github.com/kubernetes/dashboard/README.md]
【3】Accessing Dashboard 1.7.x and above [https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard---1.7.X-and-above**] **
[4] Kubernetes Dashboard1.7.0の展開2つまたは3つのこと[ [** http://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/ ](http://tonybai.com/2017/09/26/some-notes-about-deploying-kubernetes-dashboard-1-7-0/)] **
【5】How to sign in the kubernetes dashboard? [https://stackoverflow.com/questions/46664104/how-to-sign-in-kubernetes-dashboard]
[6]ダッシュボードの概要[ [** https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#welcome-view ](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#welcome-view)] **
【7】Dashboard Authentication[https://kubernetes.io/docs/admin/authentication/]
Recommended Posts