扬弃对外依靠,OpenEular(欧拉)操作体系为企业搭建独立的K8S集群情况! ...

打印 上一主题 下一主题

主题 655|帖子 655|积分 1965

国产化OpenEular(欧拉)操作体系部署K8S集群

   必要提前准备好OpenEular操作体系假造机3台,本文使用模板机创建。
  前言

如今,随着云计算、大数据、人工智能等技能的快速发展,越来越多的企业开始使用容器化技能来提高开辟和交付速率。而Kubernetes则成为了最受接待的容器编排平台之一。然而,许多企业往往将Kubernetes部署在外部云平台上,这会增加成本和安全风险。那么,如何在不依靠外部云平台的情况下,为企业构建一个独立的Kubernetes情况呢?OpenEuler操作体系为这一问题提供了全面解决方案。本文将深入探讨OpenEuler操作体系如作甚企业构建独立的Kubernetes情况,为企业数字化转型提供强大支持。
一、主机硬件要求

1.1 主机操作体系阐明








序号操作体系及版本备注1openEuler-22.03-LTS-SP1下载链接:https://repo.openeuler.org/openEuler-22.03-LTS-SP1/ISO/x86_64/openEuler-22.03-LTS-SP1-x86_64-dvd.iso 1.2 主机硬件配置阐明

需求CPU内存硬盘角色主机名值4C4G1TBmasterk8s-master01值4C4G1TBworker(node)k8s-worker01值4C4G1TBworker(node)k8s-worker02 二、主机准备

2.1 主机名配置

由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为worker节点,名称分别为:k8s-worker01及k8s-worker02
  1. master节点
  2. # hostnamectl set-hostname k8s-master01
复制代码
  1. worker01节点
  2. # hostnamectl set-hostname k8s-worker01
复制代码
  1. worker02节点
  2. # hostnamectl set-hostname k8s-worker02
复制代码
2.2 主机IP地址配置

  1. k8s-master01节点IP地址为:192.168.10.160/24
  2. # vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3. TYPE="Ethernet"
  4. PROXY_METHOD="none"
  5. BROWSER_ONLY="no"
  6. BOOTPROTO="none"
  7. DEFROUTE="yes"
  8. IPV4_FAILURE_FATAL="no"
  9. IPV6INIT="yes"
  10. IPV6_AUTOCONF="yes"
  11. IPV6_DEFROUTE="yes"
  12. IPV6_FAILURE_FATAL="no"
  13. IPV6_ADDR_GEN_MODE="stable-privacy"
  14. NAME="ens33"
  15. DEVICE="ens33"
  16. ONBOOT="yes"
  17. IPADDR="192.168.10.160"
  18. PREFIX="24"
  19. GATEWAY="192.168.10.2"
  20. DNS1="119.29.29.29"
复制代码
  1. k8s-worker1节点IP地址为:192.168.10.161/24
  2. # vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3. TYPE="Ethernet"
  4. PROXY_METHOD="none"
  5. BROWSER_ONLY="no"
  6. BOOTPROTO="none"
  7. DEFROUTE="yes"
  8. IPV4_FAILURE_FATAL="no"
  9. IPV6INIT="yes"
  10. IPV6_AUTOCONF="yes"
  11. IPV6_DEFROUTE="yes"
  12. IPV6_FAILURE_FATAL="no"
  13. IPV6_ADDR_GEN_MODE="stable-privacy"
  14. NAME="ens33"
  15. DEVICE="ens33"
  16. ONBOOT="yes"
  17. IPADDR="192.168.10.161"
  18. PREFIX="24"
  19. GATEWAY="192.168.10.2"
  20. DNS1="119.29.29.29"
复制代码
  1. k8s-worker2节点IP地址为:192.168.10.162/24
  2. # vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3. TYPE="Ethernet"
  4. PROXY_METHOD="none"
  5. BROWSER_ONLY="no"
  6. BOOTPROTO="none"
  7. DEFROUTE="yes"
  8. IPV4_FAILURE_FATAL="no"
  9. IPV6INIT="yes"
  10. IPV6_AUTOCONF="yes"
  11. IPV6_DEFROUTE="yes"
  12. IPV6_FAILURE_FATAL="no"
  13. IPV6_ADDR_GEN_MODE="stable-privacy"
  14. NAME="ens33"
  15. DEVICE="ens33"
  16. ONBOOT="yes"
  17. IPADDR="192.168.10.162"
  18. PREFIX="24"
  19. GATEWAY="192.168.10.2"
  20. DNS1="119.29.29.29"
复制代码
2.3 主机名与IP地址剖析

   全部集群主机均必要进行配置。
  1. # cat /etc/hosts
  2. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 192.168.10.160 k8s-master01
  5. 192.168.10.161 k8s-worker01
  6. 192.168.10.162 k8s-worker02
复制代码
2.4 防火墙配置

   全部主机均必要操作。
  1. 关闭现有防火墙firewalld
  2. # systemctl disable firewalld
  3. # systemctl stop firewalld
  4. # firewall-cmd --state
  5. not running
复制代码
2.5 SELINUX配置

   全部主机均必要操作。修改SELinux配置必要重启操作体系。
  1. # sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
复制代码
2.6 时间同步配置

   全部主机均必要操作。最小化安装体系必要安装ntpdate软件。
  1. # crontab -l
  2. 0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com
复制代码
2.7 配置内核转发及网桥过滤

   全部主机均必要操作。
  1. 开启内核路由转发
  2. # vim /etc/sysctl.conf
  3. # cat /etc/sysctl.conf
  4. ......
  5. net.ipv4.ip_forward=1
  6. ......
复制代码
  1. 添加网桥过滤及内核转发配置文件
  2. # cat /etc/sysctl.d/k8s.conf
  3. net.bridge.bridge-nf-call-ip6tables = 1
  4. net.bridge.bridge-nf-call-iptables = 1
  5. vm.swappiness = 0
复制代码
  1. 加载br_netfilter模块
  2. # modprobe br_netfilter
复制代码
  1. 查看是否加载
  2. # lsmod | grep br_netfilter
  3. br_netfilter           22256  0
  4. bridge                151336  1 br_netfilter
复制代码
  1. 使用默认配置文件生效
  2. # sysctl -p
复制代码
  1. 使用新添加配置文件生效
  2. # sysctl -p /etc/sysctl.d/k8s.conf
复制代码
2.8 安装ipset及ipvsadm

   全部主机均必要操作。
  1. 安装ipset及ipvsadm
  2. # yum -y install ipset ipvsadm
复制代码
  1. 配置ipvsadm模块加载方式
  2. 添加需要加载的模块
  3. # cat > /etc/sysconfig/modules/ipvs.modules <<EOF
  4. #!/bin/bash
  5. modprobe -- ip_vs
  6. modprobe -- ip_vs_rr
  7. modprobe -- ip_vs_wrr
  8. modprobe -- ip_vs_sh
  9. modprobe -- nf_conntrack
  10. EOF
复制代码
  1. 授权、运行、检查是否加载
  2. # chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack
复制代码
2.9 关闭SWAP分区

   修改完成后必要重启操作体系,如不重启,可暂时关闭,命令为swapoff -a
  1. 临时关闭
  2. # swapoff -a
复制代码
  1. 永远关闭swap分区,需要重启操作系统
  2. # cat /etc/fstab
  3. ......
  4. # /dev/mapper/openeuler-swap none                    swap    defaults        0 0
  5. 在上一行中行首添加#
复制代码
三、容器运行时工具安装及运行

  1. 查看是否存在docker软件
  2. # yum list | grep docker
  3. pcp-pmda-docker.x86_64                                  5.3.7-2.oe2203sp1                                                                                                               @anaconda
  4. docker-client-java.noarch                               8.11.7-2.oe2203sp1                                                                                                              everything
  5. docker-client-java.src                                  8.11.7-2.oe2203sp1                                                                                                              source
  6. docker-compose.noarch                                   1.22.0-4.oe2203sp1                                                                                                              everything
  7. docker-compose.src                                      1.22.0-4.oe2203sp1                                                                                                              source
  8. docker-engine.src                                       2:18.09.0-316.oe220                                                                                3sp1                         source
  9. docker-engine.x86_64                                    2:18.09.0-316.oe220                                                                                3sp1                         OS
  10. docker-engine.x86_64                                    2:18.09.0-316.oe220                                                                                3sp1                         everything
  11. docker-engine-debuginfo.x86_64                          2:18.09.0-316.oe220                                                                                3sp1                         debuginfo
  12. docker-engine-debugsource.x86_64                        2:18.09.0-316.oe220                                                                                3sp1                         debuginfo
  13. docker-runc.src                                         1.1.3-9.oe2203sp1                                                                                                               update-source
  14. docker-runc.x86_64                                      1.1.3-9.oe2203sp1                                                                                                               update
  15. podman-docker.noarch                                    1:0.10.1-12.oe2203s                                                                                p1                           everything
  16. python-docker.src                                       5.0.3-1.oe2203sp1                                                                                                               source
  17. python-docker-help.noarch                               5.0.3-1.oe2203sp1                                                                                                               everything
  18. python-docker-pycreds.src                               0.4.0-2.oe2203sp1                                                                                                               source
  19. python-dockerpty.src                                    0.4.1-3.oe2203sp1                                                                                                               source
  20. python-dockerpty-help.noarch                            0.4.1-3.oe2203sp1                                                                                                               everything
  21. python3-docker.noarch                                   5.0.3-1.oe2203sp1                                                                                                               everything
  22. python3-docker-pycreds.noarch                           0.4.0-2.oe2203sp1                                                                                                               everything
  23. python3-dockerpty.noarch                                0.4.1-3.oe2203sp1                                                                                                               everything
复制代码
  1. 安装docker
  2. # dnf install docker
  3. Last metadata expiration check: 0:53:18 ago on 2023年02月03日 星期五 11时30分19秒.
  4. Dependencies resolved.
  5. ===========================================================================================================================================================
  6. Package                                Architecture                    Version                                          Repository                   Size
  7. ===========================================================================================================================================================
  8. Installing:
  9. docker-engine                          x86_64                          2:18.09.0-316.oe2203sp1                          OS                           38 M
  10. Installing dependencies:
  11. libcgroup                              x86_64                          0.42.2-3.oe2203sp1                               OS                           96 k
  12. Transaction Summary
  13. ===========================================================================================================================================================
  14. Install  2 Packages
  15. Total download size: 39 M
  16. Installed size: 160 M
  17. Is this ok [y/N]: y
  18. Downloading Packages:
  19. (1/2): libcgroup-0.42.2-3.oe2203sp1.x86_64.rpm                                                                             396 kB/s |  96 kB     00:00
  20. (2/2): docker-engine-18.09.0-316.oe2203sp1.x86_64.rpm                                                                       10 MB/s |  38 MB     00:03
  21. -----------------------------------------------------------------------------------------------------------------------------------------------------------
  22. Total                                                                                                                       10 MB/s |  39 MB     00:03
  23. Running transaction check
  24. Transaction check succeeded.
  25. Running transaction test
  26. Transaction test succeeded.
  27. Running transaction
  28.   Preparing        :                                                                                                                                   1/1
  29.   Running scriptlet: libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               1/2
  30.   Installing       : libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               1/2
  31.   Running scriptlet: libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               1/2
  32.   Installing       : docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                                                                      2/2
  33.   Running scriptlet: docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                                                                      2/2
  34. Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
  35.   Verifying        : docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                                                                      1/2
  36.   Verifying        : libcgroup-0.42.2-3.oe2203sp1.x86_64                                                                                               2/2
  37. Installed:
  38.   docker-engine-2:18.09.0-316.oe2203sp1.x86_64                                     libcgroup-0.42.2-3.oe2203sp1.x86_64
  39. Complete!
复制代码
  1. 设置docker开机启动并启动
  2. # systemctl enable --now docker
复制代码
  1. 查看docker版本
  2. # docker version
  3. Client:
  4. Version:           18.09.0
  5. EulerVersion:      18.09.0.316
  6. API version:       1.39
  7. Go version:        go1.17.3
  8. Git commit:        9b9af2f
  9. Built:             Tue Dec 27 14:25:30 2022
  10. OS/Arch:           linux/amd64
  11. Experimental:      false
  12. Server:
  13. Engine:
  14.   Version:          18.09.0
  15.   EulerVersion:     18.09.0.316
  16.   API version:      1.39 (minimum version 1.12)
  17.   Go version:       go1.17.3
  18.   Git commit:       9b9af2f
  19.   Built:            Tue Dec 27 14:24:56 2022
  20.   OS/Arch:          linux/amd64
  21.   Experimental:     false
复制代码
四、K8S软件安装

  1. 安装k8s依赖,连接跟踪
  2. # dnf install conntrack
复制代码
  1. k8s master节点安装
  2. # dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-master
复制代码
  1. k8s worker节点安装
  2. # dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-node
复制代码
  1. # systemctl enable kubelet
复制代码
五、K8S集群初始化

  1. [root@k8s-master01 ~]# kubeadm init --apiserver-advertise-address=192.168.10.160 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
复制代码
  1. 输出:
  2. [init] Using Kubernetes version: v1.20.2
  3. [preflight] Running pre-flight checks
  4.         [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
  5.         [WARNING FileExisting-socat]: socat not found in system path
  6. [preflight] Pulling images required for setting up a Kubernetes cluster
  7. [preflight] This might take a minute or two, depending on the speed of your internet connection
  8. [preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
  9. [certs] Using certificateDir folder "/etc/kubernetes/pki"
  10. [certs] Generating "ca" certificate and key
  11. [certs] Generating "apiserver" certificate and key
  12. [certs] apiserver serving cert is signed for DNS names [k8s-master01 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.1.0.1 192.168.10.160]
  13. [certs] Generating "apiserver-kubelet-client" certificate and key
  14. [certs] Generating "front-proxy-ca" certificate and key
  15. [certs] Generating "front-proxy-client" certificate and key
  16. [certs] Generating "etcd/ca" certificate and key
  17. [certs] Generating "etcd/server" certificate and key
  18. [certs] etcd/server serving cert is signed for DNS names [k8s-master01 localhost] and IPs [192.168.10.160 127.0.0.1 ::1]
  19. [certs] Generating "etcd/peer" certificate and key
  20. [certs] etcd/peer serving cert is signed for DNS names [k8s-master01 localhost] and IPs [192.168.10.160 127.0.0.1 ::1]
  21. [certs] Generating "etcd/healthcheck-client" certificate and key
  22. [certs] Generating "apiserver-etcd-client" certificate and key
  23. [certs] Generating "sa" key and public key
  24. [kubeconfig] Using kubeconfig folder "/etc/kubernetes"
  25. [kubeconfig] Writing "admin.conf" kubeconfig file
  26. [kubeconfig] Writing "kubelet.conf" kubeconfig file
  27. [kubeconfig] Writing "controller-manager.conf" kubeconfig file
  28. [kubeconfig] Writing "scheduler.conf" kubeconfig file
  29. [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
  30. [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
  31. [kubelet-start] Starting the kubelet
  32. [control-plane] Using manifest folder "/etc/kubernetes/manifests"
  33. [control-plane] Creating static Pod manifest for "kube-apiserver"
  34. [control-plane] Creating static Pod manifest for "kube-controller-manager"
  35. [control-plane] Creating static Pod manifest for "kube-scheduler"
  36. [etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
  37. [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
  38. [apiclient] All control plane components are healthy after 6.502722 seconds
  39. [upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
  40. [kubelet] Creating a ConfigMap "kubelet-config-1.20" in namespace kube-system with the configuration for the kubelets in the cluster
  41. [upload-certs] Skipping phase. Please see --upload-certs
  42. [mark-control-plane] Marking the node k8s-master01 as control-plane by adding the labels "node-role.kubernetes.io/master=''" and "node-role.kubernetes.io/control-plane='' (deprecated)"
  43. [mark-control-plane] Marking the node k8s-master01 as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule]
  44. [bootstrap-token] Using token: jvx2bb.pfd31288qyqcfsn7
  45. [bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles
  46. [bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes
  47. [bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
  48. [bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
  49. [bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
  50. [bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
  51. [kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
  52. [addons] Applied essential addon: CoreDNS
  53. [addons] Applied essential addon: kube-proxy
  54. Your Kubernetes control-plane has initialized successfully!
  55. To start using your cluster, you need to run the following as a regular user:
  56.   mkdir -p $HOME/.kube
  57.   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  58.   sudo chown $(id -u):$(id -g) $HOME/.kube/config
  59. Alternatively, if you are the root user, you can run:
  60.   export KUBECONFIG=/etc/kubernetes/admin.conf
  61. You should now deploy a pod network to the cluster.
  62. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  63.   https://kubernetes.io/docs/concepts/cluster-administration/addons/
  64. Then you can join any number of worker nodes by running the following on each as root:
  65. kubeadm join 192.168.10.160:6443 --token jvx2bb.pfd31288qyqcfsn7 \
  66.     --discovery-token-ca-cert-hash sha256:740fa71f6c5acf156195ce6989cb49b7a64fd061b8bf56e4b1b684cbedafbd40
复制代码
  1. [root@k8s-master01 ~]# mkdir -p $HOME/.kube
  2. [root@k8s-master01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  3. [root@k8s-master01 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
复制代码
六、K8S集群工作节点加入

  1. [root@k8s-worker01 ~]# kubeadm join 192.168.10.160:6443 --token jvx2bb.pfd31288qyqcfsn7 \
  2.     --discovery-token-ca-cert-hash sha256:740fa71f6c5acf156195ce6989cb49b7a64fd061b8bf56e4b1b684cbedafbd40
复制代码
  1. [root@k8s-worker02 ~]# kubeadm join 192.168.10.160:6443 --token jvx2bb.pfd31288qyqcfsn7 \
  2.     --discovery-token-ca-cert-hash sha256:740fa71f6c5acf156195ce6989cb49b7a64fd061b8bf56e4b1b684cbedafbd40
复制代码
  1. [root@k8s-master01 ~]# kubectl get nodes
  2. NAME           STATUS     ROLES                  AGE     VERSION
  3. k8s-master01   NotReady   control-plane,master   3m59s   v1.20.2
  4. k8s-worker01   NotReady   <none>                 18s     v1.20.2
  5. k8s-worker02   NotReady   <none>                 10s     v1.20.2
复制代码
七、K8S集群网络插件使用

  1. [root@k8s-master01 ~]# wget https://docs.projectcalico.org/v3.19/manifests/calico.yaml
复制代码
  1. [root@k8s-master01 ~]# vim calico.yaml
  2. 以下两行默认没有开启,开始后修改第二行为kubeadm初始化使用指定的pod network即可。
  3. 3680             # The default IPv4 pool to create on startup if none exists. Pod IPs will be
  4. 3681             # chosen from this range. Changing this value after installation will have
  5. 3682             # no effect. This should fall within `--cluster-cidr`.
  6. 3683             - name: CALICO_IPV4POOL_CIDR
  7. 3684               value: "10.244.0.0/16"
  8. 3685             # Disable file logging so `kubectl logs` works.
  9. 3686             - name: CALICO_DISABLE_FILE_LOGGING
  10. 3687               value: "true"
复制代码
  1. [root@k8s-master01 ~]# kubectl create -f calico.yaml
  2. configmap/calico-config created
  3. customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created
  4. customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created
  5. customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created
  6. customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created
  7. customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created
  8. customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created
  9. customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created
  10. customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created
  11. customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created
  12. customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created
  13. customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created
  14. customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created
  15. customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created
  16. customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created
  17. customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created
  18. clusterrole.rbac.authorization.k8s.io/calico-kube-controllers created
  19. clusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers created
  20. clusterrole.rbac.authorization.k8s.io/calico-node created
  21. clusterrolebinding.rbac.authorization.k8s.io/calico-node created
  22. daemonset.apps/calico-node created
  23. serviceaccount/calico-node created
  24. deployment.apps/calico-kube-controllers created
  25. serviceaccount/calico-kube-controllers created
  26. poddisruptionbudget.policy/calico-kube-controllers created
复制代码
  1. [root@k8s-master01 calicodir]# kubectl get pods -n kube-system
  2. NAME                                       READY   STATUS    RESTARTS   AGE
  3. calico-kube-controllers-848c5d445f-rq4h2   1/1     Running   0          10m
  4. calico-node-kjrcb                          1/1     Running   0          10m
  5. calico-node-ssx5m                          1/1     Running   0          10m
  6. calico-node-v9fgt                          1/1     Running   0          10m
  7. coredns-7f89b7bc75-9j4rw                   1/1     Running   0          166m
  8. coredns-7f89b7bc75-srhxf                   1/1     Running   0          166m
  9. etcd-k8s-master01                          1/1     Running   0          166m
  10. kube-apiserver-k8s-master01                1/1     Running   0          166m
  11. kube-controller-manager-k8s-master01       1/1     Running   0          166m
  12. kube-proxy-4xhms                           1/1     Running   0          163m
  13. kube-proxy-njg9s                           1/1     Running   0          166m
  14. kube-proxy-xfb97                           1/1     Running   0          163m
  15. kube-scheduler-k8s-master01                1/1     Running   0          166m
复制代码
八、应用部署验证及访问验证

  1. cat >  nginx.yaml  << "EOF"
  2. ---
  3. apiVersion: v1
  4. kind: ReplicationController
  5. metadata:
  6.   name: nginx-web
  7. spec:
  8.   replicas: 2
  9.   selector:
  10.     name: nginx
  11.   template:
  12.     metadata:
  13.       labels:
  14.         name: nginx
  15.     spec:
  16.       containers:
  17.         - name: nginx
  18.           image: nginx:1.19.6
  19.           ports:
  20.             - containerPort: 80
  21. ---
  22. apiVersion: v1
  23. kind: Service
  24. metadata:
  25.   name: nginx-service-nodeport
  26. spec:
  27.   ports:
  28.     - port: 80
  29.       targetPort: 80
  30.       nodePort: 30001
  31.       protocol: TCP
  32.   type: NodePort
  33.   selector:
  34.     name: nginx
  35. EOF
复制代码
  1. # kubectl create -f nginx.yaml
  2. replicationcontroller/nginx-web created
  3. service/nginx-service-nodeport created
复制代码
  1. # kubectl get pods
  2. NAME              READY   STATUS    RESTARTS   AGE
  3. nginx-web-7lkfz   1/1     Running   0          31m
  4. nginx-web-n4tj5   1/1     Running   0          31m
复制代码
  1. # kubectl get svc
  2. NAME                     TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
  3. kubernetes               ClusterIP   10.1.0.1      <none>        443/TCP        30m
  4. nginx-service-nodeport   NodePort    10.1.236.15   <none>        80:30001/TCP   10s
复制代码


  • port: 80
    targetPort: 80
    nodePort: 30001
    protocol: TCP
    type: NodePort
    selector:
    name: nginx
    EOF
  1. ~~~powershell# kubectl create -f nginx.yaml
  2. replicationcontroller/nginx-web created
  3. service/nginx-service-nodeport created
复制代码
  1. # kubectl get pods
  2. NAME              READY   STATUS    RESTARTS   AGE
  3. nginx-web-7lkfz   1/1     Running   0          31m
  4. nginx-web-n4tj5   1/1     Running   0          31m
复制代码
  1. # kubectl get svc
  2. NAME                     TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
  3. kubernetes               ClusterIP   10.1.0.1      <none>        443/TCP        30m
  4. nginx-service-nodeport   NodePort    10.1.236.15   <none>        80:30001/TCP   10s
复制代码

总结

容器化技能是当前云计算范畴最为火热的话题之一,而Kubernetes作为容器编排平台的翘楚,已经成为了现代企业不可或缺的一部分。然而,许多企业对外部云平台存在依靠,这增加企业运维成本和风险。在这个配景下,OpenEuler操作体系应运而生,为企业提供了独立、安全、可靠的云计算架构情况。本文中先容了OpenEuler操作体系如何通过搭建Kubernetes集群情况,让企业可以更加自由地进行开辟和部署。盼望各位读者可以或许从本文中深入了解OpenEuler操作体系的上风和特点,不断探索数字化转型和云计算技能范畴的新发展。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表