1、k8s-master初始化过程讲解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CsbbnZA4-1670327877727)(pic/1663045974261.png)]

中间的组件创建过程,以及ssl证书创建过程,暂时不用看,以后回国头再看


# k8s-master成功装好了

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:
# 创建k8s集群配置文件
# 制定了,默认的ssl整数在哪,api-server的地址,等
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
  
  
  
  ======================-===============
# pod分布再多个机器上,pod互相之间链接,得部署,集群网络,选用flannel网络插件
# 安装,使用即可。


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



# 使用如下命令,将k8s-node加入集群即可,
Then you can join any number of worker nodes by running the following on each as root:
===================================================

# join添加到集群中
kubeadm join 10.0.0.10:6443 --token vf7bng.p0lkay3nygloh561 \
    --discovery-token-ca-cert-hash sha256:ddedb46b4e161fb487ae3ceab0b014283df1afbe7cf1604804e1d075ceeaf69a 
    ====================================
[root@k8s-master-10 ~]#


# k8s-master初始化结果,讲解,听懂6666



2、k8s-master运行的组件查看,控制平面(官网说法)查看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WBBtRrU2-1670327877729)(pic/1663046296639.png)]

构成k8s主节点。

3、此时主节点就可以用

查看 k8s集群状态,查看有哪些工作节点


客户端命令
# 可以直接和api-server交互,查询 你要的信息 

# 这个命令,默认会去加载ssl证书,确保安全
# 以后再聊,kubectl的整数添加参数
# 再主节点上,使用这个命令是可以直接用的



kubectl   get  nodes  

# 显示更详细的信息

kubectl   get  nodes  -owide

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IfN7rIhq-1670327877729)(pic/1663046505728.png)]

4、加入k8s-node到集群中

只需要用上述的集群命令添加即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h4lI4pVl-1670327877730)(pic/1663046591195.png)]

此时node机器就可以和master机器 通信 了,走kubelet进程

[root@k8s-node-12 ~]#netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:44061         0.0.0.0:*               LISTEN      13018/kubelet       
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      13018/kubelet       
tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      13454/kube-proxy    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1022/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1255/master         
tcp6       0      0 :::10250                :::*                    LISTEN      13018/kubelet       
tcp6       0      0 :::10256                :::*                    LISTEN      13454/kube-proxy    
tcp6       0      0 :::22                   :::*                    LISTEN      1022/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1255/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           1623/chronyd        
udp6       0      0 ::1:323                 :::*                                1623/chronyd   

该进程是以什么形式运行的?

宿主机直接,以1号进程,systemd去启动的kubelet进程

systemctl status kubelet 查看


5、k8s-master主节点,查看所有工作节点的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pXY62R3m-1670327877731)(pic/1663046822032.png)]

查看k8s集群,用到了哪些机器

6、如何让集群就绪呢?部署网络插件

# 1. 下载网络插件的,配置文件 ,yaml以及配置文件
git clone --depth 1 https://github.com/coreos/flannel.git

# 2.再k8s主节点上,应用这个yaml,基于yaml,创建具体的pod过程。

# 3.如果需要修改pod运行网络的话,要改配置文件,
/root/flannel-master/Documentation/kube-flannel.yml

# 创建k8s资源,都是写这种yml文件了

[root@k8s-master-10 ~/flannel-master/Documentation]#grep 'Network' -A 5 kube-flannel.yml 
      "Network": "10.2.0.0/16",
      "Backend": {
        "Type": "vxlan"
      }
    }
---


# 修改的第二处,夸主机的容器通信,最终不得走宿主机的物理网卡。
# 告诉flannel的你物理网卡是谁
      containers:
      - name: kube-flannel
       #image: flannelcni/flannel:v0.19.2 for ppc64le and mips64le (dockerhub limitations may apply)
        image: docker.io/rancher/mirrored-flannelcni-flannel:v0.19.2
        command:
        - /opt/bin/flanneld
        args:
        - --ip-masq
        - --kube-subnet-mgr
        - --iface=ens33

# 基于kubectl命令,应用这个yml文件,读取,以及创建pod资源

[root@k8s-master-10 ~/flannel-master/Documentation]#kubectl create -f ./kube-flannel.yml 
namespace/kube-flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created



# 查看当前机器的容器,关于flannel网络插件的进程
[root@k8s-master-10 ~/flannel-master/Documentation]#docker ps |grep flannel
812ebf6b0578        registry.aliyuncs.com/google_containers/pause:3.2   "/pause"                 31 seconds ago      Up 31 seconds                           k8s_POD_kube-flannel-ds-9x4l2_kube-flannel_37b34022-cc0d-47c3-b677-3fe657374dbc_0





修改pod网络的网段地址,根据kubeadm init 初始化时,设置的地址来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NjMl1BIj-1670327877732)(pic/1663047963226.png)]

7、为何所有节点,都有了网络插件进程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T9uOK4v6-1670327877733)(pic/1663048368816.png)]

9、至此,所有机器,都走flannel进行集群通信了。

[root@k8s-master-10 ~/flannel-master/Documentation]#kubectl get nodes -o wide
NAME            STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
k8s-master-10   Ready    master   41m   v1.19.3   10.0.0.10     <none>        CentOS Linux 7 (Core)   3.10.0-862.el7.x86_64   docker://19.3.15
k8s-node-11     Ready    <none>   31m   v1.19.3   10.0.0.11     <none>        CentOS Linux 7 (Core)   3.10.0-862.el7.x86_64   docker://19.3.15
k8s-node-12     Ready    <none>   31m   v1.19.3   10.0.0.12     <none>        CentOS Linux 7 (Core)   3.10.0-862.el7.x86_64   docker://19.3.15
[root@k8s-master-10 ~/flannel-master/Documentation]## 至此表示,3个节点,集群通信OK,可以pod部署了,。看懂111
[root@k8s-master-10 ~/flannel-master/Documentation]#
[root@k8s-master-10 ~/flannel-master/Documentation]#
[root@k8s-master-10 ~/flannel-master/Documentation]#
[root@k8s-master-10 ~/flannel-master/Documentation]#
[root@k8s-master-10 ~/flannel-master/Documentation]## 至此表示,3个节点,集群通信OK,可以pod部署了,。看懂111
[root@k8s-master-10 ~/flannel-master/Documentation]#

确保集群所有节点,就绪状态

10、配置k8s命令补全(重要)

k8s命令太多,务必要配置补全


操作节点:k8s-master

yum install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc




11、发出pod创建请求,运行一个nginx-pod

# 查看命令帮助

kubectl run --help

# 后台运行一个nginx ,1.14.1 pod ,看结果
[root@k8s-master-10 ~/flannel-master/Documentation]#kubectl run linux0224-pod-1-nginx --image=nginx:1.14.1 
pod/linux0224-pod-1-nginx created


# 如何查看pod信息? get 查询
[root@k8s-master-10 ~/flannel-master/Documentation]#kubectl get pods -owide
NAME                    READY   STATUS    RESTARTS   AGE   IP         NODE          NOMINATED NODE   READINESS GATES
linux0224-pod-1-nginx   1/1     Running   0          38s   10.2.2.2   k8s-node-11   <none>           <none>


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6MMQnZfS-1670327877735)(pic/1663048691733.png)]

访问pod-ip即可

pod的ip是k8s集群,才能访问通的一个ip,无法再 外部访问,外部访问,得设置更多网络规则。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wVcMMtcx-1670327877735)(pic/1663048761395.png)]

12、如何修改这个页面

你会的改法?
直接修改容器信息,具体机器上,的集体容器进程
[root@k8s-node-11 ~]#docker exec 25ff3ec21095  sh -c "echo '<meta charset-utf8> 同志们辛苦了。'  > /usr/share/nginx/html/index.html"




容器集群。,走管理节点去管理pod。再去修改 容器信息,让你明白,。pod和容器的关系
命令很像

[root@k8s-master-10 ~/flannel-master/Documentation]#kubectl exec linux0224-pod-1-nginx  --  sh -c "echo '辛苦了同志们,散会,下午好好消化下,干饭' >/usr/share/nginx/html/index.html  "
[root@k8s-master-10 ~/flannel-master/Documentation]#



[root@k8s-master-10 ~/flannel-master/Documentation]##基于k8s命令,修改pod内的容器信息,以及帮助信息查看
[root@k8s-master-10 ~/flannel-master/Documentation]#
[root@k8s-master-10 ~/flannel-master/Documentation]#kubectl exec linux0224-pod-1-nginx  --  sh -c "echo '辛苦了同志们,散会,下午好好消化下,干饭' >/usr/share/nginx/html/index.html  "
[root@k8s-master-10 ~/flannel-master/Documentation]#





Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐