GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOSでkubeadmを使用してKubernetes1.5をセットアップする方法

Kubernetesの新しいバージョンがリリースされたので、ここに別のKubernetesの記事があります。 Kubernetes 1.5では、kubeadmはまだアルファ版であり、ロードバランサーをサポートしていないため、本番環境での使用はお勧めしません。有名なオンラインソックスショップをデモとしてインストールし、nodeportを使用してサービスを公開します。

すべてのノードにKubernetes1.5をインストールする

CentOSのkubernetesリポジトリを追加しましょう:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name =Kubernetesbaseurl =http://yum.kubernetes.io/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0EOF

リポジトリを追加した後、KUbernetesでうまく機能しないため、SElinuxをオフにする必要があります。一時的にオフにするには、次のように入力します

setenforce 0

再起動後も存続させるには、nanoを使用してSElinux構成ファイルを次のように編集します。

nano /etc/selinux/config

SELINUX回線がpermissiveまたはdisabledに設定されていることを確認してください:

SELINUX=disabled

ファイルを保存すると、必要なパッケージのインストールを続行できます。

yum install docker kubelet kubeadm kubectl kubernetes-cni

起動時にDockerの自動起動を有効にするには、次のコマンドを実行します。

systemctl enable docker

そして今すぐ開始するには、次を実行します。

systemctl start docker

次に、kubeletについても同じことをしましょう

systemctl enable kubelet

systemctl start kubelet

クラスターのセットアップ

最初に行う必要があるのは、新しいクラスターのマスターを決定することです。上記のようにすべてのノードが設定されている場合は、次に、指定されたマスターノードを次のコマンドで実行します。

kubeadm init

このコマンドを2回実行することはできないことに注意してください。2回目に実行する前に、クラスターを破棄する必要があります。出力は次のようになります:

[root@centos-01 kubernetes]# kubeadm init
[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: firewalld is active, please ensure ports [6443 9898 10250] are open or your cluster may not function correctly
[init] Using Kubernetes version: v1.5.1
[tokens] Generated token: "9a6b48.b4011ffeeb237381"
[certificates] Generated Certificate Authority key and certificate.
[certificates] Generated API Server key and certificate
[certificates] Generated Service Account signing keys
[certificates] Created keys and certificates in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 105.821991 seconds
[apiclient] Waiting for at least one node to register and become ready
[apiclient] First node is ready after 4.505809 seconds
[apiclient] Creating a test deployment
[apiclient] Test deployment succeeded
[token-discovery] Created the kube-discovery deployment, waiting for it to become ready
[token-discovery] kube-discovery is ready after 68.003359 seconds
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node:

kubeadm join --token=9a6b48.b4011ffeeb237381 45.55.128.42

ポッドネットワークのインストールとクラスターへのノードの追加

上記の部分では、クラスターマスターを初期化し、ノードの追加に使用するトークンを使用して最後の行のコマンドを取得しました。ただし、その前に、ポッドネットワークをインストールする必要があります。

kubectl apply -f https://git.io/weave-kube

ポッドネットワークを使用する方法はたくさんありますが、上記の方法がおそらく最も簡単です。 Linux上のネットワークコンテナの標準として提案されているContainerNetworkInterfaceまたはCNIを使用します。

次に、すべてのノードでこのコマンドを実行して、クラスターにノードを追加できます

kubeadm join --token=bb6fc2.be0345f5b02a32a0 45.55.128.42

トークンはサニタイズされているため、クラスターにノードを追加できませんでした。次に、ポッドをノードだけでなくマスターでも実行できるようにします。

kubectl taint nodes --all dedicated-

この後、ノードをチェックして、すべてがオンラインであるかどうかを確認できます。

kubectl get nodes

マイクロサービスのインストール例

クラスターのテストに使用する簡単なマイクロサービスの例があります。靴下のオンラインショップです。

まず、名前空間の靴下屋を追加します

kubectl create namespace sock-shop

そして、サービスを作成します

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

この後、コンテナが作成されるまでしばらく待つ必要があります。その後、新しいサイトにアクセスしてみます。それを訪問するために、私たちはその住所を知らなければなりません。サービスを調べてみましょう

kubectl describe svc front-end -n sock-shop

これに似た出力が得られます

Name: front-end
Namespace: sock-shop
Labels: name=front-end
Selector: name=front-end
Type: NodePort
IP: 10.104.11.202
Port: <unset> 80/TCP
NodePort: <unset> 31500/TCP
Endpoints: 10.32.0.4:8079
Session Affinity: None
No events.

サービスが使用しているポート番号が必要なため、太線が強調表示されています。ポート番号とノードの1つのアドレスを組み合わせる必要があります。そうすれば、サイトにアクセスできます。

結論

これで、CentOS7でkubeadmを使用してKubernetes1.5クラスターを正常に設定できました。この場合は3ノードクラスターですが、kubeadmを使用すると、新しいノードを追加してクラスターを簡単にスケーリングできます。トークンとパブリックIPを使用すると、誰でもクラスターにノードを追加できるため、トークンは必ずプライベートにしてください。これでこの記事は終わりです。お読みいただきありがとうございます。良い一日をお過ごしください。


Cent OS
  1. CentOS 8のインストール方法(スクリーンショット付き)

  2. CentOSおよびRedHatでMySQLを使用してPure-FTPDをセットアップする方法

  3. CentOS8でSSHキーを設定する方法

  1. PrometheusでKubernetesを監視する方法

  2. SCLを使用してCentOS7にPython3をインストールする方法

  3. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法

  1. CentOS8でVSFTPDを使用してFTPサーバーをセットアップする方法

  2. CentOS 8にMinikubeを使用してKubernetes(k8s)をインストールする方法

  3. Kubeadmを使用してHAでKubernetes(k8s)クラスターをセットアップする方法