搭建k8s集群遇到的问题

部署CalicoNode(所有节点)报错:

Oct 10 21:04:55 smallsoup docker[76907]: bird: BGP: Unexpected connect from unknown address 192.168.1.104 (port 58153)
Oct 10 21:04:59 smallsoup docker[76907]: bird: BGP: Unexpected connect from unknown address 192.168.1.104 (port 40415)
Oct 10 21:05:00 smallsoup docker[76907]: 2018-10-10 13:05:00.213 [INFO][87] int_dataplane.go 690: Applying dataplane updates
Oct 10 21:05:00 smallsoup docker[76907]: 2018-10-10 13:05:00.213 [INFO][87] ipsets.go 224: Asked to resync with the dataplane on next update. family="inet"
Oct 10 21:05:00 smallsoup docker[76907]: 2018-10-10 13:05:00.213 [INFO][87] ipsets.go 255: Resyncing ipsets with dataplane. family="inet"
Oct 10 21:05:00 smallsoup docker[76907]: 2018-10-10 13:05:00.218 [INFO][87] ipsets.go 297: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=4.542824ms
Oct 10 21:05:00 smallsoup docker[76907]: 2018-10-10 13:05:00.218 [INFO][87] int_dataplane.go 705: Finished applying updates to dataplane. msecToApply=5.302726

查看节点运行情况,

$ calicoctl node status
Calico process is running.

IPv4 BGP status
+---------------+-------------------+-------+----------+--------------------------------+
| PEER ADDRESS  |     PEER TYPE     | STATE |  SINCE   |              INFO              |
+---------------+-------------------+-------+----------+--------------------------------+
| 192.168.1.103 | node-to-node mesh | start | 00:01:41 | Active Socket: Connection      |
|               |                   |       |          | closed                         |
+---------------+-------------------+-------+----------+--------------------------------+

IPv6 BGP status
No IPv6 peers found.

节点信息如下:

系统类型        IP地址       节点角色     CPU     Memory      Hostname
Centos7.2   192.168.1.103   master        1       2G         server01
Centos7.2   192.168.1.102   worker        1       2G         server02
Centos7.2   192.168.1.104   worker        1       2G         server03

是因为/lib/systemd/system/kube-calico.service没ExecStart后面没加--IP参数,值为当前节点IP,应该是这样:

[Unit]
Description=calico node
After=docker.service
Requires=docker.service

[Service]
User=root
PermissionsStartOnly=true
ExecStart=/usr/bin/docker run --net=host --privileged --name=calico-node \
  -e ETCD_ENDPOINTS=http://192.168.1.103:2379 \
  -e CALICO_LIBNETWORK_ENABLED=true \
  -e CALICO_NETWORKING_BACKEND=bird \
  -e CALICO_DISABLE_FILE_LOGGING=true \
  -e CALICO_IPV4POOL_CIDR=172.20.0.0/16 \
  -e CALICO_IPV4POOL_IPIP=off \
  -e FELIX_DEFAULTENDPOINTTOHOSTACTION=ACCEPT \
  -e FELIX_IPV6SUPPORT=false \
  -e FELIX_LOGSEVERITYSCREEN=info \
  -e FELIX_IPINIPMTU=1440 \
  -e FELIX_HEALTHENABLED=true \
  -e IP=192.168.1.103 \
  -v /var/run/calico:/var/run/calico \
  -v /lib/modules:/lib/modules \
  -v /run/docker/plugins:/run/docker/plugins \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/log/calico:/var/log/calico \
  registry.cn-hangzhou.aliyuncs.com/imooc/calico-node:v2.6.2
ExecStop=/usr/bin/docker rm -f calico-node
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

结果:

[root@Server02 kubernetes-starter]# calicoctl node status
Calico process is running.

IPv4 BGP status
+---------------+-------------------+-------+----------+-------------+
| PEER ADDRESS  |     PEER TYPE     | STATE |  SINCE   |    INFO     |
+---------------+-------------------+-------+----------+-------------+
| 192.168.1.102 | node-to-node mesh | up    | 13:05:42 | Established |
| 192.168.1.103 | node-to-node mesh | up    | 13:10:56 | Established |
+---------------+-------------------+-------+----------+-------------+

IPv6 BGP status
No IPv6 peers found.

参考:Kubernetes集成Calico + 遇到的问题

k8s集群搭建好以后,小试牛刀:

[root@smallsoup net.d]# kubectl run kubernetes-bootcamp --image=jocatalin/kubernetes-bootcamp:v1 --port=8080
deployment "kubernetes-bootcamp" created
[root@smallsoup net.d]# 
[root@smallsoup net.d]# kubectl get deployments

NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   1         1         1            1           4m
[root@smallsoup net.d]# 
[root@smallsoup net.d]# 
[root@smallsoup net.d]# kubectl get pods
NAME                                   READY     STATUS    RESTARTS   AGE
kubernetes-bootcamp-6b7849c495-vrcc2   1/1       Running   0          6m
[root@smallsoup net.d]# kubectl get pods -o wide 
NAME                                   READY     STATUS    RESTARTS   AGE       IP               NODE
kubernetes-bootcamp-6b7849c495-vrcc2   1/1       Running   0          6m        172.20.173.192   192.168.1.103
[root@smallsoup net.d]# docker ps -a
CONTAINER ID        IMAGE                                                        COMMAND                  CREATED             STATUS              PORTS               NAMES
56165c91587d        jocatalin/kubernetes-bootcamp                                "/bin/sh -c 'node se…"   5 minutes ago       Up 5 minutes                            k8s_kubernetes-bootcamp_kubernetes-bootcamp-6b7849c495-vrcc2_default_878e7b6f-cc92-11e8-bd34-000c295db389_0
73ece5042794        registry.cn-hangzhou.aliyuncs.com/imooc/pause-amd64:3.0      "/pause"                 7 minutes ago       Up 7 minutes                            k8s_POD_kubernetes-bootcamp-6b7849c495-vrcc2_default_878e7b6f-cc92-11e8-bd34-000c295db389_0
a9b502648a37        registry.cn-hangzhou.aliyuncs.com/imooc/calico-node:v2.6.2   "start_runit"            41 minutes ago      Up 40 minutes                           calico-node
[root@smallsoup net.d]#
[root@smallsoup net.d]# kubectl proxy
Starting to serve on 127.0.0.1:8001

[root@smallsoup ~]# curl http://127.0.0.1:8001/api/v1/proxy/namespaces/default/pods/kubernetes-bootcamp-6b7849c495-vrcc2/
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6b7849c495-vrcc2 | v=1
[root@smallsoup ~]#

[root@smallsoup ~]# kubectl scale deploy kubernetes-bootcamp --replicas=4
deployment "kubernetes-bootcamp" scaled
[root@smallsoup ~]# kubectl get pods -o wide
NAME                                   READY     STATUS    RESTARTS   AGE       IP               NODE
kubernetes-bootcamp-6b7849c495-mpp5k   1/1       Running   0          4m        172.20.173.193   192.168.1.103
kubernetes-bootcamp-6b7849c495-nbbk5   1/1       Running   0          4m        172.20.0.192     192.168.1.102
kubernetes-bootcamp-6b7849c495-tgscr   1/1       Running   0          4m        172.20.0.128     192.168.1.102
kubernetes-bootcamp-6b7849c495-vrcc2   1/1       Running   0          32m       172.20.173.192   192.168.1.103
[root@smallsoup ~]# 
[root@smallsoup ~]# kubectl get deploy 
NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   4         4         4            4           32m

[root@smallsoup ~]# kubectl scale deploy kubernetes-bootcamp --replicas=2
deployment "kubernetes-bootcamp" scaled
[root@smallsoup ~]# kubectl get pods -o wide
NAME                                   READY     STATUS        RESTARTS   AGE       IP               NODE
kubernetes-bootcamp-6b7849c495-mpp5k   1/1       Running       0          5m        172.20.173.193   192.168.1.103
kubernetes-bootcamp-6b7849c495-nbbk5   1/1       Terminating   0          5m        172.20.0.192     192.168.1.102
kubernetes-bootcamp-6b7849c495-tgscr   1/1       Terminating   0          5m        172.20.0.128     192.168.1.102
kubernetes-bootcamp-6b7849c495-vrcc2   1/1       Running       0          34m       172.20.173.192   192.168.1.103
[root@smallsoup ~]#

[root@smallsoup ~]# kubectl describe deploy 
Name:                   kubernetes-bootcamp
Namespace:              default
CreationTimestamp:      Wed, 10 Oct 2018 21:43:52 +0800
Labels:                 run=kubernetes-bootcamp
Annotations:            deployment.kubernetes.io/revision=1
Selector:               run=kubernetes-bootcamp
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  1 max unavailable, 1 max surge
Pod Template:
  Labels:  run=kubernetes-bootcamp
  Containers:
   kubernetes-bootcamp:
    Image:        jocatalin/kubernetes-bootcamp:v1
    Port:         8080/TCP
    Environment:  
    Mounts:       
  Volumes:        
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  
NewReplicaSet:   kubernetes-bootcamp-6b7849c495 (2/2 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  38m   deployment-controller  Scaled up replica set kubernetes-bootcamp-6b7849c495 to 1
  Normal  ScalingReplicaSet  10m   deployment-controller  Scaled up replica set kubernetes-bootcamp-6b7849c495 to 4
  Normal  ScalingReplicaSet  4m    deployment-controller  Scaled down replica set kubernetes-bootcamp-6b7849c495 to 2
[root@smallsoup ~]# 
[root@smallsoup ~]# kubectl set image deploy kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
deployment "kubernetes-bootcamp" image updated
[root@smallsoup ~]# kubectl rollout status deploy kubernetes-bootcamp
Waiting for rollout to finish: 1 old replicas are pending termination...
Waiting for rollout to finish: 1 old replicas are pending termination...
Waiting for rollout to finish: 1 old replicas are pending termination...
Waiting for rollout to finish: 1 of 2 updated replicas are available...
^C[root@smallsoup ~]# 
[root@smallsoup ~]# kubectl rollout status deploy kubernetes-bootcamp
Waiting for rollout to finish: 1 of 2 updated replicas are available...
[root@smallsoup ~]# kubectl  describe deploy 
Name:                   kubernetes-bootcamp
Namespace:              default
CreationTimestamp:      Wed, 10 Oct 2018 21:43:52 +0800
Labels:                 run=kubernetes-bootcamp
Annotations:            deployment.kubernetes.io/revision=2
Selector:               run=kubernetes-bootcamp
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  1 max unavailable, 1 max surge
Pod Template:
  Labels:  run=kubernetes-bootcamp
  Containers:
   kubernetes-bootcamp:
    Image:        jocatalin/kubernetes-bootcamp:v2
    Port:         8080/TCP
    Environment:  
    Mounts:       
  Volumes:        
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  
NewReplicaSet:   kubernetes-bootcamp-7689dc585d (2/2 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  41m   deployment-controller  Scaled up replica set kubernetes-bootcamp-6b7849c495 to 1
  Normal  ScalingReplicaSet  13m   deployment-controller  Scaled up replica set kubernetes-bootcamp-6b7849c495 to 4
  Normal  ScalingReplicaSet  7m    deployment-controller  Scaled down replica set kubernetes-bootcamp-6b7849c495 to 2
  Normal  ScalingReplicaSet  2m    deployment-controller  Scaled up replica set kubernetes-bootcamp-7689dc585d to 1
  Normal  ScalingReplicaSet  2m    deployment-controller  Scaled down replica set kubernetes-bootcamp-6b7849c495 to 1
  Normal  ScalingReplicaSet  2m    deployment-controller  Scaled up replica set kubernetes-bootcamp-7689dc585d to 2
  Normal  ScalingReplicaSet  1m    deployment-controller  Scaled down replica set kubernetes-bootcamp-6b7849c495 to 0
[root@smallsoup ~]# 
[root@smallsoup ~]# kubectl rollout status deploy kubernetes-bootcamp
deployment "kubernetes-bootcamp" successfully rolled out
[root@smallsoup ~]#

#如果一不小心版本写错了,可以回滚:
[root@smallsoup ~]# kubectl set image deploy kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v20deployment "kubernetes-bootcamp" image updated
[root@smallsoup ~]# 
[root@smallsoup ~]# kubectl rollout status deploy kubernetes-bootcamp
Waiting for rollout to finish: 1 old replicas are pending termination...
^C[root@smallsoup ~]# kubectl rollout undo deploy kubernetes-bootcamp
deployment "kubernetes-bootcamp" 
[root@smallsoup ~]#

[root@smallsoup services]# vim nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
   - name: nginx
     image: nginx:1.7.9
     ports:
     - containerPort: 80

[root@smallsoup services]# kubectl create -f nginx-pod.yaml 
pod "nginx" created
[root@smallsoup services]# kubectl get pods
NAME                                   READY     STATUS              RESTARTS   AGE
kubernetes-bootcamp-7689dc585d-45w6d   1/1       Running             0          5m
kubernetes-bootcamp-7689dc585d-zxxdf   1/1       Running             0          10m
nginx                                  0/1       ContainerCreating   0          5s

[root@smallsoup services]# kubectl get deploy
NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   2         2         2            2           49m

[root@smallsoup services]# kubectl get pods
NAME                                   READY     STATUS    RESTARTS   AGE
kubernetes-bootcamp-7689dc585d-45w6d   1/1       Running   0          12m
kubernetes-bootcamp-7689dc585d-zxxdf   1/1       Running   0          16m
nginx                                  1/1       Running   0          6m

[root@smallsoup net.d]# kubectl proxy
Starting to serve on 127.0.0.1:8001

[root@smallsoup services]# curl http://127.0.0.1:8001/api/v1/proxy/namespaces/default/pods/nginx/



Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

创建deployment: [root@smallsoup services]# vim nginx-deployments.yaml apiVersion: apps/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 [root@smallsoup services]# kubectl create -f nginx-deployments.yaml deployment "nginx-deployment" created [root@smallsoup services]# kubectl get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kubernetes-bootcamp 2 2 2 2 1h nginx-deployment 2 2 2 2 3m [root@smallsoup services]# kubectl get pods -owide NAME READY STATUS RESTARTS AGE IP NODE kubernetes-bootcamp-7689dc585d-45w6d 1/1 Running 0 23m 172.20.173.197 192.168.1.103 kubernetes-bootcamp-7689dc585d-zxxdf 1/1 Running 0 27m 172.20.0.129 192.168.1.102 nginx 1/1 Running 0 17m 172.20.0.132 192.168.1.102 nginx-deployment-6c54bd5869-94bgh 1/1 Running 0 3m 172.20.0.133 192.168.1.102 nginx-deployment-6c54bd5869-js2r8 1/1 Running 0 3m 172.20.173.198 192.168.1.103 [root@smallsoup services]# kubectl get pods -o wide -l app=nginx NAME READY STATUS RESTARTS AGE IP NODE nginx-deployment-6c54bd5869-94bgh 1/1 Running 0 4m 172.20.0.133 192.168.1.102 nginx-deployment-6c54bd5869-js2r8 1/1 Running 0 4m 172.20.173.198 192.168.1.103 #Services [root@smallsoup kubernetes-starter]# kubectl expose deploy kubernetes-bootcamp --type="NodePort" --target-port=8080 --port=80 service "kubernetes-bootcamp" exposed [root@smallsoup kubernetes-starter]# kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.68.0.1 443/TCP 15h kubernetes-bootcamp NodePort 10.68.194.69 80:27543/TCP 16s [root@smallsoup kubernetes-starter]# [root@smallsoup kubernetes-starter]# netstat -ntlp | grep 27543 tcp6 0 0 :::27543 :::* LISTEN 90067/kube-proxy [root@smallsoup kubernetes-starter]# curl 192.168.1.103:27543 Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-7689dc585d-45w6d | v=2 [root@smallsoup kubernetes-starter]# curl 192.168.1.102:27543 Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-7689dc585d-45w6d | v=2 [root@smallsoup kubernetes-starter]# curl 192.168.1.104:27543 curl: (7) Failed connect to 192.168.1.104:27543; Connection refused [root@smallsoup kubernetes-starter]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE kubernetes-bootcamp-7689dc585d-45w6d 1/1 Running 0 52m 172.20.173.197 192.168.1.103 kubernetes-bootcamp-7689dc585d-zxxdf 1/1 Running 0 57m 172.20.0.129 192.168.1.102 nginx 1/1 Running 0 47m 172.20.0.132 192.168.1.102 nginx-deployment-6c54bd5869-94bgh 1/1 Running 0 33m 172.20.0.133 192.168.1.102 nginx-deployment-6c54bd5869-js2r8 1/1 Running 0 33m 172.20.173.198 192.168.1.103 [root@smallsoup kubernetes-starter]# docker ps -a|grep bootcamp 230582f46c49 jocatalin/kubernetes-bootcamp "/bin/sh -c 'node se…" About an hour ago Up About an hour k8s_kubernetes-bootcamp_kubernetes-bootcamp-7689dc585d-45w6d_default_a7c9c95c-cc98-11e8-bd34-000c295db389_0 48c8ca188409 registry.cn-hangzhou.aliyuncs.com/imooc/pause-amd64:3.0 "/pause" About an hour ago Up About an hour k8s_POD_kubernetes-bootcamp-7689dc585d-45w6d_default_a7c9c95c-cc98-11e8-bd34-000c295db389_0 [root@smallsoup kubernetes-starter]# docker exec -ti 230582f46c49 bash root@kubernetes-bootcamp-7689dc585d-45w6d:/# curl 10.68.194.69 Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-7689dc585d-45w6d | v=2 root@kubernetes-bootcamp-7689dc585d-45w6d:/# [root@smallsoup services]# vim nginx-service.yaml apiVersion: v1 kind: Service metadata: name: nginx-service spec: ports: - port: 8080 targetPort: 80 nodePort: 20000 selector: app: nginx type: NodePort [root@smallsoup services]# kubectl create -f nginx-service.yaml service "nginx-service" created [root@smallsoup services]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.68.0.1 443/TCP 15h kubernetes-bootcamp NodePort 10.68.194.69 80:27543/TCP 10m nginx-service NodePort 10.68.80.238 8080:20000/TCP 2m [root@smallsoup services]# curl 10.68.80.238:8080 [root@smallsoup services]# curl 192.168.1.103:20000 [root@smallsoup services]# curl 192.168.1.102:20000 Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

dns服务: [root@smallsoup kubernetes-starter]# kubectl create -f target/services/kube-dns.yaml configmap "kube-dns" created serviceaccount "kube-dns" created service "kube-dns" created deployment "kube-dns" created [root@smallsoup kubernetes-starter]# [root@smallsoup kubernetes-starter]# kubectl -n kube-system get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.68.0.2 53/UDP,53/TCP 48s [root@smallsoup kubernetes-starter]# [root@smallsoup kubernetes-starter]# kubectl -n kube-system get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kube-dns 1 1 1 1 1m [root@smallsoup kubernetes-starter]# kubectl -n kube-system get pods NAME READY STATUS RESTARTS AGE kube-dns-74cdd9c8-smtld 3/3 Running 0 1m [root@smallsoup kubernetes-starter]# kubectl -n kube-system get pods -owide NAME READY STATUS RESTARTS AGE IP NODE kube-dns-74cdd9c8-smtld 3/3 Running 0 1m 172.20.173.199 192.168.1.103 验证域名解析: root@kubernetes-bootcamp-7689dc585d-45w6d:/# root@kubernetes-bootcamp-7689dc585d-45w6d:/# root@kubernetes-bootcamp-7689dc585d-45w6d:/# cat /etc/resolv.conf nameserver 10.68.0.2 search default.svc.cluster.local. svc.cluster.local. cluster.local. DHCP HOST options ndots:5 root@kubernetes-bootcamp-7689dc585d-45w6d:/# root@kubernetes-bootcamp-7689dc585d-45w6d:/# curl nginx-service:8080

你可能感兴趣的:(搭建k8s集群遇到的问题)