首页
恋爱日记
数据统计
留言板
更多
友情链接
Search
1
CentOS7安装部署weblogic12.1.1
3,130 阅读
2
Docker真的被Kubernetes放弃了吗?
2,824 阅读
3
一款可以自定义VScode背景的插件
2,682 阅读
4
Nginx搭建本地YUM仓库
2,352 阅读
5
CentOS 7安装fail2ban+Firewalld防止SSH爆破与CC攻击
2,157 阅读
Prometheus网站监控面板
Vscode
Typecho优化
Ops工具
Linux
Shell
Nginx
Weblogic
云原生
Kubernetes
Docker
Ceph
监控
Promethues
Zabbix
Grafana
数据库
MySQL
登录
Search
废柴阿尤
累计撰写
25
篇文章
累计收到
14
条评论
首页
栏目
Prometheus网站监控面板
Vscode
Typecho优化
Ops工具
Linux
Shell
Nginx
Weblogic
云原生
Kubernetes
Docker
Ceph
监控
Promethues
Zabbix
Grafana
数据库
MySQL
页面
恋爱日记
数据统计
留言板
友情链接
搜索到
25
篇与
的结果
2024-01-07
Docker真的被Kubernetes放弃了吗?
首先,要明确的是,Kubernetes 并没有完全放弃 Docker,而是改变了对 Docker 的使用方式。 这一改变主要是因为 Kubernetes 1.20 版本开始,宣布弃用了 Docker 作为容器运行时的支持(Dockershim 的移除)。这意味着,虽然在 Kubernetes 集群中可以运行用 Docker 构建的容器镜像,但 Kubernetes 将不再使用 Docker 作为容器运行时。1、Docker 是什么? ::(疑问) Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙盒机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker 使用的是客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。镜像可以看作是容器的“模版”,而容器则是这些模版的实例化对象。Docker 提供了一个非常便捷的镜像使用方式,除了可以使用本地镜像外,还可以从 Docker Hub 上下载数以万计的镜像使用。2、Kubernetes 是什么? ::(疑问) Kubernetes(也称为 K8s)是用于自动部署、扩展和管理容器化应用程序的开源系统。它由 Google 设计并捐赠给 Cloud Native Computing Foundation 来维护。Kubernetes 提供了一个用于部署应用程序的框架,支持应用程序的扩展和故障处理等功能,还提供了一系列的工具和服务以实现各种需求。Kubernetes 的核心功能包括自动化容器的部署和复制随时扩展或缩减容器数量将容器组织成组并提供容器间的负载均衡服务发现和负载均衡自动挂载存储系统自动化的滚动更新自我修复,如重新启动失败的容器3、Docker 和 Kubernetes 的区别? ::(冷) 虽然 Docker 和 Kubernetes 都是与容器化技术相关的工具,但它们在某些方面有着明显的不同。 使用范围和目的: Docker 主要关注的是容器的打包和运行,简化了应用程序的交付。而 Kubernetes 更加关注的是容器的协调和管理,包括自动部署、扩展、运行和调度容器。 设计和架构: Docker 使用简单的设计,易于理解和使用。它可以在单机上运行,也可以结合 Docker Swarm 在多机上协同工作。Kubernetes 则更加复杂,提供更多的功能和更高的灵活性,它是为在集群上大规模运行和管理容器化应用设计的。 功能和特性: Docker 直接处理容器的创建和运行,而 Kubernetes 提供了更复杂的调度器和集群管理工具。Kubernetes 能够管理和调度多个容器组成的应用,具有自动扩展、自愈等高级特性。 生态系统和社区: 虽然 Docker 和 Kubernetes 都拥有强大的社区支持,但 Kubernetes 在云计算和微服务领域的生态系统更为丰富,支持更多的云平台和产品集成。 总的来说,Docker 更专注于单个容器的生命周期,而 Kubernetes 更关注容器集群的整体管理。在微服务和云原生应用的趋势下,两者往往是相辅相成的关系,Docker 用于容器化应用,而 Kubernetes 用于管理这些容器化的应用。4、Kubernetes 对 Docker 的使用方式改变 ::(你懂的) 首先,要明确的是,Kubernetes 并没有完全放弃 Docker,而是改变了对 Docker 的使用方式。这一改变主要是因为 Kubernetes 1.20 版本开始,宣布弃用了 Docker 作为容器运行时的支持(Dockershim 的移除)。这意味着,虽然在 Kubernetes 集群中可以运行用 Docker 构建的容器镜像,但 Kubernetes 将不再使用 Docker 作为容器运行时。 这个改变背后的原因是 Docker 和 Kubernetes 之间的技术差异。Docker 是一个包含多种功能的大型应用,除了容器运行时之外,还包括图像管理、存储、网络等。而 Kubernetes 实际上只需要容器运行时这一部分功能。因此,为了减轻 Kubernetes 的负担,更高效地管理容器,Kubernetes 开始支持更加轻量级和标准化的容器运行时接口(CRI)。5、Kuberetes 并没有淘汰 Docker ::(笑眼) 这并不意味着 Docker 被淘汰,因为 Docker 构建的容器镜像仍然可以在 Kubernetes 中运行。只是 Kubernetes 会使用其他容器运行时(如 containerd 或 CRI-O)来直接运行这些镜像。Docker 镜像本身符合 OCI(Open Container Initiative)标准,因此可以被任何标准的容器运行时使用。6、Docker 在 Kubernetes 生态中的角色 :@(想一想) 在这种情况下,Docker 更像是一个开发工具,而不是在生产环境中的容器运行时。开发者仍然可以使用 Docker 来构建、测试容器镜像,然后将这些镜像部署到 Kubernetes 集群中。实际上,这种变化让 Kubernetes 变得更加高效,因为它可以直接与底层容器运行时接口交互,减少了不必要的中间层。 两个代码示例来展示如何在 Kubernetes 环境中使用容器。第一个示例是一个 Dockerfile,用于创建一个简单的 Docker 镜像;第二个示例是一个 Kubernetes 的部署配置文件(Deployment)用于在 Kubernetes 集群中部署这个镜像。这两个示例将展示如何将一个 Docker 容器化的应用部署到 Kubernetes 集群中。示例 1:Dockerfile这个 Dockerfile 示例将创建一个简单的 Node.js 应用的 Docker 镜像。# 使用官方的 Node.js 基础镜像作为构建环境 FROM node:14 # 设置工作目录为 /app WORKDIR /app # 将 package.json 和 package-lock.json 复制到容器中 COPY package*.json ./ # 安装应用依赖 RUN npm install # 将应用的源代码复制到容器中 COPY . . # 应用运行时监听的端口 EXPOSE 8080 # 定义容器启动时运行的命令 CMD ["node", "server.js"] 在这个 Dockerfile 中,我们基于 Node.js 的官方镜像创建一个新的镜像,安装了应用的依赖,并设置容器启动时执行的命令。示例 2:Kubernetes Deployment 配置文件这个 YAML 文件示例定义了一个 Kubernetes Deployment,用于部署上面创建的 Docker 镜像。apiVersion: apps/v1 kind: Deployment metadata: name: nodejs-app labels: app: nodejs-app spec: replicas: 2 # 创建两个副本 selector: matchLabels: app: nodejs-app template: metadata: labels: app: nodejs-app spec: containers: - name: nodejs-container image: your-dockerhub-username/nodejs-app:latest # 指定 Docker 镜像 ports: - containerPort: 8080 # 容器应用监听的端口 在这个 YAML 文件中,我们定义了一个名为 nodejs-app 的 Deployment。它将部署两个副本的容器,每个容器都运行 your-dockerhub-username/nodejs-app:latest 镜像(这里你需要替换成你自己的 Docker Hub 用户名和镜像名)。这个部署配置指定了容器内部的应用监听端口为 8080。 结合这两个示例,你可以看到 Docker 和 Kubernetes 如何一起工作来容器化和部署一个应用。首先,使用 Docker 构建一个应用的镜像,然后通过 Kubernetes 部署配置在集群中部署这个镜像。7、总结,Docker真的被Kubernetes放弃了吗? ::(滑稽) 所以,我们可以说 Kubernetes 改变了对 Docker 的使用方式,而不是完全放弃了 Docker。这种变化更多地反映了 Kubernetes 向标准化、高效化发展的趋势,同时也保留了 Docker 在容器技术领域的核心价值和广泛使用。对于开发者来说,这意味着他们仍然可以在开发过程中使用 Docker,而 Kubernetes 则更专注于容器的编排和管理。
2024年01月07日
2,824 阅读
2 评论
1,569 点赞
2023-12-12
Prometheus+Grafana监控并展示各厂商云服务器信息
Prometheus+Grafana监控并展示各厂商云服务器信息
2023年12月12日
105 阅读
0 评论
28 点赞
2023-12-09
CentOS7安装部署weblogic12.1.1
一、安装部署weblogic{collapse}{collapse-item label="1.环境准备" open}[root@weblogic72 ~]# ifconfig eth0 | sed -n 2p inet 10.0.0.72 netmask 255.255.255.0 broadcast 10.0.0.255 [root@weblogic72 ~]# ifconfig eth1 | sed -n 2p inet 172.16.1.72 netmask 255.255.255.0 broadcast 172.16.1.255 [root@weblogic72 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 12M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda3 58G 4.0G 54G 7% / /dev/sda1 197M 110M 88M 56% /boot tmpfs 394M 0 394M 0% /run/user/0 [root@weblogic72 ~]# free -h total used free shared buff/cache available Mem: 3.8G 221M 3.5G 11M 94M 3.5G Swap: 0B 0B 0B [root@weblogic72 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@weblogic72 ~]# uname -r 3.10.0-1160.el7.x86_64 [root@weblogic72 ~]# {/collapse-item}{collapse-item label="2.配置环境"}# weblogic不支持root用户安装,需创建普通用户进行安装 [root@weblogic72 ~]# groupadd weblogic [root@weblogic72 ~]# useradd -g weblogic weblogic [root@weblogic72 ~]# passwd weblogic # 更改weblogic用户的密码 [root@weblogic72 ~]# groups weblogic [root@weblogic72 ~]# su - weblogic{/collapse-item}{collapse-item label="3.配置JDK"}####################普通用户配置JDk环境#################### [weblogic@weblogic71 ~]# mkdir softwares [weblogic@weblogic71 ~]# cd softwares/ [weblogic@weblogic71 ~]# tar xf jdk-8u291-linux-x64.tar.gz [weblogic@weblogic71 ~]# /home/weblogic/softwares/jdk1.8.0_291/bin/java -version [weblogic@weblogic71 ~]# vim .bash_profile ··· export JAVA_HOME=/home/weblogic/softwares/jdk1.8.0_291/ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin ··· [weblogic@weblogic71 ~]# source .bash_profile [weblogic@weblogic72 ~]# java -version java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode) ####################root用户配置JDk环境#################### [root@weblogic72 ~]# vim /etc/profile ··· export JAVA_HOME=/home/weblogic/softwares/jdk1.8.0_291/ export PATH=$PATH:$JAVA_HOME/bin ··· [root@weblogic72 ~]# source /etc/profile [root@weblogic72 ~]# java -version java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode){/collapse-item}{collapse-item label="4.开始安装weblogic"}[weblogic@weblogic72 softwares]# pwd /home/weblogic/softwares [weblogic@weblogic72 softwares]# chmod -R 777 wls1211_generic.jar [weblogic@weblogic72 softwares]# java -jar wls1211_generic.jar -mode=console (可以不加“-mode=console”的控制台文本模式,因为在安装时无法启动图形安装界面时它会自动的进入文本控制台模式的)选择中间件目录,可默认,看个人爱好吧 注册安全更新,一般不需要更新,操作:选择3,回车 更改接受更新方式,操作:输入No,回车确认更改接受更新方式,操作:Yes,回车 接受更新选择确认,直接输入“Next”,回车(此时Receive Security Update:[No]表示不接受安全更新) 选择安装类型(Typical:典型;Custom:自定义),操作:我们选择默认典型安装,输入“Next”,回车(如果选择定制安装,输入“2”,回车) 选择jdk 选择产品安装目录,(一般来说,这一步默认就行(如果要更改的话就选择前面的序号,比如1回车,然后输入安装路径就行),输入“下一步”后回车),操作:Next,回车 安装产品系列列表,直接 Next,开始安装 看到下面信息即安装成功 {/collapse-item}{collapse-item label="5. 创建domain"}# 进安装目录下的 bin 目录下,找 config.sh [weblogic@weblogic72 bin]# pwd /home/weblogic/Oracle/Middleware/wlserver_12.1/common/bin [weblogic@weblogic72 bin]# ll total 112 -rwxr-x--- 1 weblogic weblogic 24283 Dec 9 15:38 commEnv.sh -rwxr-x--- 1 weblogic weblogic 2129 Dec 9 15:38 config_builder.sh -rwxr-x--- 1 weblogic weblogic 2281 Dec 9 15:38 config.sh -rwxr-x--- 1 weblogic weblogic 2586 Dec 9 15:38 pack.sh -rwxr-x--- 1 weblogic weblogic 2150 Dec 9 15:38 setPatchEnv.sh -rwxr-x--- 1 weblogic weblogic 4089 Dec 9 15:38 startDerby.sh -rwxr-x--- 1 weblogic weblogic 4095 Dec 9 15:38 startManagedWebLogic.sh -rwxr-x--- 1 weblogic weblogic 1455 Dec 9 15:38 stopDerby.sh -rwxr-x--- 1 weblogic weblogic 2094 Dec 9 15:38 unpack.sh -rwxr-x--- 1 weblogic weblogic 3305 Dec 9 15:38 upgrade.sh -rwxr-x--- 1 weblogic weblogic 31224 Dec 9 15:38 wlscontrol.sh -rwxr-x--- 1 weblogic weblogic 13854 Dec 9 15:37 wlsifconfig.sh -rwxr-x--- 1 weblogic weblogic 791 Dec 9 15:38 wlst.sh [weblogic@weblogic72 bin]# 执行`./config.sh 接下来傻瓜式往下走就行了,默认就next,其中有个路径需要注意:进入目标域目录选择,操作:输入“Next”,回车(这里选择默认即可,如果要修改,记得输入路径,回车)更改密码确认用户密码输入"Next" 回车域模式配置,操作:输入2,回车(1.开发模式,2生产模式)选择jdk接下来这一步需要注意,不然如果没选,可能出不来配置端口的信息,还需要手动改配置文件:接下来就是配置端口号,默认端口就直接回车,否则选择序号进行修改修改默认端口为7003直接回车即可安装完成{/collapse-item}{collapse-item label="6.编辑启动脚本"}修改JVM堆内存大小堆内存生产环境调优说明 - 设置物理机内存的一半,比如说物理内存是32G,则堆内存应该为设置16G即可; - 当物理内存过大时,推荐配置不得超过32G,比如物理内存为128G,应该最大的堆内存大小设置为32G; [weblogic@weblogic72 bin]# pwd /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin [weblogic@weblogic72 bin]# grep Xmx setDomainEnv.sh WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m" WLS_MEM_ARGS_32BIT="-Xms256m -Xmx512m" WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m" WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m" [weblogic@weblogic72 bin]# 修改内核参数[root@weblogic72 ~]# cat > /etc/sysctl.d/weblogic.conf <<EOF vm.max_map_count=262144 EOF [root@weblogic72 ~]# sysctl -p /etc/sysctl.d/weblogic.conf编写启动脚本[root@weblogic72 ~]# cat > /usr/lib/systemd/system/weblogic.service <<EOF [Unit] Description=weblogic server daemon Documentation=https://blog.ayou.space Description=WebLogic Adminserver Service[Service] [Service] Type=simple WorkingDirectory=/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain ExecStart=/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh ExecStop=/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/stopWebLogic.sh User=weblogic Group=weblogic [Install] WantedBy=multi-user.target EOF启动测试systemctl daemon-reload systemctl enable --now weblogic{/collapse-item}{/collapse}二、部署项目{collapse}{collapse-item label="1.下载编译好的war包并上传" open}[weblogic@weblogic72 user_projects]# pwd /home/weblogic/Oracle/Middleware/user_projects [weblogic@weblogic72 user_projects]# ll total 0 drwxr-x--- 3 weblogic weblogic 25 Dec 9 16:25 domains [weblogic@weblogic72 user_projects]# mkdir helloworld [weblogic@weblogic72 user_projects]# ll total 0 drwxr-x--- 3 weblogic weblogic 25 Dec 9 16:25 domains drwxrwxr-x 2 weblogic weblogic 6 Dec 10 13:52 helloworld [weblogic@weblogic72 user_projects]# cd helloworld/ # 上传war包 [weblogic@weblogic72 helloworld]# ll total 4 -rw-r--r-- 1 weblogic weblogic 3388 Dec 10 13:43 hello-world.zip [weblogic@weblogic72 helloworld]# unzip hello-world.zip [weblogic@weblogic72 helloworld]# ll total 8 -rw-rw-r-- 1 weblogic weblogic 2415 Dec 9 18:00 hello-world.war -rw-rw-r-- 1 weblogic weblogic 1624 Dec 10 13:42 hello-world.zip [weblogic@weblogic72 helloworld]# rm -rf hello-world.zip [weblogic@weblogic72 helloworld]# [weblogic@weblogic72 helloworld]# ll total 4 -rw-rw-r-- 1 weblogic weblogic 2415 Dec 9 18:00 hello-world.war [weblogic@weblogic72 helloworld]# {/collapse-item}{collapse-item label="2.部署业务"}点击锁定并编辑点击安装选择war包点击 下一步自定义项目名称点击完成点击保存准备启动业务确认启动服务{/collapse-item}{collapse-item label="3.访问项目"}{/collapse-item}{/collapse}
2023年12月09日
3,130 阅读
0 评论
1,382 点赞
2023-11-15
Kind快速部署Kubernetes多集群
Kind架构及原理 Kind 使用一个 container 来模拟一个 node,在 container 里面跑 systemd ,并用 systemd 托管 kubelet 以及 containerd,然后通过容器内部的 kubelet 把其他 K8s 组件,比如 kube-apiserver、etcd、CNI 等跑起来。它可以通过配置文件的方式创建多个 container 来模拟创建多个 node,并以这些 node 构建一个多节点的 Kubernetes 集群。Kind 内部使用的集群部署工具是 kubeadm,借助 kubeadm 提供的 Alpha 特性,它可以部署包括 HA master 的高可用集群。同时,在 HA master 下, 它还额外部署了一个 Nginx,用来提供负载均衡 vip。Docker 安装宿主机安装Dockerroot@k8s:~# for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt-get remove $pkg; doneroot@k8s:~# apt-get update root@k8s:~# apt-get install ca-certificates curl gnupg root@k8s:~# install -m 0755 -d /etc/apt/keyrings root@k8s:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg root@k8s:~# chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: root@k8s:~# echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null root@k8s:~# apt-get update安装Dockerroot@k8s:~# apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginKind安装首先我们下载Kind二进制包root@k8s:~# wget https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64 root@k8s:~# mv kind-linux-amd64 /usr/bin/kind root@k8s:~# chmod +x /usr/bin/kind指定版本号并创建集群root@k8s:~# cat >kind-demo.yaml<<EOF kind: Cluster name: k8s-kind-demo apiVersion: kind.x-k8s.io/v1alpha4 networking: disableDefaultCNI: false nodes: - role: control-plane #- role: control-plane #- role: control-plane - role: worker - role: worker - role: worker EOF参数详解:name 设置集群名称networking.disableDefaultCNI 创建的集群默认自带一个轻量级的 CNI 插件 kindnetd ,我们也可以禁用默认设置来安装其他 CNI,比如 Calico。nodes control-plance master节点数量nodes worker node节点数量快速创建集群{message type="success" content="本次版本采用v1.24.15"/}root@k8s:~# kind create cluster --config=kind-demo.yaml --image=kindest/node:v1.24.15 --name=k8s-kind-demo 日志输出以下 Creating cluster "k8s-kind-demo" ... ✓ Ensuring node image (kindest/node:v1.24.15) 🖼 ✓ Preparing nodes 📦 📦 ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 ✓ Joining worker nodes 🚜 Set kubectl context to "kind-k8s-kind-demo" You can now use your cluster with: kubectl cluster-info --context kind-k8s-kind-demo Thanks for using kind! 😊安装kubectlroot@k8s:~# curl -LO https://dl.k8s.io/release/v1.24.15/bin/linux/amd64/kubectl root@k8s:~# chmod +x kubectl root@k8s:~# mv kubectl /usr/bin/可以查看集群状态root@k8s:~# kubectl cluster-info --context kind-k8s-kind-demo Kubernetes control plane is running at https://127.0.0.1:42687 CoreDNS is running at https://127.0.0.1:42687/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'接下来我们就可以get node查看到节点信息root@k8s:~# kubectl get node NAME STATUS ROLES AGE VERSION k8s-kind-demo-control-plane Ready control-plane 2m2s v1.24.15 k8s-kind-demo-worker Ready <none> 90s v1.24.15 root@k8s:~# kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE coredns-57575c5f89-9ltk6 1/1 Running 0 108s coredns-57575c5f89-glgvh 1/1 Running 0 107s etcd-k8s-kind-demo-control-plane 1/1 Running 0 2m7s kindnet-ljptz 1/1 Running 0 99s kindnet-qzglw 1/1 Running 0 109s kube-apiserver-k8s-kind-demo-control-plane 1/1 Running 0 2m5s kube-controller-manager-k8s-kind-demo-control-plane 1/1 Running 0 2m1s kube-proxy-kvzx9 1/1 Running 0 109s kube-proxy-pnzmz 1/1 Running 0 99s kube-scheduler-k8s-kind-demo-control-plane 1/1 Running 0 2m9sKind 常用命令查看集群 root@k8s:~# kind get clusters 删除集群 root@k8s:~# kind delete cluster --name 集群名称Kind创建多套集群实际上只是需要给yaml文件修改即可root@k8s:~# cat >kind-demo1.yaml<<EOF kind: Cluster name: k8s-kind-demo1 apiVersion: kind.x-k8s.io/v1alpha4 networking: disableDefaultCNI: true #这里开启个cni nodes: - role: control-plane #- role: control-plane #- role: control-plane - role: worker EOF{alert type="success"}disableDefaultCNI禁用了默认的kindnetd插件,CNI就需要我们自己安装flannel或者其它calico组件{/alert}使用下面命令创建集群{message type="success" content="版本我们换成1.28.0"/}root@k8s:~# kind create cluster --config=kind-demo1.yaml --image=kindest/node:v1.28.0 --name=k8s-kind-demo1 日志 输出如下 Creating cluster "k8s-kind-demo1" ... ✓ Ensuring node image (kindest/node:v1.28.0) 🖼 ✓ Preparing nodes 📦 📦 ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing StorageClass 💾 ✓ Joining worker nodes 🚜 Set kubectl context to "kind-k8s-kind-demo1" You can now use your cluster with: kubectl cluster-info --context kind-k8s-kind-demo1 Thanks for using kind! 😊查看集群状态root@k8s:~# kubectl get node NAME STATUS ROLES AGE VERSION k8s-kind-demo1-control-plane NotReady control-plane 3m46s v1.28.0 k8s-kind-demo1-worker NotReady <none> 3m17s v1.28.0 pod状态 root@k8s:~# kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE coredns-5dd5756b68-l94jm 0/1 Pending 0 3m58s coredns-5dd5756b68-psm7p 0/1 Pending 0 3m58s etcd-k8s-kind-demo1-control-plane 1/1 Running 0 4m12s kube-apiserver-k8s-kind-demo1-control-plane 1/1 Running 0 4m11s kube-controller-manager-k8s-kind-demo1-control-plane 1/1 Running 0 4m12s kube-proxy-bln4n 1/1 Running 0 3m50s kube-proxy-l4k49 1/1 Running 0 3m59s kube-scheduler-k8s-kind-demo1-control-plane 1/1 Running 0 4m16s{message type="success" content="切换集群"/}1.24集群版本默认cni插件1.28集群版本不使用默认插件接下来可以通过kubectl config use-context xx_name快速切换集群首先获取Cluster名称,我现在在k8s 1.28版本,现在我切换到1.24.15版本root@k8s:~# kind get clusters k8s-kind-demo k8s-kind-demo1切换到k8s-kind-demo集群root@k8s:~# kubectl config use-context kind-k8s-kind-demo Switched to context "kind-ak8s-kind-demo". root@k8s:~# kubectl get node NAME STATUS ROLES AGE VERSION k8s-kind-demo-control-plane Ready control-plane 43m v1.24.15 k8s-kind-demo-worker Ready <none> 43m v1.24.15切换到k8s-kind-demo1集群root@k8s:~# kubectl config use-context kind-k8s-kind-demo1 Switched to context "kind-k8s-kind-demo1". root@k8s:~# kubectl get node NAME STATUS ROLES AGE VERSION k8s-kind-demo1-control-plane NotReady control-plane 36m v1.28.0 k8s-kind-demo1-worker NotReady <none> 36m v1.28.0测试集群root@k8s:~# cat<<EOF | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:alpine name: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx spec: selector: app: nginx type: NodePort ports: - protocol: TCP port: 80 targetPort: 80 nodePort: 30001 --- apiVersion: v1 kind: Pod metadata: name: busybox namespace: default spec: containers: - name: busybox image: centos:v1 command: - sleep - "3600" imagePullPolicy: IfNotPresent restartPolicy: Always EOF查看服务状态root@k8s:~# kubectl get pod,svc NAME READY STATUS RESTARTS AGE pod/busybox 1/1 Running 0 2m27s pod/nginx-6fb79bc456-st6qk 1/1 Running 0 2m27s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 48m service/nginx NodePort 10.96.93.229 <none> 80:30001/TCP 2m28s测试dnsroot@k8s:~# kubectl exec -ti busybox -- nslookup kubernetes Server: 10.96.0.10 Address: 10.96.0.10#53 Name: kubernetes.default.svc.cluster.local Address: 10.96.0.1测试nginx nodeport{alert type="success"}nginx nodeport>nginx需要进入到node容器{/alert}root@k8s:~# kubectl get node NAME STATUS ROLES AGE VERSION k8s-kind-demo-control-plane Ready control-plane 53m v1.24.15 k8s-kind-demo-worker Ready <none> 52m v1.24.15 root@k8s:~# docker exec -it k8s-kind-demo-control-plane bash root@k8s-kind-demo-control-plane:/#访问nginxroot@k8s:~# curl 10.96.93.229
2023年11月15日
2,027 阅读
0 评论
352 点赞
2023-10-31
阿里云高校计划-云工开物
{message type="success" content="阿里云高校计划,助力高校科研与教育加速,让每位中国在校大学生真实受益于普惠算力"/}刚白嫖完无门槛300元优惠券 :@(脸红) 给自己已经到期即将被释放的服务器强行续命4个月 ::(笑眼) ,之前领过阿里云高校飞天计划的同学们也可以领取哦 ::(你懂的) 领取完直接续费就ok ::(捂嘴笑) 或者也可以购买新的服务器 :@(肿包) 活动链接在最后哦!!!{tabs}{tabs-pane label="活动"}{/tabs-pane}{tabs-pane label="活动规则"}一、活动权益1.权益一:通过学信网认证的中国高校学生,可领取300元无门槛优惠券。2.权益二:通过学信网认证的中国高校学生,且所在高校为阿里云合作高校,可在领取300元无门槛优惠券的基础上,再领取阿里云公共云产品(特殊商品除外)三折优惠,订单原价不超过5000元。二、活动时间2023年10月31日开始,结束时间以活动官网通知为准(活动期间如有调整,届时以活动页面展示为准)。三、活动规则1.300元无门槛优惠券1.1领取规则通过学信网认证的中国高校学生(专科、本科、硕士、博士、在职研究生等高等教育学籍在内的在校学生人群),持有学生认证期间,每人每年可领取一张300元无门槛优惠券,限制同人账号。1.2权益有效期优惠券有效期1年,自领取之日起算。到期未使用,券内金额作废。1.3购买范围阿里云全量公共云产品(特殊商品除外)。{/tabs-pane}{/tabs}{message type="success" content="还有一场活动:2核2G云服务器99元/年,续费不涨价"/}{tabs}{tabs-pane label="活动"}{/tabs-pane}{tabs-pane label="活动规则"}活动时间2023年10月31日0点0分0秒至2026年3月31日23点59分59秒。活动对象满足以下全部条件的阿里云用户:1、阿里云注册会员用户;2、完成阿里云企业认证或个人认证用户;3、符合活动规则的新老用户,均可参与。低价权益参与规则1、活动范围:购买指定配置“e实例2核2G 3M固定带宽 40G ESSD entry 系统盘”可享受包1年99元,活动地域包含北京,杭州,上海,张家口,呼和浩特,深圳,成都,河源,乌兰察布,广州,南京,福州。2、活动说明:同一用户,同一个时间内,只可保有一个参与“长效低价”优惠实例,到期后在活动时间范围内可持续以低价续费保有,另购使用官网价。{/tabs-pane}{/tabs}{abtn icon="" color="#99CCFF" href="https://university.aliyun.com/" radius="" content="云工开物计划直达列车"/} {abtn icon="" color="#99CCFF" href="https://www.aliyun.com/lowcode/promotion/allinaliyun/99program" radius="" content="2核2G 3M固定带宽直达列车"/}
2023年10月31日
313 阅读
0 评论
35 点赞
1
2
...
5
首页
复制
搜索
前进
后退
重载网页
和我当邻居