linux(centos8):安裝kubernetes worker節點並加入到kubernetes集群(kubernetes 1.18.3)


一,安裝kubernetes前的准備工作

     安裝前的准備工作(master\worker都要進行)
     參見:
https://www.cnblogs.com/architectforest/p/13141743.html
     說明:以上這些准備工作需要在worker 節點機器上操作一遍
 
     kubernetes的master節點的安裝(需在master節點機器上操作):
     參見:
https://www.cnblogs.com/architectforest/p/13153053.html

 

    演示例子說明:機器共兩台:
     master節點機器: ip: 192.168.219.130, hostname: kubemaster
     woker 節點機器: ip: 192.168.219.136, hostname: node1
 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,在worker節點安裝kubernetes

1,新建kubernetes的repo
[root@node1 ~]# vi /etc/yum.repos.d/kubernetes.repo
內容:
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 
 
2,安裝三大件:
[root@node1 ~]# dnf install kubectl kubelet kubeadm
安裝完成后查看版本:
[root@node1 ~]# kubelet --version
Kubernetes v1.18.3
[root@node1 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", 
GitTreeState:"clean", BuildDate:"2020-05-20T12:49:29Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
[root@node1 ~]# kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40",
GitTreeState:"clean", BuildDate:"2020-05-20T12:52:00Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"} The connection to the server localhost:8080 was refused - did you specify the right host or port?

 

3,使kubelet服務可以自啟動
[root@node1 ~]# systemctl enable kubelet

 

三,把worker節點加入到cluster

1,得到join命令:要在master節點上執行:
[root@kubemaster ~]# kubeadm token create --print-join-command
W0618 15:07:30.243762  115106 configset.go:202] WARNING: kubeadm cannot validate component configs 
for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] kubeadm join 192.168.219.130:6443 --token cts238.khb7z4qwu1h6iens \
--discovery-token-ca-cert-hash sha256:c718e29ccb1883715489a3fdf53dd810a7764ad038c50fd62a2246344a4d9a73

 

worker節點的ip要加入到master節點的防火牆:
[root@kubemaster ~]# firewall-cmd --permanent --zone=trusted --add-source=192.168.219.136
success
[root@kubemaster ~]# firewall-cmd --reload
success

 

2,回到worker節點上執行:
[root@node1 ~]# kubeadm join 192.168.219.130:6443 --token cts238.khb7z4qwu1h6iens     \
--discovery-token-ca-cert-hash sha256:c718e29ccb1883715489a3fdf53dd810a7764ad038c50fd62a2246344a4d9a73
看到如下信息表示加入到cluster成功:
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
 
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

 

3,查看woker節點上新增加的image
[root@node1 ~]# docker images
REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
calico/node                                          v3.14.1             04a9b816c753        3 weeks ago         263MB
calico/pod2daemon-flexvol                            v3.14.1             7f93af2e7e11        3 weeks ago         112MB
calico/cni                                           v3.14.1             35a7136bc71a        3 weeks ago         225MB
registry.aliyuncs.com/google_containers/kube-proxy   v1.18.3             3439b7546f29        4 weeks ago         117MB
registry.aliyuncs.com/google_containers/pause        3.2                 80d28bedfe5d        4 months ago        683kB

 

4,備注:
error execution phase preflight: couldn't validate the identity of the API Server: 
could not find a JWS signature in the cluster-info ConfigMap for token ID “xgt21h"
這個錯誤提示表示token已過期
 

四,在master節點上查看node

[root@kubemaster ~]# kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
kubemaster   Ready    master   26h     v1.18.3
node1        Ready    <none>   2m57s   v1.18.3
已經看到了node1節點,說明加入到cluster成功

五,在master和node1節點上安裝一個nginx容器,並查看效果:

編輯rc文件
[root@kubemaster k8s]# vi nginx-rc.yaml
內容:
apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx-demo
spec:
  replicas: 2
  selector:
    app: nginx-demo
  template:
    metadata:
      labels:
        app: nginx-demo
    spec:
      containers:
      - name: nginx-demo
        image: nginx
        ports:
        - containerPort: 80
創建rc
[root@kubemaster k8s]# kubectl apply -f nginx-rc.yaml
replicationcontroller/nginx-demo created
 
查看效果:
[root@kubemaster k8s]# kubectl get pods -o wide
NAME               READY   STATUS    RESTARTS   AGE   IP               NODE    NOMINATED NODE   READINESS GATES
nginx-demo-b5vwt   1/1     Running   0          15m   172.16.141.16   node1   <none>           <none>
nginx-demo-j8n7d   1/1     Running   0          15m   172.16.141.13   node1   <none>           <none> 

用curl訪問(注意此處要到worker節點node1上訪問):

[root@node1 ~]# curl http://172.16.141.13
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

 

生成service文件

[root@kubemaster k8s]# vi nginx-svc.yaml

內容:

apiVersion: v1
kind: Service
metadata:
  name: nginx-demo
spec:
  type: NodePort
  ports:
   - port: 80
     nodePort: 30020
  selector:
    app: nginx-demo

創建service

[root@kubemaster k8s]# kubectl apply -f nginx-svc.yaml
service/nginx-demo created

從瀏覽器訪問服務:(說明:192.168.219.136是woker節點node1的ip)

六,查看kubernetes的版本

[root@kubemaster ~]# kubelet --version
Kubernetes v1.18.3
[root@kubemaster ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40",
GitTreeState:"clean", BuildDate:"2020-05-20T12:49:29Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64”}

 

七,查看linux的版本

[root@kubemaster ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@kubemaster ~]# uname -r
4.18.0-193.el8.x86_64

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM