在IBM云上尝试启动nginx的IBM云Kubernetes服务
首先
由于我今天要在IBM Cloud Kubernetes服务(IKS)上进行nginx的演练,我想整理一下这个过程。这个演练需要有一个IBM Cloud账户(免费使用)。
Nginx启动准备
创建IKS群集





登录IBM云

然后,可以使用以下命令指定集群。
要设置Kubernetes环境,需要使用export命令。可以通过输入ibmcloud ks cluster config命令来获取export命令。
在集群界面中获取集群ID,并在终端中进行替换输入。
请注意,可以使用集群名称代替集群ID进行指定。
ibmcloud ks cluster config --cluster <cluster-id>
<cluster-id> のコンテキストを現在の kubeconfig ファイルに追加しました。
これで、クラスターに対して「kubectl」コマンドを実行できます。 例えば、「kubectl get nodes」を実行します。
クラスターに初めてアクセスする場合、RBAC の同期中に「kubectl」コマンドが数秒間失敗することがあります。
准备Docker镜像
创建Dockerfile
使用Docker镜像来部署Nginx。
使用以下代码创建Dockerfile。
# ベースイメージを指定
FROM nginx
# ローカルの index.html をコンテナのデフォルトパスにコピー
COPY index.html /usr/share/nginx/html/
# ポートを80に変更(nginx デフォルトポート)
EXPOSE 80
# Nginx を起動
CMD ["nginx", "-g", "daemon off;"]
构建Docker镜像
在终端中进入存放Docker镜像的目录,并构建Docker镜像。
docker build .
将IBM Cloud容器注册表存储
使用以下命令登录到容器注册表以存储创建的Docker镜像。
ibmcloud cr login
然后为图像打标签并进行推送。
docker tag <local_image> jp.icr.io/<my_namespace>/<my_repo>
docker push jp.icr.io/<my_namespace>/<my_repo>
准备Kubernetes
创建Kubernetes清单文件
要在Kubernetes上启动某个东西,需要使用yaml文件进行部署。创建的yaml文件包括”deployment.yaml”和”service.yaml”。通过创建这两个yaml文件,在IKS上部署nginx,并且通过service可以从外部访问。
这次我按照以下方式创建了。
apiVersion: apps/v1
kind: Deployment
metadata:
name: iks-deployment
spec:
replicas: 1
selector:
matchLabels:
app: iks
template:
metadata:
labels:
app: iks
spec:
containers:
- name: iks-container
image: jp.icr.io/moon-test/nginx:latest
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: iks-service
spec:
selector:
app: iks
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
应用 Kubernetes 的清单文件
使用以下命令将创建的清单应用到Kubernetes集群。
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
确认结果
我們將驗證已公開的IP地址。
首先,我們將使用以下命令確認其是否應用於Kubernetes。
kubectl get all
NAME READY STATUS RESTARTS AGE
pod/iks-deployment-6584775c6f-qwz2q 1/1 Running 0 5s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/iks-service NodePort 172.21.193.230 <none> 80:31108/TCP 4s
service/kubernetes ClusterIP 172.21.0.1 <none> 443/TCP 37s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/iks-deployment 1/1 1 1 5s
NAME DESIRED CURRENT READY AGE
replicaset.apps/iks-deployment-6584775c6f 1 1 1 5s
然后,为了获取当前正在执行的工作节点的信息,输入以下命令。
与指定集群一样,您可以输入集群名称。
ibmcloud ks worker ls --cluster <cluster-id>
OK
ID パブリック IP プライベート IP フレーバー 状態 状況 ゾーン バージョン
kube-cj84sg2t05u16hk6drig-moontest-default-000001ca 161.202.97.14 10.133.175.181 u3c.2x4.encrypted normal Ready tok02 1.26.7_1546

最终
我根据Dockerfile和yaml创建了一个流程,并在IBM Cloud Kubernetes Service集群上部署了nginx。下一步,我计划对nginx进行操作,并尝试将应用程序部署在上面。